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 项目中编辑
fluentdDaemonSet。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项目中设置fluentdDaemonSet 的环境变量。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 所需的远程 syslog 主机。每个主机都需要。
这将建立两个目的地。
host1上的 syslog 服务器将在默认端口514上接收消息,host2则在端口5555上接收相同的消息。或者,您可以在
openshift-logging项目中自行配置自定义fluentdDaemonSet。Fluentd 环境变量
Expand 参数 描述 USE_REMOTE_SYSLOG默认值为
false。设置为true可启用fluent-plugin-remote-sysloggemREMOTE_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-loggingCopy 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 插件。