This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.8.9. 将 OpenShift Container Platform 日志发送到外部设备
您可以将 Elasticsearch 日志发送到外部设备,如外部托管的 Elasticsearch 实例或外部 syslog 服务器。还可以配置 Fluentd,使其将日志发送到外部日志聚合器。
除非另有说明,否则在执行这些配置之前,必须将集群日志记录设置为非受管状态。如需更多信息,请参阅更改集群日志记录管理状态。
8.9.1. 配置日志收集器以将日志发送到外部 Elasticsearch 实例 复制链接链接已复制到粘贴板!
日志收集器将日志发送到 Elasticsearch 部署配置的 ES_HOST
、ES_PORT
、OPS_HOST
和 OPS_PORT
环境变量的值。应用程序日志定向到 ES_HOST
目的地,操作日志则定向到 OPS_HOST
。
不支持将日志直接发送到 AWS Elasticsearch 实例。使用 Fluentd Secure Forward 将日志定向到由您控制并且配置了 fluent-plugin-aws-Elasticsearch-service
插件的 Fluentd 实例。
先决条件
- 必须安装 Cluster Logging 和 Elasticsearch。
- 将集群日志记录设置为非受管状态。
流程
将日志定向到特定的 Elasticsearch 实例:
在 openshift-logging 项目中编辑
fluentd
DaemonSet。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
ES_HOST
和OPS_HOST
设为相同的目的地,同时确保ES_PORT
和OPS_PORT
也具有相同的值,使外部 Elasticsearch 实例同时包含应用程序日志和操作日志。 - 为 TLS 配置外部托管的 Elasticsearch 实例。仅允许使用相互 TLS 的外部托管 Elasticsearch 实例。
如果不使用提供的 Kibana 和 Elasticsearch 镜像,您将没有同样的多租户功能,您的数据也不会由用户访问权限限制到特定的项目。
8.9.2. 配置日志收集器以将日志发送到外部 syslog 服务器 复制链接链接已复制到粘贴板!
在主机上使用 fluent-plugin-remote-syslog
插件,将日志发送到外部 syslog 服务器。
先决条件
将集群日志记录设置为非受管状态。
流程
在
openshift-logging
项目中设置fluentd
DaemonSet 的环境变量。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 所需的远程 syslog 主机。每个主机都需要。
这将建立两个目的地。
host1
上的 syslog 服务器将在默认端口514
上接收消息,host2
则在端口5555
上接收相同的消息。或者,您可以在
openshift-logging
项目中自行配置自定义fluentd
DaemonSet。Fluentd 环境变量
Expand 参数 描述 USE_REMOTE_SYSLOG
默认值为
false
。设置为true
可启用fluent-plugin-remote-syslog
gemREMOTE_SYSLOG_HOST
(必需)远程 syslog 服务器的主机名或 IP 地址。
REMOTE_SYSLOG_PORT
要连接的端口号。默认值为
514
。REMOTE_SYSLOG_SEVERITY
设置 syslog 严重性级别。默认值为
debug
。REMOTE_SYSLOG_FACILITY
设置 syslog 工具。默认值为
local0
。REMOTE_SYSLOG_USE_RECORD
默认值为
false
。设置为true
可使用记录的严重性和工具字段对 syslog 消息进行设置。REMOTE_SYSLOG_REMOVE_TAG_PREFIX
从标签中删除前缀,默认为
''
(空白)。REMOTE_SYSLOG_TAG_KEY
如果指定,则使用此字段作为要在记录上查看的键,以对 syslog 消息设置标签。
REMOTE_SYSLOG_PAYLOAD_KEY
如果指定,则使用此字段作为要在记录上查看的键,以对 syslog 消息设置有效负载。
REMOTE_SYSLOG_TYPE
设置传输层协议类型。默认为
syslog_buffered
,它设定 TCP 协议。要切换到 UDP,请将其设定为syslog
。警告这种实施是不安全的,应当仅在能保证不嗅探连接的环境中使用。
8.9.3. 配置 Fluentd 将日志发送到外部日志聚合器 复制链接链接已复制到粘贴板!
您可以使用 out_forward 插件,将 Fluentd 配置为将其日志的副本发送到外部日志聚合器,而不是默认的 Elasticsearch。在本地托管的 Fluentd 处理日志记录之后,您可以从那里进一步处理日志记录。
forward
插件仅被 Fluentd 支持 。out_forward 插件实现客户端(发送方),in_forward 实现服务器端(接收方)。
要将 OpenShift Container Platform 配置为使用 out_forward 来发送日志,在 openshift-logging
命名空间内创建一个名为 secure-forward
的 ConfigMap 来指向一个接收器。在接收器上,配置 in_forward 插件来接收来自 OpenShift Container Platform 的日志。有关使用 in_forward 插件的详情,请参考 Fluentd 文档。
默认 secure-forward.conf
部分
流程
将 Fluentd 日志的副本发送到外部日志聚合器:
编辑 Fluentd 配置映射的
secure-forward.conf
部分:oc edit configmap/fluentd -n openshift-logging
$ oc edit configmap/fluentd -n openshift-logging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入外部 Fluentd 服务器的名称、主机和端口。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将您的 CA 证书和私钥的路径添加到
secure-forward.conf
部分:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用 mTLS,请参阅 Fluentd 文档 来获取有关客户端证书和密钥参数及其他设置的信息。
将用于
secure-forward.conf
的证书添加到 Fluentd Pod 上挂载的现有 secret 中。your_ca_cert
和your_private_key
值必须与configmap/fluentd
的secure-forward.conf
中指定的值匹配:oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/your_ca_cert','value':'$(base64 -w0 /path/to/your_ca_cert.pem)'}]" oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/your_private_key','value':'$(base64 -w0 /path/to/your_private_key.pem)'}]"
$ oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/your_ca_cert','value':'$(base64 -w0 /path/to/your_ca_cert.pem)'}]" $ oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/your_private_key','value':'$(base64 -w0 /path/to/your_private_key.pem)'}]"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意将
your_private_key
替换为一个通用名称。这个链接指向 JSON 路径,而不是主机系统上的路径。例如:
oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/ca.crt','value':'$(base64 -w0 /etc/fluent/keys/ca.crt)'}]" oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/ext-agg','value':'$(base64 -w0 /etc/fluent/keys/ext-agg.pem)'}]"
$ oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/ca.crt','value':'$(base64 -w0 /etc/fluent/keys/ca.crt)'}]" $ oc patch secrets/fluentd --type=json \ --patch "[{'op':'add','path':'/data/ext-agg','value':'$(base64 -w0 /etc/fluent/keys/ext-agg.pem)'}]"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在外部聚合器上配置
secure-forward.conf
文件,以安全地接受来自 Fluentd 的信息。配置外部聚合器时,它必须能够安全地接受来自 Fluentd 的消息。
您可以参阅 如何设置 inforward 插件 及 out_forward 插件。