2.5. 配置日志记录收集器
Red Hat OpenShift 的 logging 从集群中收集操作和应用程序日志,并使用 Kubernetes pod 和项目元数据丰富数据。所有支持的对日志收集器的修改都是通过 ClusterLogForwarder
自定义资源(CR)中的 spec.collection
小节执行的。
2.5.1. 创建 LogFileMetricExporter 资源 复制链接链接已复制到粘贴板!
要从运行容器生成的日志生成指标,您必须创建一个 LogFileMetricExporter
自定义资源(CR)。
如果没有创建 LogFileMetricExporter
CR,您可能在 OpenShift Container Platform Web 控制台仪表板中看到 Produced Logs 的 No datapoints found 信息。
先决条件
- 有管理员权限。
- 已安装 Red Hat OpenShift Logging Operator。
-
已安装 OpenShift CLI(
oc
)。
步骤
创建一个
LogFileMetricExporter
CR 作为 YAML 文件:LogFileMetricExporter
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
LogFileMetricExporter
CR:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.2. 配置日志收集器 CPU 和内存限值 复制链接链接已复制到粘贴板!
使用日志收集器调整 CPU 和内存限值。
流程
编辑
ClusterLogForwarder
自定义资源(CR):oc -n openshift-logging edit ClusterLogging instance
$ oc -n openshift-logging edit ClusterLogging instance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 根据需要指定 CPU 和内存限值及请求。显示的值是默认值。
2.5.3. 配置输入接收器 复制链接链接已复制到粘贴板!
Red Hat OpenShift Logging Operator 为每个配置的输入接收器部署服务,以便客户端可以写入收集器。此服务公开为输入接收器指定的端口。对于日志转发器 ClusterLogForwarder
CR 部署,服务名称采用 < clusterlogforwarder_resource_name>-<input_name>
格式。
2.5.3.1. 配置收集器以接收审计日志作为 HTTP 服务器 复制链接链接已复制到粘贴板!
您可以通过将 http
指定为 ClusterLogForwarder
自定义资源(CR)的接收器输入,将日志收集器配置为仅侦听 HTTP 连接来接收审计日志。
HTTP 接收器输入只支持以下情况:
- 日志记录安装在托管的 control plane 上。
当日志来自与 Red Hat OpenShift Logging Operator 相同的集群中安装的红帽支持的产品时。例如:
- OpenShift Virtualization
先决条件
- 有管理员权限。
-
已安装 OpenShift CLI(
oc
)。 - 已安装 Red Hat OpenShift Logging Operator。
-
您已创建了
ClusterLogForwarder
CR。
步骤
修改
ClusterLogForwarder
CR,以添加http
接收器输入的配置:ClusterLogForwarder
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将更改应用到
ClusterLogForwarder
CR:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证收集器是否在 <clusterlogforwarder_resource_name>-<input
_name> 格式处于 <clusterlogforwarder_resource_name>-<input_name
> 格式的服务:oc get svc
$ oc get svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 3m6s collector-http-receiver ClusterIP 172.30.205.160 <none> 8443/TCP 3m6s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 3m6s collector-http-receiver ClusterIP 172.30.205.160 <none> 8443/TCP 3m6s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,服务名称是
collector-http-receiver
。运行以下命令提取证书颁发机构(CA)证书文件:
oc extract cm/openshift-service-ca.crt -n <namespace>
$ oc extract cm/openshift-service-ca.crt -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用
curl
命令发送日志:curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<msessage>"}'
$ curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<msessage>"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<openshift_service_ca.crt
> 替换为提取的 CA 证书文件。注意您只能按照验证步骤在集群中转发日志。
2.5.3.2. 将收集器配置为侦听连接作为 syslog 服务器 复制链接链接已复制到粘贴板!
您可以通过在 ClusterLogForwarder
自定义资源(CR)中将 syslog
指定为接收器输入,将日志收集器配置为收集日志格式基础架构日志。
只有在以下情况中只支持 syslog 接收器输入:
- 日志记录安装在托管的 control plane 上。
当日志来自与 Red Hat OpenShift Logging Operator 相同的集群中安装的红帽支持的产品时。例如:
- Red Hat OpenStack Services on OpenShift (RHOSO)
- OpenShift Virtualization
先决条件
- 有管理员权限。
-
已安装 OpenShift CLI(
oc
)。 - 已安装 Red Hat OpenShift Logging Operator。
-
您已创建了
ClusterLogForwarder
CR。
流程
运行以下命令,为服务帐户授予
collect-infrastructure-logs
集群角色:绑定命令示例
oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollector
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollector
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
ClusterLogForwarder
CR,为syslog
接收器输入添加配置:ClusterLogForwarder
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将更改应用到
ClusterLogForwarder
CR:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证收集器是否在 <clusterlogforwarder_resource_name>-<input
_name> 格式处于 <clusterlogforwarder_resource_name>-<input_name
> 格式的服务:oc get svc
$ oc get svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 33m collector-syslog-receiver ClusterIP 172.30.216.142 <none> 10514/TCP 2m20s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE collector ClusterIP 172.30.85.239 <none> 24231/TCP 33m collector-syslog-receiver ClusterIP 172.30.216.142 <none> 10514/TCP 2m20s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,服务名称为
collector-syslog-receiver
。