4.3. 配置日志存储

OpenShift Container Platform 使用 Elasticsearch 6(ES)来存储和整理日志数据。

您可以修改日志存储,包括:

  • Elasticsearch 集群的存储
  • 在集群中的数据节点间复制分片,从完整复制到不复制
  • 外部访问 Elasticsearch 数据

Elasticsearch 是内存密集型应用程序。每个 Elasticsearch 节点都需要至少 16G 内存来满足内存请求和限值的需要,除非 ClusterLogging 自定义资源中另有指定。最初的 OpenShift Container Platform 节点组可能不足以支持 Elasticsearch 集群。您必须在 OpenShift Container Platform 集群中添加额外的节点才能使用推荐或更高的内存运行,每个 Elasticsearch 节点最多可使用 64G 个内存。

每个 Elasticsearch 节点都可以在较低的内存设置下运行,但在生产环境中不建议这样做。

4.3.1. 将审计日志转发到日志存储

由于内部 OpenShift Container Platform Elasticsearch 日志存储不为审计日志提供安全存储,所以默认审计日志不会存储在内部 Elasticsearch 实例中。

如果要将审计日志发送到内部日志存储,例如要在 Kibana 中查看审计日志,则必须使用 Log Forward API。

重要

内部 OpenShift Container Platform Elasticsearch 日志存储不为审计日志提供安全存储。您需要自己确保转发审计日志的系统符合您所在机构及政府的相关要求,并具有适当的安全性。OpenShift Logging 不遵循这些规范。

流程

使用 Log Forward API 将审计日志转发到内部 Elasticsearch 实例:

  1. 创建 ClusterLogForwarder CR YAML 文件或编辑现有的 CR:

    • 创建 CR 以将所有日志类型发送到内部 Elasticsearch 实例。您可以在不进行任何更改的情况下使用以下示例:

      apiVersion: logging.openshift.io/v1
      kind: ClusterLogForwarder
      metadata:
        name: instance
        namespace: openshift-logging
      spec:
        pipelines: 1
        - name: all-to-default
          inputRefs:
          - infrastructure
          - application
          - audit
          outputRefs:
          - default
      1
      管道(pipeline)定义使用指定输出转发的日志类型。默认输出将日志转发到内部 Elasticsearch 实例。
      注意

      您必须在管道中指定所有三种类型的日志:应用程序、基础架构和审核。如果没有指定日志类型,这些日志将不会被存储并丢失。

    • 如果您有一个现有的 ClusterLogForwarder CR,请将管道添加到审计日志的默认输出中。您不需要定义默认输出。例如:

      apiVersion: "logging.openshift.io/v1"
      kind: ClusterLogForwarder
      metadata:
        name: instance
        namespace: openshift-logging
      spec:
        outputs:
         - name: elasticsearch-insecure
           type: "elasticsearch"
           url: http://elasticsearch-insecure.messaging.svc.cluster.local
           insecure: true
         - name: elasticsearch-secure
           type: "elasticsearch"
           url: https://elasticsearch-secure.messaging.svc.cluster.local
           secret:
             name: es-audit
         - name: secureforward-offcluster
           type: "fluentdForward"
           url: https://secureforward.offcluster.com:24224
           secret:
             name: secureforward
        pipelines:
         - name: container-logs
           inputRefs:
           - application
           outputRefs:
           - secureforward-offcluster
         - name: infra-logs
           inputRefs:
           - infrastructure
           outputRefs:
           - elasticsearch-insecure
         - name: audit-logs
           inputRefs:
           - audit
           outputRefs:
           - elasticsearch-secure
           - default 1
      1
      此管道除外部实例外,还会将审计日志发送到内部 Elasticsearch 实例。

其他资源