7.15. 收集 OVN 网络策略审计日志

您可以从 OVN-Kubernetes pod 上的 /var/log/ovn/acl-audit-log.log 文件中收集 OVN 网络策略审计日志,并将它们转发到日志记录服务器。

先决条件

  • 您使用 OpenShift Container Platform 版本 4.8 或更高版本。
  • 您使用集群日志记录 5.2 或更高版本。
  • 您已设置了一个 ClusterLogForwarder 自定义资源 (CR) 对象。
  • OpenShift Container Platform 集群是为 OVN-Kubernetes 网络策略审计日志配置的。请参阅以下"附加资源"部分。
注意

通常,存储审计数据的服务器必须符合企业及政府对合规性和安全性的要求。

流程

  1. 创建或编辑定义 ClusterLogForwarder CR 对象的 YAML 文件,如将日志转发到第三方系统的其他主题中所述。
  2. 在 YAML 文件中,将 audit 日志类型添加到管道中的 inputRefs 元素中。例如:

      pipelines:
       - name: audit-logs
         inputRefs:
          - audit 1
         outputRefs:
          - secure-logging-server 2
    1
    audit 指定为要输入的日志类型之一。
    2
    指定连接到您的日志记录服务器的输出。
  3. 重新创建更新的 CR 对象:

    $ oc create -f <file-name>.yaml

验证

验证日志记录服务器收集的日志数据中是否存在来自节点的审计日志条目。

/var/log/ovn/acl-audit-log.log 中查找原始审计日志条目,并将它与日志记录服务器上的对应日志条目进行比较。

例如,/var/log/ovn/acl-audit-log.log 中的原始日志条目可能类似如下:

2021-07-06T08:26:58.687Z|00004|acl_log(ovn_pinctrl0)|INFO|name="verify-audit-
logging_deny-all", verdict=drop, severity=alert:
icmp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:12,dl_dst=0a:58:0a:81:02:14,nw_src=10
.129.2.18,nw_dst=10.129.2.20,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0

您在日志记录服务器上找到的对应 OVN 审计日志条目可能如下所示:

{
  "@timestamp" : "2021-07-06T08:26:58..687000+00:00",
  "hostname":"ip.abc.iternal",
  "level":"info",
  "message" : "2021-07-06T08:26:58.687Z|00004|acl_log(ovn_pinctrl0)|INFO|name=\"verify-audit-logging_deny-all\", verdict=drop, severity=alert: icmp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:12,dl_dst=0a:58:0a:81:02:14,nw_src=10.129.2.18,nw_dst=10.129.2.20,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0"
}

其中:

  • @timestamp 是日志条目的时间戳。
  • hostname 是日志源自的节点。
  • level 是日志条目。
  • Message 是原始审计日志消息。
注意

在 Elasticsearch 服务器上,查找索引以 audit-00000 开头的日志条目。

故障排除

  1. 验证 OpenShift Container Platform 集群是否满足所有先决条件。
  2. 验证您已完成此步骤。
  3. 验证生成 OVN 日志的节点是否已启用,并且具有 /var/log/ovn/acl-audit-log.log 文件。
  4. 检查 Fluentd pod 日志是否有问题。