安装日志记录
安装 Loki Operator、Red Hat OpenShift Logging Operator 和 Cluster Observability Operator
摘要
第 1 章 安装日志记录 复制链接链接已复制到粘贴板!
OpenShift Container Platform Operator 使用自定义资源(CR)来管理应用程序及其组件。您可以通过 CR 提供高级别配置和设置。Operator 根据嵌入在 Operator 逻辑中的最佳实践,将高级别指令转换为低级别操作。自定义资源定义(CRD)定义了一个 CR,并列出 Operator 用户可用的所有配置。安装 Operator 会创建 CRD 来生成 CR。
要开始使用日志记录,您必须安装以下 Operator:
- Loki Operator 以管理您的日志存储。
- Red Hat OpenShift Logging Operator 管理日志转发和转发。
- Cluster Observability Operator (COO)用于管理视觉化。
您可以使用 OpenShift Container Platform Web 控制台或 OpenShift Container Platform CLI 来安装或配置日志记录。
您必须在 Loki Operator 后配置 Red Hat OpenShift Logging Operator。
1.1. 先决条件 复制链接链接已复制到粘贴板!
如果使用 OKD,则 已从 Red Hat OpenShift Cluster Manager 下载 pull secret,如您的平台安装文档中的"包含安装程序"中所述。
如果您有 pull secret,请将
redhat-operators目录添加到OperatorHub自定义资源(CR)中,如"配置 OpenShift Container Platform 以使用 Red Hat Operator"所示。
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对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
OperatorGroup对象。OperatorGroup对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您必须将
openshift-operators-redhat指定为命名空间。
运行以下命令来应用
OperatorGroup对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Loki Operator 创建一个
Subscription对象:Subscription对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建用于部署 LokiStack
的命名空间对象:namespace对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
namespace对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用凭据创建 secret 以访问对象存储。例如,创建一个 secret 以访问 Amazon Web Services (AWS) s3。
Secret对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果没有在 s3 存储桶或 LokiStack 自定义资源 (CR) 中定义保留周期,则不会修剪日志,它们会永久保留在 s3 存储桶中,这可能会填满 s3 存储。
运行以下命令来应用
Secret对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
LokiStackCR:LokiStackCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令来验证安装。
oc get pods -n openshift-logging
$ oc get pods -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您必须将
openshift-logging指定为命名空间。
运行以下命令来应用
OperatorGroup对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Red Hat OpenShift Logging Operator 创建
Subscription对象:Subscription对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
Subscription对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建日志收集器要使用的服务帐户:
oc create sa logging-collector -n openshift-logging
$ oc create sa logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为收集器的服务帐户分配所需的权限,以便能够收集和转发日志。在本例中,收集器提供从基础架构和应用程序日志收集日志的权限。
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
$ 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-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
ClusterLogForwarderCR:ClusterLogForwarderCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
ClusterLogForwarder CR对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令来验证安装。
oc get pods -n openshift-logging
$ oc get pods -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. 使用 Web 控制台安装 复制链接链接已复制到粘贴板!
以下小节介绍了使用 Web 控制台安装 Loki Operator 和 Red Hat OpenShift Logging Operator。
1.3.1. 使用 Web 控制台安装 Loki Operator 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 集群上安装 Loki Operator,以使用 OpenShift Container Platform Web 控制台管理来自 OperatorHub 的日志存储 Loki。您可以通过与 Loki Operator 协调资源 LokiStack 来部署和配置 Loki 日志存储。
先决条件
- 有管理员权限。
- 访问 OpenShift Container Platform web 控制台。
- 您可以访问受支持的对象存储 (AWS S3、Google Cloud Storage、Azure、Swift、Minio、OpenShift Data Foundation)。
流程
- 在 OpenShift Container Platform Web 控制台 Administrator 视角中,进入 Operators → OperatorHub。
在 Filter by keyword 字段中输入 Loki Operator。点可用 Operator 列表中的 Loki Operator,然后点 Install。
重要红帽不支持社区版本的 Loki Operator。
选择 stable-x.y 作为 更新频道。
Loki Operator 必须部署到全局 Operator 组命名空间
openshift-operators-redhat,因此已选择了 Installation mode 和 Installed Namespace。如果此命名空间尚不存在,则会为您创建它。选择 Enable Operator recommended cluster monitoring on this namespace。
这个选项在
Namespace对象中设置openshift.io/cluster-monitoring: "true"标签。您必须设置这个选项,以确保集群监控提取openshift-operators-redhat命名空间。对于 Update approval,请选择 Automatic,然后点 Install。
如果订阅中的批准策略被设置为 Automatic,则更新过程会在所选频道中提供新的 Operator 版本时立即启动。如果批准策略设为 Manual,则必须手动批准待处理的更新。
注意Operator 可能会在安装完成前显示
Failed状态。如果 Operator 安装完成并显示InstallSucceeded信息,请刷新页面。安装 Operator 时,创建部署日志存储的命名空间。
使用凭据创建 secret 以访问对象存储。
- 单击屏幕右上角的 +,以访问 Import YAML 页面。
为 secret 添加 YAML 定义。例如,创建一个 secret 以访问 Amazon Web Services (AWS) s3:
Secret对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果没有在 s3 存储桶或 LokiStack 自定义资源 (CR) 中定义保留周期,则不会修剪日志,它们会永久保留在 s3 存储桶中,这可能会填满 s3 存储。
- 点 Create。
- 进入 Installed Operators 页面。在 Provided APIs 下选择 Loki Operator,找到 LokiStack 资源,再点 Create Instance。
选择 YAML 视图,然后使用以下模板来创建
LokiStackCR:LokiStackCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用名称
logging-loki。 - 2
- 您必须将
openshift-logging指定为命名空间。 - 3
- 指定部署大小。Loki 生产实例支持的大小选项为
1x.extra-small、1x.small或1x.medium。另外,从 logging 6.1 开始支持 1x.pico。 - 4
- 指定日志存储 secret 的名称。
- 5
- 指定对应的存储类型。
- 6
- 为临时存储指定存储类的名称。为获得最佳性能,请指定分配块存储的存储类。您可以使用
oc get storageclasses命令列出集群的可用存储类。 - 7
openshift-logging模式是默认租期模式,其中为日志类型创建一个租户,如 audit、infrastructure 和 application。这为单个用户和用户组启用对不同的日志流的访问控制。
- 点 Create。
验证
-
在 LokiStack 选项卡中,您会看到
LokiStack实例。 -
在 Status 列中,验证您看到消息
Condition: Ready带有绿色勾号。
1.3.2. 使用 Web 控制台安装 Red Hat OpenShift Logging Operator 复制链接链接已复制到粘贴板!
使用 OpenShift Container Platform Web 控制台,在 OpenShift Container Platform 集群上安装 Red Hat OpenShift Logging Operator,以收集并将日志转发到来自 OperatorHub 的日志存储。
先决条件
- 有管理员权限。
- 访问 OpenShift Container Platform web 控制台。
- 已安装并配置了 Loki Operator。
流程
- 在 OpenShift Container Platform Web 控制台 Administrator 视角中,进入 Operators → OperatorHub。
- 在 Filter by keyword 字段中输入 Red Hat OpenShift Logging Operator。在可用的 Operator 列表中点 Red Hat OpenShift Logging Operator,然后点 Install。
选择 stable-x.y 作为 更新频道。Version 字段中已选中最新版本。
Red Hat OpenShift Logging Operator 必须部署到日志记录命名空间
openshift-logging中,因此已选择了 Installation mode 和 Installed Namespace。如果此命名空间尚不存在,则会为您创建它。选择 Enable Operator recommended cluster monitoring on this namespace。
这个选项在
Namespace对象中设置openshift.io/cluster-monitoring: "true"标签。您必须选择这个选项,以确保集群监控提取openshift-logging命名空间。对于 Update approval,请选择 Automatic,然后点 Install。
如果订阅中的批准策略被设置为 Automatic,则更新过程会在所选频道中提供新的 Operator 版本时立即启动。如果批准策略设为 Manual,则必须手动批准待处理的更新。
注意Operator 可能会在安装完成前显示
Failed状态。如果 Operator 安装完成并显示InstallSucceeded信息,请刷新页面。安装 Operator 时,创建日志收集器用于收集日志的服务帐户。
- 单击屏幕右上角的 +,以访问 Import YAML 页面。
输入服务帐户的 YAML 定义。
ServiceAccount对象示例apiVersion: v1 kind: ServiceAccount metadata: name: logging-collector namespace: openshift-logging
apiVersion: v1 kind: ServiceAccount metadata: name: logging-collector1 namespace: openshift-logging2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create 按钮。
创建
ClusterRoleBinding对象,为日志收集器授予访问您要收集的日志并写入日志存储(如基础架构和应用程序日志)所需的权限。- 进入 Operators → Installed Operators 页面。选择 operator 并点 All instances 选项卡。
- 为服务帐户授予所需的权限后,进入 Installed Operators 页面。在 Provided APIs 下选择 Red Hat OpenShift Logging Operator,找到 ClusterLogForwarder 资源,再点 Create Instance。
选择 YAML 视图,然后使用以下模板创建一个
ClusterLogForwarderCR:ClusterLogForwarderCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
验证
-
在 ClusterLogForwarder 选项卡中,验证您是否看到
ClusterLogForwarder实例。 在 Status 列中,验证您看到了信息:
-
condition: observability.openshift.io/Authorized -
observability.openshift.io/Valid, Ready
-