这段文本描述了Fast DDS(Data Distribution Service)中实现的日志插件,它用于记录由其他安全插件触发的安全事件。这些安全插件包括身份验证插件(DDS:Auth:PKI-DH)、访问控制插件(DDS:Access:Permissions)和加密插件(DDS:Crypto:AES-GCM-GMAC)。日志插件允许这些安全组件记录其行为、错误以及安全漏洞。
日志插件功能
事件记录:该日志插件收集特定于
DomainParticipant
的所有安全事件数据,并将其保存在本地文件中。每个日志消息都包含一个唯一标识符,以标识触发事件的DomainParticipant
、属于哪个 DDS 域的域标识符以及时间戳。合规性:该日志插件遵循 DDS 安全规范,被称为“DDS:Logging:DDS_LogTopic”。
过滤级别:可以根据最多八个严重性级别来过滤日志消息,包括:
- EMERGENCY_LEVEL:系统不可用,应该停止使用。
- ALERT_LEVEL:应立即纠正。
- CRITICAL_LEVEL:主要应用程序发生故障。
- ERROR_LEVEL:一般错误条件,默认值。
- WARNING_LEVEL:如果不采取措施可能会导致未来错误。
- NOTICE_LEVEL:不寻常,但不是错误的事件或情况。
- INFORMATIONAL_LEVEL:正常操作,无需采取行动。
- DEBUG_LEVEL:正常操作。
配置方法
要激活和配置该日志插件,可以通过设置 DomainParticipantQos
属性来完成:
C++ 示例
DomainParticipantQos pqos;
// 激活 DDS:Logging:DDS_LogTopic 插件
pqos.properties().properties().emplace_back("dds.sec.log.plugin",
"builtin.DDS_LogTopic");
// 配置 DDS:Logging:DDS_LogTopic 插件
pqos.properties().properties().emplace_back(
"dds.sec.log.builtin.DDS_LogTopic.logging_level",
"EMERGENCY_LEVEL");
pqos.properties().properties().emplace_back(
"dds.sec.log.builtin.DDS_LogTopic.log_file",
"myLogFile.log");
XML 示例
<participant profile_name="secure_domainparticipant_conf_logging_plugin_xml_profile">
<rtps>
<propertiesPolicy>
<properties>
<!-- 激活 DDS:Auth:PKI-DH 插件 -->
<property>
<name>dds.sec.log.plugin</name>
<value>builtin.DDS_LogTopic</value>
</property>
<!-- 配置 DDS:Auth:PKI-DH 插件 -->
<property>
<name>dds.sec.log.builtin.DDS_LogTopic.logging_level</name>
<value>EMERGENCY_LEVEL</value>
</property>
<property>
<name>dds.sec.log.builtin.DDS_LogTopic.log_file</name>
<value>myLogFile.log</value>
</property>
</properties>
</propertiesPolicy>
</rtps>
</participant>
总结
总结来说,这段文字介绍了 Fast DDS 中的日志记录机制,其重要性在于能够追踪和记录与数据传输相关的重要安全事件。通过适当的配置,用户可以监控和审计各种潜在问题及其处理过程,从而增强系统的安全性与可靠性。
内容由零声教学AI助手提供,问题来源于学员提问