第 3 章 部署集群日志记录


您可以通过部署 Elasticsearch 和 Cluster Logging Operator 来安装集群日志记录。Elasticsearch Operator 负责创建并管理由集群日志记录使用的 Elasticsearch 集群。Cluster Logging Operator 负责创建并管理日志记录堆栈的组件。

将集群日志记录部署到 OpenShift Container Platform 的过程涉及以下任务:

3.1. 使用 web 控制台安装 cluster logging

您可以使用 OpenShift Container Platform web 控制台来安装 Elasticsearch 和 Cluster Logging operator。

先决条件

  • 确保具有 Elasticsearch 所需的持久性存储。注意每个 Elasticsearch 节点都需要自己的存储卷。

    Elasticsearch 是内存密集型应用程序。默认情况下,OpenShift Container Platform 安装 3 个 Elasticsearch 节点,其内存请求和限制为 16 GB。初始设置的三个 OpenShift Container Platform 节点可能没有足够的内存在集群中运行 Elasticsearch。如果遇到与 Elasticsearch 相关的内存问题,在集群中添加更多 Elasticsearch 节点,而不是增加现有节点上的内存。

流程

使用 OpenShift Container Platform web 控制台安装 Elasticsearch Operator 和 Cluster Logging Operator:

  1. 安装 Elasticsearch Operator:

    1. 在 OpenShift Container Platform Web 控制台中,点击 Operators OperatorHub
    2. 从可用的 Operator 列表中选择 Elasticsearch Operator,然后点 Install
    3. 确定在 Installation Mode 下选择了 All namespaces on the cluster
    4. 确定在 Installed Namespace 下选择了 openshift-operators-redhat

      您必须指定 openshift-operators-redhat 命名空间。为了防止可能与指标(metrics)冲突,您应该将 Prometheus Cluster Monitoring 堆栈配置为从 openshift-operators-redhat 命名空间中提取指标数据,而不是从 openshift-operators 命名空间中提取。openshift-operators 命名空间可能会包含社区提供的 operator。这些 operator 不被信任,其发布的 metric 可能与 OpenShift Container Platform metric 的名称相同,从而导致冲突。

    5. 选择 Enable operator recommended cluster monitoring on this namespace

      这个选项在 Namespace 对象中设置 openshift.io/cluster-monitoring: "true" 标识。您必须选择这个选项,以确保集群监控提取 openshift-operators-redhat 命名空间。

    6. 选择一个更新频道批准策略
    7. Subscribe
    8. 通过切换到 Operators Installed Operators 页来验证 Elasticsearch Operator 已被安装。
    9. 确定 Elasticsearch Operator 在所有项目中被列出,请 StatusSucceeded
  2. 安装 Cluster Logging Operator:

    1. 在 OpenShift Container Platform Web 控制台中,点击 Operators OperatorHub
    2. 从可用 Operator 列表中选择 Cluster Logging,再点击 Install
    3. 确定在 Installation Mode 下选择了 A specific namespace on the cluster
    4. 确定在 Installed Namespace 下的 Operator recommended namespaceopenshift-logging
    5. 选择 Enable operator recommended cluster monitoring on this namespace

      这个选项在 Namespace 对象中设置 openshift.io/cluster-monitoring: "true" 标识。您必须选择这个选项,以确保集群监控提取 openshift-logging 命名空间。

    6. 选择一个更新频道批准策略
    7. Subscribe
    8. 通过切换到 Operators Installed Operators 页来验证 Cluster Logging Operator 已被安装。
    9. 确保 openshift-logging 项目中列出的 Cluster LoggingStatusInstallSucceeded

      如果 Operator 没有被成功安装,请按照以下步骤进行故障排除:

      • 切换到 Operators Installed Operators 页面,并检查 Status 列中是否有任何错误或故障。
      • 切换到 Workloads Pods 页面,并检查 openshift-logging 项目中报告问题的 pod 的日志。
  3. 创建集群日志记录实例:

    1. 切换到 Administration Custom Resource Definitions 页面。
    2. Custom Resource Definitions 页面上,点 ClusterLogging
    3. Custom Resource Definition Overview 页面上,从 Actions 菜单中选择 View Instances
    4. ClusterLoggings 页中,点 Create ClusterLogging

      您可能需要刷新页面来加载数据。

    5. 将 YAML 项中的代码替换为以下内容:

      注意

      此默认集群日志记录配置应该可以支持不同的环境。请参考有关调优和配置集群日志记录组件的主题,以了解有关可对集群日志记录集群进行修改的信息。

      apiVersion: "logging.openshift.io/v1"
      kind: "ClusterLogging"
      metadata:
        name: "instance" 1
        namespace: "openshift-logging"
      spec:
        managementState: "Managed"  2
        logStore:
          type: "elasticsearch"  3
          elasticsearch:
            nodeCount: 3 4
            storage:
              storageClassName: "<storage-class-name>" 5
              size: 200G
            redundancyPolicy: "SingleRedundancy"
        visualization:
          type: "kibana"  6
          kibana:
            replicas: 1
        curation:
          type: "curator"  7
          curator:
            schedule: "30 3 * * *"
        collection:
          logs:
            type: "fluentd"  8
            fluentd: {}
      1
      名称必须是 instance
      2
      集群日志记录管理状态。在一些数情况下,如果更改了集群日志记录的默认值,则必须将其设置为 Unmanaged。但是,非受管部署不接收更新,直到集群日志记录重新变为受管状态为止。
      3
      用于配置 Elasticsearch 的设置。通过使用 CR,您可以配置分片复制策略和持久性存储。
      4
      指定 Elasticsearch 节点的数量。请参阅此列表后面的备注。
      5
      为 Elasticsearch 存储输入现有 StorageClass 的名称。为获得最佳性能,请指定分配块存储的 StorageClass。
      6
      用于配置 Kibana 的设置。通过使用 CR,您可以扩展 Kibana 来实现冗余性,并为 Kibana 节点配置 CPU 和内存。如需更多信息,请参阅配置 Kibana
      7
      用于配置 Curator 的设置。通过使用 CR,您可以设置 Curator 调度。如需更多信息,请参阅配置 Curator
      8
      用于配置 Fluentd 的设置。通过使用 CR,您可以配置 Fluentd CPU 和内存限值。如需更多信息,请参阅配置 Fluentd
      注意

      Elasticsearch master 节点的最大数量为三个。如果您将 nodeCount 指定为大于 3,OpenShift Container Platform 只会创建三个符合 Master 节点条件的 Elasticsearch 节点(具有 master、client 和 data 角色)。其余 Elasticsearch 节点创建为“仅数据”节点,使用 client 和 data 角色。Master 节点执行集群范围的操作,如创建或删除索引、分配分片和跟踪节点等。数据节点保管分片,并执行与数据相关的操作,如 CRUD、搜索和聚合等。与数据相关的操作会占用大量 I/O、内存和 CPU。务必要监控这些资源,并在当前节点过载时添加更多数据节点。

      例如,如果 nodeCount = 4,则创建以下节点:

      $ oc get deployment
      
      cluster-logging-operator       1/1     1            1           18h
      elasticsearch-cd-x6kdekli-1    0/1     1            0           6m54s
      elasticsearch-cdm-x6kdekli-1   1/1     1            1           18h
      elasticsearch-cdm-x6kdekli-2   0/1     1            0           6m49s
      elasticsearch-cdm-x6kdekli-3   0/1     1            0           6m44s

      索引模板的主分片数量等于 Elasticsearch 数据节点的数目。

    6. 点击 Create。这会创建 ClusterLogging 自定义资源和 Elasticsearch 自定义资源,您可以编辑它们来更改集群日志记录集群。
  4. 验证安装:

    1. 切换到 Workloads Pods 页面。
    2. 选择 openshift-logging 项目。

      您应该会看到几个用于集群日志记录、Elasticsearch、Fluentd 和 Kibana 的 Pod,类似于以下列表:

      • cluster-logging-operator-cb795f8dc-xkckc
      • elasticsearch-cdm-b3nqzchd-1-5c6797-67kfz
      • elasticsearch-cdm-b3nqzchd-2-6657f4-wtprv
      • elasticsearch-cdm-b3nqzchd-3-588c65-clg7g
      • fluentd-2c7dg
      • fluentd-9z7kk
      • fluentd-br7r2
      • fluentd-fn2sb
      • fluentd-pb2f8
      • fluentd-zqgqx
      • kibana-7fb4fd4cc9-bvt4p
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.