第 1 章 配置日志转发
ClusterLogForwarder
(CLF)允许用户配置将日志转发到各种目的地。它提供从不同来源选择日志消息的灵活方法,通过管道发送或过滤它们,并将它们转发到一个或多个输出。
ClusterLogForwarder 的主要功能
- 使用输入选择日志消息
- 使用输出将日志转发到外部目的地
- 使用过滤器过滤、转换和丢弃日志消息
- 定义日志转发管道连接输入、过滤器和输出
1.1. 设置日志集合 复制链接链接已复制到粘贴板!
此 Cluster Logging 发行版本要求管理员为与 ClusterLogForwarder 关联的服务帐户明确授予日志收集权限。在以前的版本中,不需要传统的日志场景由 ClusterLogging 以及一个可选的 ClusterLogForwarder.logging.openshift.io 资源组成。
Red Hat OpenShift Logging Operator 提供 collect-audit-logs
、collect-application-logs
和 collect-infrastructure-logs
集群角色,使收集器能够分别收集审计日志、应用程序日志和基础架构日志。
通过将所需的集群角色绑定到服务帐户来设置日志收集。
1.1.1. 传统服务帐户 复制链接链接已复制到粘贴板!
要使用现有的旧服务帐户 logcollector
,请创建以下 ClusterRoleBinding :
oc adm policy add-cluster-role-to-user collect-application-logs system:serviceaccount:openshift-logging:logcollector
$ oc adm policy add-cluster-role-to-user collect-application-logs system:serviceaccount:openshift-logging:logcollector
oc adm policy add-cluster-role-to-user collect-infrastructure-logs system:serviceaccount:openshift-logging:logcollector
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs system:serviceaccount:openshift-logging:logcollector
另外,如果收集审计日志,请创建以下 ClusterRoleBinding :
oc adm policy add-cluster-role-to-user collect-audit-logs system:serviceaccount:openshift-logging:logcollector
$ oc adm policy add-cluster-role-to-user collect-audit-logs system:serviceaccount:openshift-logging:logcollector
1.1.2. 创建服务帐户 复制链接链接已复制到粘贴板!
先决条件
-
Red Hat OpenShift Logging Operator 安装在
openshift-logging
命名空间中。 - 有管理员权限。
步骤
- 为收集器创建服务帐户。如果要将日志写入需要令牌进行身份验证的存储,则必须在服务帐户中包含令牌。
将适当的集群角色绑定到服务帐户:
绑定命令示例
oc adm policy add-cluster-role-to-user <cluster_role_name> system:serviceaccount:<namespace_name>:<service_account_name>
$ oc adm policy add-cluster-role-to-user <cluster_role_name> system:serviceaccount:<namespace_name>:<service_account_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.2.1. 服务帐户的集群角色绑定 复制链接链接已复制到粘贴板!
role_binding.yaml 文件将 ClusterLogging operator 的 ClusterRole 绑定到特定的 ServiceAccount,允许其在集群范围管理 Kubernetes 资源。
- 1
- roleRef:引用绑定应用到的 ClusterRole。
- 2
- apiGroup :指示 RBAC API 组,指定 ClusterRole 是 Kubernetes 的 RBAC 系统的一部分。
- 3
- kind:指定引用的角色是一个 ClusterRole,它将应用集群范围的。
- 4
- name :绑定到 ServiceAccount 的 ClusterRole 名称,这里是 cluster-logging-operator。
- 5
- subjects :定义从 ClusterRole 授予权限的实体(用户或服务帐户)。
- 6
- kind:指定主体是一个 ServiceAccount。
- 7
- Name :被授予权限的 ServiceAccount 的名称。
- 8
- namespace :指示 ServiceAccount 所在的命名空间。
1.1.2.2. 编写应用程序日志 复制链接链接已复制到粘贴板!
write-application-logs-clusterrole.yaml 文件定义了一个 ClusterRole,它授予将应用程序日志写入 Loki 日志记录应用程序的权限。
- 1
- rules:指定此 ClusterRole 授予的权限。
- 2
- apiGroups :请参阅与 Loki 日志记录系统相关的 API 组 loki.grafana.com。
- 3
- loki.grafana.com :用于管理 Loki 相关资源的 API 组。
- 4
- resources :ClusterRole 授予权限的用户的资源类型。
- 5
- application: 引用 Loki 日志记录系统中的应用程序资源。
- 6
- resourceNames:指定此角色可以管理的资源的名称。
- 7
- logs :引用可以创建的日志资源。
- 8
- verbs :资源允许的操作。
- 9
- create: 授予在 Loki 系统中创建新日志的权限。
1.1.2.3. 编写审计日志 复制链接链接已复制到粘贴板!
write-audit-logs-clusterrole.yaml 文件定义了一个 ClusterRole,它授予在 Loki 日志记录系统中创建审计日志的权限。
1.1.2.4. 编写基础架构日志 复制链接链接已复制到粘贴板!
write-infrastructure-logs-clusterrole.yaml 文件定义了一个 ClusterRole,它授予在 Loki 日志记录系统中创建基础架构日志的权限。
YAML 示例
1.1.2.5. ClusterLogForwarder 编辑器角色 复制链接链接已复制到粘贴板!
clusterlogforwarder-editor-role.yaml 文件定义了一个 ClusterRole,允许用户在 OpenShift 中管理 ClusterLogForwarders。
- 1
- rules:指定此 ClusterRole 授予的权限。
- 2
- apiGroups :请参阅特定于 OpenShift 的 API 组
- 3
- obervability.openshift.io :用于管理可观察性资源的 API 组,如 logging。
- 4
- resources:指定此角色可以管理的资源。
- 5
- clusterlogforwarders :请参阅 OpenShift 中的日志转发资源。
- 6
- verbs :指定 ClusterLogForwarders 上允许的操作。
- 7
- create: Grants 权限来创建新的 ClusterLogForwarders。
- 8
- delete: Grants 权限删除现有 ClusterLogForwarders。
- 9
- get :授予检索有关特定 ClusterLogForwarders 的信息的权限。
- 10
- list :允许列出所有 ClusterLogForwarders。
- 11
- patch :授予部分修改 ClusterLogForwarders 的权限。
- 12
- update: 授予更新现有 ClusterLogForwarders 的权限。
- 13
- watch :授予监控 ClusterLogForwarders 的更改的权限。