1.2. 使用 CLI 安装
以下小节介绍了使用 CLI 安装 Loki Operator 和 Red Hat OpenShift Logging Operator。
1.2.1. 使用 CLI 安装 Loki Operator 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 集群上安装 Loki Operator,以使用 OpenShift Container Platform 命令行界面(CLI)管理日志存储 Loki。您可以通过与 Loki Operator 协调资源 LokiStack 来部署和配置 Loki 日志存储。
先决条件
- 有管理员权限。
-
已安装 OpenShift CLI(
oc)。 - 您可以访问受支持的对象存储。例如:AWS S3、Google Cloud Storage、Azure、Swift、Minio 或 OpenShift Data Foundation。
流程
为 Loki Operator 创建一个
Namespace对象:Namespace对象示例apiVersion: v1 kind: Namespace metadata: name: openshift-operators-redhat1 labels: openshift.io/cluster-monitoring: "true"2 - 1
- 您必须将
openshift-operators-redhat指定为命名空间。要为 Operator 启用监控,请将 Cluster Monitoring Operator 配置为从openshift-operators-redhat命名空间中提取指标,而不是从openshift-operators命名空间中提取指标。openshift-operators命名空间可能会包含社区 operator,这些 operator 不被信任,并可能会发布与 OpenShift Container Platform 指标相同的名称,从而导致冲突。 - 2
- 指定所示的标签的字符串值,以确保集群监控提取
openshift-operators-redhat命名空间。
运行以下命令来应用
Namespace对象:$ oc apply -f <filename>.yaml创建
OperatorGroup对象。OperatorGroup对象示例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: loki-operator namespace: openshift-operators-redhat1 spec: upgradeStrategy: Default- 1
- 您必须将
openshift-operators-redhat指定为命名空间。
运行以下命令来应用
OperatorGroup对象:$ oc apply -f <filename>.yaml为 Loki Operator 创建一个
Subscription对象:Subscription对象示例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: loki-operator namespace: openshift-operators-redhat1 spec: channel: stable-6.<y>2 installPlanApproval: Automatic3 name: loki-operator source: redhat-operators4 sourceNamespace: openshift-marketplace- 1
- 您必须将
openshift-operators-redhat指定为命名空间。 - 2
- 指定
stable-6.<y> 作为频道。 - 3
- 如果订阅中的批准策略被设置为
Automatic,则更新过程会在所选频道中提供新的 Operator 版本时立即启动。如果批准策略设为Manual,则必须手动批准待处理的更新。 - 4
- 指定
redhat-operators作为值。如果 OpenShift Container Platform 集群安装在受限网络中(也称为断开连接的集群),请指定配置 Operator Lifecycle Manager (OLM)时创建的CatalogSource对象的名称。
运行以下命令来应用
Subscription对象:$ oc apply -f <filename>.yaml创建用于部署 LokiStack
的命名空间对象:namespace对象示例apiVersion: v1 kind: Namespace metadata: name: openshift-logging1 labels: openshift.io/cluster-monitoring: "true"2 运行以下命令来应用
namespace对象:$ oc apply -f <filename>.yaml使用凭据创建 secret 以访问对象存储。例如,创建一个 secret 以访问 Amazon Web Services (AWS) s3。
Secret对象示例apiVersion: v1 kind: Secret metadata: name: logging-loki-s31 namespace: openshift-logging stringData:2 access_key_id: <access_key_id> access_key_secret: <access_secret> bucketnames: s3-bucket-name endpoint: https://s3.eu-central-1.amazonaws.com region: eu-central-1重要如果没有在 s3 存储桶或 LokiStack 自定义资源 (CR) 中定义保留周期,则不会修剪日志,它们会永久保留在 s3 存储桶中,这可能会填满 s3 存储。
运行以下命令来应用
Secret对象:$ oc apply -f <filename>.yaml创建
LokiStackCR:LokiStackCR 示例apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: logging-loki1 namespace: openshift-logging2 spec: size: 1x.small3 storage: schemas: - version: v13 effectiveDate: "<yyyy>-<mm>-<dd>"4 secret: name: logging-loki-s35 type: s36 storageClassName: <storage_class_name>7 tenants: mode: openshift-logging8 - 1
- 使用名称
logging-loki。 - 2
- 您必须将
openshift-logging指定为命名空间。 - 3
- 指定部署大小。Loki 生产实例支持的大小选项为
1x.extra-small、1x.small或1x.medium。另外,从 logging 6.1 开始支持1x.pico。 - 4
- 对于新安装,这个日期应设置为 "yesterday",因为这是 schema 生效的日期。
- 5
- 指定日志存储 secret 的名称。
- 6
- 指定对应的存储类型。
- 7
- 为临时存储指定存储类的名称。为获得最佳性能,请指定分配块存储的存储类。您可以使用
oc get storageclasses命令列出集群的可用存储类。 - 8
openshift-logging模式是默认租期模式,其中为日志类型创建一个租户,如 audit、infrastructure 和 application。这为单个用户和用户组启用对不同的日志流的访问控制。
运行以下命令来应用
LokiStackCR 对象:$ oc apply -f <filename>.yaml
验证
运行以下命令来验证安装。
$ oc get pods -n openshift-logging输出示例
$ oc get pods -n openshift-logging NAME READY STATUS RESTARTS AGE logging-loki-compactor-0 1/1 Running 0 42m logging-loki-distributor-7d7688bcb9-dvcj8 1/1 Running 0 42m logging-loki-gateway-5f6c75f879-bl7k9 2/2 Running 0 42m logging-loki-gateway-5f6c75f879-xhq98 2/2 Running 0 42m logging-loki-index-gateway-0 1/1 Running 0 42m logging-loki-ingester-0 1/1 Running 0 42m logging-loki-querier-6b7b56bccc-2v9q4 1/1 Running 0 42m logging-loki-query-frontend-84fb57c578-gq2f7 1/1 Running 0 42m
1.2.2. 使用 CLI 安装 Red Hat OpenShift Logging Operator 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 集群上安装 Red Hat OpenShift Logging Operator,以使用 OpenShift CLI (oc)收集日志并将日志转发到日志存储。
先决条件
- 有管理员权限。
-
已安装 OpenShift CLI(
oc)。 - 已安装并配置了 Loki Operator。
-
您已创建了
openshift-logging命名空间。
流程
创建一个
OperatorGroup对象:OperatorGroup对象示例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: cluster-logging namespace: openshift-logging1 spec: upgradeStrategy: Default- 1
- 您必须将
openshift-logging指定为命名空间。
运行以下命令来应用
OperatorGroup对象:$ oc apply -f <filename>.yaml为 Red Hat OpenShift Logging Operator 创建
Subscription对象:Subscription对象示例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: cluster-logging namespace: openshift-logging1 spec: channel: stable-6.<y>2 installPlanApproval: Automatic3 name: cluster-logging source: redhat-operators4 sourceNamespace: openshift-marketplace运行以下命令来应用
Subscription对象:$ oc apply -f <filename>.yaml创建日志收集器要使用的服务帐户:
$ oc create sa logging-collector -n openshift-logging为收集器的服务帐户分配所需的权限,以便能够收集和转发日志。在本例中,收集器提供从基础架构和应用程序日志收集日志的权限。
$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z logging-collector -n openshift-logging $ oc adm policy add-cluster-role-to-user collect-application-logs -z logging-collector -n openshift-logging $ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logging-collector -n openshift-logging创建
ClusterLogForwarderCR:ClusterLogForwarderCR 示例apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging1 spec: serviceAccount: name: logging-collector2 outputs: - name: lokistack-out type: lokiStack3 lokiStack: target:4 name: logging-loki namespace: openshift-logging authentication: token: from: serviceAccount tls: ca: key: service-ca.crt configMapName: openshift-service-ca.crt pipelines: - name: infra-app-logs inputRefs:5 - application - infrastructure outputRefs: - lokistack-out运行以下命令来应用
ClusterLogForwarder CR对象:$ oc apply -f <filename>.yaml
验证
运行以下命令来验证安装。
$ 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 instance-222js 2/2 Running 0 18m instance-g9ddv 2/2 Running 0 18m instance-hfqq8 2/2 Running 0 18m instance-sphwg 2/2 Running 0 18m instance-vv7zn 2/2 Running 0 18m instance-wk5zz 2/2 Running 0 18m logging-loki-compactor-0 1/1 Running 0 42m logging-loki-distributor-7d7688bcb9-dvcj8 1/1 Running 0 42m logging-loki-gateway-5f6c75f879-bl7k9 2/2 Running 0 42m logging-loki-gateway-5f6c75f879-xhq98 2/2 Running 0 42m logging-loki-index-gateway-0 1/1 Running 0 42m logging-loki-ingester-0 1/1 Running 0 42m logging-loki-querier-6b7b56bccc-2v9q4 1/1 Running 0 42m logging-loki-query-frontend-84fb57c578-gq2f7 1/1 Running 0 42m
1.2.3. 使用 CLI 安装日志记录 UI 插件 复制链接链接已复制到粘贴板!
使用命令行界面(CLI)安装日志记录 UI 插件,以便您可以视觉化日志。
先决条件
- 有管理员权限。
-
已安装 OpenShift CLI(
oc)。 - 已安装并配置了 Loki Operator。
流程
- 安装 Cluster Observability Operator。如需更多信息 ,请参阅安装 Cluster Observability Operator。
创建
UIPlugin自定义资源(CR):UIPluginCR 示例apiVersion: observability.openshift.io/v1alpha1 kind: UIPlugin metadata: name: logging1 spec: type: Logging2 logging: lokiStack: name: logging-loki3 logsLimit: 50 timeout: 30s schema: otel4 注意日志记录 UI 插件的已知问题 - 如需更多信息,请参阅 OU-587。
-
schema功能只在 Red Hat OpenShift Logging 4.15 及更新的版本中被支持。在早期版本的 Red Hat OpenShift Logging 中,日志记录 UI 插件将只使用viaq属性,忽略可能设置的任何其他值。 -
非管理员用户无法使用带有 Red Hat OpenShift 版本 5.8 到 6.2 日志记录的
otel属性查询日志。这个问题将在以后的日志记录发行版本中解决。(LOG-6589) -
在 Red Hat OpenShift 版本 5.9 中,未设置
severity_textOtel 属性。
-
运行以下命令来应用
UIPluginCR 对象:$ oc apply -f <filename>.yaml
验证
- 访问 Red Hat OpenShift Logging web 控制台,并在弹出消息指示您这样做时刷新页面。
-
进入到 Observe
Logs 面板,您可以在其中运行 LogQL 查询。您也可以从特定 pod 的 Aggregated Logs 选项卡中查询各个 pod 的日志。