7.10. 使用旧的 syslog 方法转发日志
您可以通过创建配置文件和配置映射,使用 syslog RFC3164 协议将日志发送到 OpenShift Container Platform 集群外的目的地。您需要配置外部日志聚合器(如 syslog 服务器)来接收来自 OpenShift Container Platform 的日志。
此转发日志的方法在 OpenShift Container Platform 中已弃用,并将在以后的发行版本中删除。
syslog 协议有两个版本:
- out_syslog:非缓冲的实现(通过 UDP 进行沟通)不会缓冲数据并立即写入结果。
- out_syslog_uffered:缓冲的实现,它通过 TCP 进行通讯并将数据缓冲到块中。
要使用 syslog 协议发送日志,请创建一个名为 syslog.conf
的配置文件,并提供转发日志所需的信息。然后,使用该文件在 openshift-logging
项目中创建一个名为 syslog
的配置映射,OpenShift Container Platform 在转发日志时使用该文件。
先决条件
- 您必须有配置为使用指定协议或格式接收日志数据的日志服务器。
syslog 配置文件示例
<store> @type syslog_buffered remote_syslog rsyslogserver.example.com port 514 hostname ${hostname} remove_tag_prefix tag facility local0 severity info use_record true payload_key message rfc 3164 </store>
您可以配置以下 syslog
参数。如需更多信息,请参阅 syslog RFC3164。
facility: syslog facility。该值可以是十进制整数,也可以是区分大小写的关键字:
-
0
或kern
用于内核信息 -
1
或user
代表用户级信息(默认)。 -
2
或mail
用于邮件系统。 -
3
或daemon
用于系统守护进程 -
4
或auth
用于安全/身份验证相关的信息 -
5
或syslog
用于 syslogd 内部生成的信息 -
6
或lpr
用于行打印机子系统 -
7
或news
用于网络新闻子系统 -
8
或uucp
用于 UUCP 子系统 -
9
或cron
用于 clock 守护进程 -
10
或authpriv
用于安全身份验证信息 -
11
或ftp
用于 FTP 守护进程 -
12
或ntp
用于 NTP 子系统 -
13
或security
用于 syslog audit 日志 -
14
或console
用于 syslog alert 日志 -
15
或solaris-cron
用于 scheduling 守护进程 -
16
-23
或local0
-local7
用于本地使用的工具
-
- payloadKey:用作 syslog 消息有效负载的记录字段。
- RFC:用于使用 syslog 发送日志的 RFC。
severity:设置传出的 syslog 记录的syslog 的严重性。该值可以是十进制整数,也可以是区分大小写的关键字:
-
0
或Emergency
用于代表系统不可用的信息 -
1
或Alert
用于代表立即执行操作的信息 -
2
或Critical
用于代表关键状况的信息 -
3
或Error
用于代表错误状况的信息 -
4
或Warning
用于代表警告条件的信息 -
5
或Notice
用于代表正常但存在重要条件的信息 -
6
或Informational
用于代表提示信息的信息 -
7
或Debug
用于代表调试级别的信息(默认)
-
- tag:用作 syslog 消息标签的记录字段。
- trimPrefix:从标签中删除的前缀。
流程
配置 OpenShift Container Platform 使用旧配置方法转发日志:
创建名为
syslog.conf
的配置文件,并在<store>
部分中指定类似如下的参数:<store> @type <type> 1 remote_syslog <syslog-server> 2 port 514 3 hostname ${hostname} remove_tag_prefix <prefix> 4 facility <value> severity <value> use_record <value> payload_key message rfc 3164 5 </store>
- 1
- 指定要使用的协议,可以是:
syslog
或syslog_buffered
。 - 2
- 指定 syslog 服务器的 FQDN 或 IP 地址。
- 3
- 指定接收方的端口。
- 4
- 可选:指定适当的 syslog 参数,例如:
-
从 syslog 前缀中删除指定的
tag
字段的参数。 - 参数将指定的字段设置为 syslog 键。
- 指定 syslog 日志工具或源的参数。
- 指定 syslog 日志严重性参数。
-
参数来使用记录中的严重性和工具(如果可用)。如果为
true
$1则输出内容中包含 container
_name
、namespace_name 和 pod_name
。 -
参数来指定设置 syslog 消息有效负载的键。默认为
message
。
-
从 syslog 前缀中删除指定的
- 5
- 如果使用旧的 syslog 方法,必须把
rfc
值指定为3164
。
在
openshift-logging
项目中创建名为syslog
的配置映射:$ oc create configmap syslog --from-file=syslog.conf -n openshift-logging
Red Hat OpenShift Logging Operator 会重新部署 Fluentd Pod。如果 pod 没有重新部署,您可以删除 Fluentd pod 来强制重新部署。
$ oc delete pod --selector logging-infra=fluentd