7.9. 使用旧的 Fluentd 方法转发日志
您可以通过创建配置文件和配置映射,使用 Fluentd forward 协议将日志发送到 OpenShift Container Platform 集群外的目的地。您需要配置外部日志聚合器,以接收来自 OpenShift Container Platform 的日志数据。
此转发日志的方法在 OpenShift Container Platform 中已弃用,并将在以后的发行版本中删除。
要使用 Fluentd forward 协议发送日志,请创建一个名为 secure-forward.conf
的配置文件,指向外部日志聚合器。然后,使用该文件在 openshift-logging 项目中创建一个名为
映射,OpenShift Container Platform 在转发日志时使用它。
secure-forward
的配置
先决条件
- 您必须有配置为使用指定协议或格式接收日志数据的日志服务器。
Fluentd 配置文件示例
<store> @type forward <security> self_hostname ${hostname} shared_key "fluent-receiver" </security> transport tls tls_verify_hostname false tls_cert_path '/etc/ocp-forward/ca-bundle.crt' <buffer> @type file path '/var/lib/fluentd/secureforwardlegacy' queued_chunks_limit_size "1024" chunk_limit_size "1m" flush_interval "5s" flush_at_shutdown "false" flush_thread_count "2" retry_max_interval "300" retry_forever true overflow_action "#{ENV['BUFFER_QUEUE_FULL_ACTION'] || 'throw_exception'}" </buffer> <server> host fluent-receiver.example.com port 24224 </server> </store>
流程
配置 OpenShift Container Platform 使用旧的 Fluentd 方法转发日志:
创建名为
secure-forward 的
配置文件,并在<store>
部分中指定类似如下的参数:<store> @type forward <security> self_hostname ${hostname} shared_key <key> 1 </security> transport tls 2 tls_verify_hostname <value> 3 tls_cert_path <path_to_file> 4 <buffer> 5 @type file path '/var/lib/fluentd/secureforwardlegacy' queued_chunks_limit_size "#{ENV['BUFFER_QUEUE_LIMIT'] || '1024' }" chunk_limit_size "#{ENV['BUFFER_SIZE_LIMIT'] || '1m' }" flush_interval "#{ENV['FORWARD_FLUSH_INTERVAL'] || '5s'}" flush_at_shutdown "#{ENV['FLUSH_AT_SHUTDOWN'] || 'false'}" flush_thread_count "#{ENV['FLUSH_THREAD_COUNT'] || 2}" retry_max_interval "#{ENV['FORWARD_RETRY_WAIT'] || '300'}" retry_forever true </buffer> <server> name 6 host 7 hostlabel 8 port 9 </server> <server> 10 name host </server>
要使用 Mutual TLS(mTLS)身份验证,请参阅 Fluentd 文档来获取有关客户端证书、密钥参数和其他设置的信息。
在
openshift-logging
项目中创建名为secure-forward
的配置映射:$ oc create configmap secure-forward --from-file=secure-forward.conf -n openshift-logging
Red Hat OpenShift Logging Operator 会重新部署 Fluentd Pod。如果 pod 没有重新部署,您可以删除 Fluentd pod 来强制重新部署。
$ oc delete pod --selector logging-infra=fluentd