2.3. 配置输入接收器
Red Hat OpenShift Logging Operator 为每个配置的输入接收器部署服务,以便客户端可以写入收集器。此服务公开为输入接收器指定的端口。对于日志转发器 ClusterLogForwarder CR 部署,服务名称采用 <clusterlogforwarder_resource_name>-<input_name> 格式。
2.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。
流程
修改
ClusterLogForwarderCR,以添加http接收器输入的配置:ClusterLogForwarderCR 示例apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: <clusterlogforwarder_name>1 namespace: <namespace> # ... spec: serviceAccount: name: <service_account_name> inputs: - name: http-receiver2 type: receiver receiver: type: http3 port: 84434 http: format: kubeAPIAudit5 outputs: - name: <output_name> type: http http: url: <url> pipelines:6 - name: http-pipeline inputRefs: - http-receiver outputRefs: - <output_name> # ...运行以下命令,将更改应用到
ClusterLogForwarderCR:$ oc apply -f <filename>.yaml运行以下命令,验证收集器正在监听服务,名称的格式是
<clusterlogforwarder_resource_name>-<input_name>:$ oc get svc输出示例
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在示例中,服务名称是
collector-http-receiver。
验证
运行以下命令提取证书颁发机构(CA)证书文件:
$ oc extract cm/openshift-service-ca.crt -n <namespace>注意如果收集器运行有变化的集群中 CA,您必须再次提取 CA 证书文件。
例如,运行以下命令使用
curl命令发送日志:$ curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<message>"}'将 <openshift_service_ca.crt> 替换为提取的 CA 证书文件。
2.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。
流程
运行以下命令,为服务帐户授予
collect-infrastructure-logs集群角色:绑定命令示例
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollector修改
ClusterLogForwarderCR,为syslog接收器输入添加配置:ClusterLogForwarderCR 示例apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: <clusterlogforwarder_name>1 namespace: <namespace> # ... spec: serviceAccount: name: <service_account_name>2 inputs: - name: syslog-receiver3 type: receiver receiver: type: syslog4 port: 105145 outputs: - name: <output_name> lokiStack: authentication: token: from: serviceAccount target: name: logging-loki namespace: openshift-logging tls:6 ca: key: service-ca.crt configMapName: openshift-service-ca.crt type: lokiStack # ... pipelines:7 - name: syslog-pipeline inputRefs: - syslog-receiver outputRefs: - <output_name> # ...运行以下命令,将更改应用到
ClusterLogForwarderCR:$ oc apply -f <filename>.yaml运行以下命令,验证收集器正在监听服务,名称的格式是
<clusterlogforwarder_resource_name>-<input_name>:$ oc get svc输出示例
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在本例中,服务名称为
collector-syslog-receiver。
验证
运行以下命令提取证书颁发机构(CA)证书文件:
$ oc extract cm/openshift-service-ca.crt -n <namespace>注意如果收集器运行有变化的集群中 CA,您必须再次提取 CA 证书文件。
例如,运行以下命令使用
curl命令发送日志:$ curl --cacert <openshift_service_ca.crt> collector-syslog-receiver.<namespace>.svc:10514 “test message”将 <openshift_service_ca.crt> 替换为提取的 CA 证书文件。