6.3. 使用 CLI 安装 Logging 和 Loki Operator


要在 OpenShift Container Platform 集群上安装和配置日志记录,需要首先安装用于日志存储的 Operator,如 Loki Operator。这可以通过 OpenShift Container Platform CLI 完成。

先决条件

  • 有管理员权限。
  • 已安装 OpenShift CLI(oc)。
  • 您可以访问受支持的对象存储。例如:AWS S3、Google Cloud Storage、Azure、Swift、Minio 或 OpenShift Data Foundation。
注意

stable 频道只为日志记录的最新版本提供更新。要继续获得之前版本的更新,您必须将订阅频道改为 stable-x.y,其中 x.y 代表您安装的日志记录的主版本和次版本。例如,stable-5.7

  1. 为 Loki Operator 创建一个 Namespace 对象:

    Namespace 对象示例

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-operators-redhat 1
      annotations:
        openshift.io/node-selector: ""
      labels:
        openshift.io/cluster-monitoring: "true" 2

    1
    您必须指定 openshift-operators-redhat 命名空间。为了防止可能与指标(metrics)冲突,您应该将 Prometheus Cluster Monitoring 堆栈配置为从 openshift-operators-redhat 命名空间中提取指标数据,而不是从 openshift-operators 命名空间中提取。openshift-operators 命名空间可能包含社区 Operator,这些 Operator 不被信任,并可能会发布与 OpenShift Container Platform 指标相同的名称,从而导致冲突。
    2
    指定所示的标签的字符串值,以确保集群监控提取 openshift-operators-redhat 命名空间。
  2. 运行以下命令来应用 Namespace 对象:

    $ oc apply -f <filename>.yaml
  3. 为 Loki Operator 创建一个 Subscription 对象:

    Subscription 对象示例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: loki-operator
      namespace: openshift-operators-redhat 1
    spec:
      channel: stable 2
      name: loki-operator
      source: redhat-operators 3
      sourceNamespace: openshift-marketplace

    1
    您必须指定 openshift-operators-redhat 命名空间。
    2
    指定 stable, 或 stable-5.<y> 作为频道。
    3
    指定 redhat-operators。如果 OpenShift Container Platform 集群安装在受限网络中(也称为断开连接的集群),请指定配置 Operator Lifecycle Manager (OLM) 时创建的 CatalogSource 对象的名称。
  4. 运行以下命令来应用 Subscription 对象:

    $ oc apply -f <filename>.yaml
  5. 为 Red Hat OpenShift Logging Operator 创建一个 Namespace 对象:

    namespace 对象示例

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-logging 1
    annotations:
        openshift.io/node-selector: ""
    labels:
        openshift.io/cluster-logging: "true"
        openshift.io/cluster-monitoring: "true" 2

    1
    Red Hat OpenShift Logging Operator 只适用于在 openshift-logging 命名空间中部署。
    2
    指定所示的标签的字符串值,以确保集群监控提取 openshift-operators-redhat 命名空间。
  6. 运行以下命令来应用 namespace 对象:

    $ oc apply -f <filename>.yaml
  7. 创建一个 OperatorGroup 对象:

    OperatorGroup 对象示例

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: cluster-logging
      namespace: openshift-logging 1
    spec:
      targetNamespaces:
      - openshift-logging

    1
    您必须指定 openshift-logging 命名空间。
  8. 运行以下命令来应用 OperatorGroup 对象:

    $ oc apply -f <filename>.yaml
  9. 创建 Subscription 对象:

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: cluster-logging
      namespace: openshift-logging 1
    spec:
      channel: stable 2
      name: cluster-logging
      source: redhat-operators 3
      sourceNamespace: openshift-marketplace
    1
    您必须指定 openshift-logging 命名空间。
    2
    指定 stable, 或 stable-5.<y> 作为频道。
    3
    指定 redhat-operators。如果 OpenShift Container Platform 集群安装在受限网络中(也称为断开连接的集群),请指定配置 Operator Lifecycle Manager (OLM) 时创建的 CatalogSource 对象的名称。
  10. 运行以下命令来应用 Subscription 对象:

    $ oc apply -f <filename>.yaml
  11. 创建 LokiStack CR:

    LokiStack CR 示例

    apiVersion: loki.grafana.com/v1
    kind: LokiStack
    metadata:
      name: logging-loki 1
      namespace: openshift-logging 2
    spec:
      size: 1x.small 3
      storage:
        schemas:
        - version: v12
          effectiveDate: "2022-06-01"
        secret:
          name: logging-loki-s3 4
          type: s3 5
          credentialMode: 6
      storageClassName: <storage_class_name> 7
      tenants:
        mode: openshift-logging 8

    1
    使用名称 logging-loki
    2
    您必须指定 openshift-logging 命名空间。
    3
    指定部署大小。在日志记录 5.8 及更新的版本中,Loki 实例支持的大小选项为 1x.extra-small1x.small1x.medium
    4
    指定日志存储 secret 的名称。
    5
    指定对应的存储类型。
    6
    可选字段,日志记录 5.9 及更新的版本。支持的用户配置值如下:static 是所有受支持的对象存储类型的默认身份验证模式,使用存储在 Secret 中的凭证。token 是从凭证源检索的短期令牌。在这个模式中,静态配置不包含对象存储所需的凭证。相反,它们会使用服务在运行时生成,允许提供较短的凭证,以及更精细的控制。并不是所有对象存储类型都支持这个身份验证模式。当 Loki 在受管 STS 模式下运行并使用 CCO on STS/WIF 集群时,token-cco 是默认值。
    7
    为临时存储指定存储类的名称。为获得最佳性能,请指定分配块存储的存储类。可以使用 oc get storageclasses 命令列出集群的可用存储类。
    8
    LokiStack 默认为以多租户模式运行,无法修改。为每个日志类型提供一个租户: audit、infrastructure 和 application logs。这为单个用户和用户组启用对不同的日志流的访问控制。
  12. 运行以下命令来应用 LokiStack CR 对象:

    $ oc apply -f <filename>.yaml
  13. 创建一个 ClusterLogging CR 实例。

    ClusterLogging CR 对象示例

    apiVersion: logging.openshift.io/v1
    kind: ClusterLogging
    metadata:
      name: instance 1
      namespace: openshift-logging 2
    spec:
      collection:
        type: vector
      logStore:
        lokistack:
          name: logging-loki
        retentionPolicy:
          application:
            maxAge: 7d
          audit:
            maxAge: 7d
          infra:
            maxAge: 7d
        type: lokistack
      visualization:
        type: ocp-console
        ocpConsole:
          logsLimit: 15
      managementState: Managed

    1
    名称必须是 instance
    2
    命令空间需要为 openshift-logging
  14. 运行以下命令来应用 ClusterLogging CR

    $ oc apply -f <filename>.yaml
  15. 运行以下命令来验证安装。

    $ oc get pods -n openshift-logging

    输出示例

    $ oc get pods -n openshift-logging
    NAME                                               READY   STATUS    RESTARTS   AGE
    cluster-logging-operator-fb7f7cf69-8jsbq           1/1     Running   0          98m
    collector-222js                                    2/2     Running   0          18m
    collector-g9ddv                                    2/2     Running   0          18m
    collector-hfqq8                                    2/2     Running   0          18m
    collector-sphwg                                    2/2     Running   0          18m
    collector-vv7zn                                    2/2     Running   0          18m
    collector-wk5zz                                    2/2     Running   0          18m
    logging-view-plugin-6f76fbb78f-n2n4n               1/1     Running   0          18m
    lokistack-sample-compactor-0                       1/1     Running   0          42m
    lokistack-sample-distributor-7d7688bcb9-dvcj8      1/1     Running   0          42m
    lokistack-sample-gateway-5f6c75f879-bl7k9          2/2     Running   0          42m
    lokistack-sample-gateway-5f6c75f879-xhq98          2/2     Running   0          42m
    lokistack-sample-index-gateway-0                   1/1     Running   0          42m
    lokistack-sample-ingester-0                        1/1     Running   0          42m
    lokistack-sample-querier-6b7b56bccc-2v9q4          1/1     Running   0          42m
    lokistack-sample-query-frontend-84fb57c578-gq2f7   1/1     Running   0          42m

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.