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.11.11. 使用 syslog 协议转发日志
您可以使用 syslog RFC3164 或 RFC5424 协议将日志副本发送到配置为接受该协议的外部日志聚合器(替代默认的 Elasticsearch 日志存储或作为它的补充)。您需要配置外部日志聚合器(如 syslog 服务器)来接收来自 OpenShift Container Platform 的日志。
要使用 syslog 协议配置日志转,,请创建一个 ClusterLogForwarder 自定义资源(CR),并将一个或多个输出输出到使用这些输出的 syslog 服务器和管道。syslog 输出可以使用 UDP、TCP 或 TLS 连接。
先决条件
- 您必须有配置为使用指定协议或格式接收日志数据的日志服务器。
流程
创建或编辑定义
ClusterLogForwarderCR 对象的 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ClusterLogForwarderCR 的名称必须是instance。- 2
ClusterLogForwarderCR 的命名空间必须是openshift-logging。- 3
- 指定输出的名称。
- 4
- 指定
syslog类型。 - 5
- 可选:指定 syslog 参数,如下所列。
- 6
- 指定外部 syslog 实例的 URL 和端口。您可以使用
udp(不安全)、tcp(不安全)或者tls(安全 TCP)协议。如果启用了使用 CIDR 注解的集群范围代理,输出必须是服务器名称或 FQDN,而不是 IP 地址。 - 7
- 如果使用
tls前缀,您必须为 TLS 通信指定端点所需的 secret 名称。secret 必须存在于openshift-logging项目中,且必须具有指向它们所代表的相应证书的:tls.crt、tls.key 和 ca-bundle.crt 的密钥。 - 8
- 可选:指定管道的名称。
- 9
- 使用管道指定要转发的日志类型:
application、infrastructure或audit。 - 10
- 指定使用此管道转发日志时使用的输出名称。
- 11
- 可选:指定将日志转发到内部 Elasticsearch 实例的
default输出。 - 12
- 可选:指定是否转发结构化 JSON 日志条目作为
structured项中的 JSON 对象。日志条目必须包含有效的结构化 JSON;否则,OpenShift Logging 会删除structured字段,并将日志条目发送到默认索引app-00000x。 - 13
- 可选:字符串。要添加到日志中的一个或多个标签。对值加引号(如 "true"),以便它们被识别为字符串值,而不是作为布尔值。
- 14
- 可选:配置多个输出,将日志转发到任何受支持类型的其他外部日志聚合器:
- 描述管道的名称。
-
inputRefs是使用管道转发的日志类型:application、infrastructure或audit。 -
outputRefs是要使用的输出名称。 - 可选:字符串。要添加到日志中的一个或多个标签。
创建 CR 对象:
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.11.1. 在消息输出中添加日志消息 复制链接链接已复制到粘贴板!
您可以通过将 AddLogSource 字段添加到 ClusterLogForwarder 自定义资源(CR)将 namespace_name、pod_name 和 container_name 元素添加到记录的 message 字段中。
这个配置与 RFC3164 和 RFC5424 兼容。
没有 AddLogSource 的 syslog 消息输出示例
<15>1 2020-11-15T17:06:14+00:00 fluentd-9hkb4 mytag - - - {"msgcontent"=>"Message Contents", "timestamp"=>"2020-11-15 17:06:09", "tag_key"=>"rec_tag", "index"=>56}
<15>1 2020-11-15T17:06:14+00:00 fluentd-9hkb4 mytag - - - {"msgcontent"=>"Message Contents", "timestamp"=>"2020-11-15 17:06:09", "tag_key"=>"rec_tag", "index"=>56}
带有 AddLogSource 的 syslog 消息输出示例
<15>1 2020-11-16T10:49:37+00:00 crc-j55b9-master-0 mytag - - - namespace_name=clo-test-6327,pod_name=log-generator-ff9746c49-qxm7l,container_name=log-generator,message={"msgcontent":"My life is my message", "timestamp":"2020-11-16 10:49:36", "tag_key":"rec_tag", "index":76}
<15>1 2020-11-16T10:49:37+00:00 crc-j55b9-master-0 mytag - - - namespace_name=clo-test-6327,pod_name=log-generator-ff9746c49-qxm7l,container_name=log-generator,message={"msgcontent":"My life is my message", "timestamp":"2020-11-16 10:49:36", "tag_key":"rec_tag", "index":76}
11.11.2. syslog 参数 复制链接链接已复制到粘贴板!
您可以为 syslog 输出配置以下内容。如需更多信息,请参阅 syslog RFC3164 或 RFC5424 RFC。
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 消息有效负载的记录字段。注意配置
payloadKey参数可防止将其他参数转发到 syslog。- RFC:用于使用 syslog 发送日志的 RFC。默认为 RFC5424。
severity:设置传出的 syslog 记录的syslog 的严重性。该值可以是十进制整数,也可以是区分大小写的关键字:
-
0或Emergency用于代表系统不可用的信息 -
1或Alert用于代表立即执行操作的信息 -
2或Critical用于代表关键状况的信息 -
3或Error用于代表错误状况的信息 -
4或Warning用于代表警告条件的信息 -
5或Notice用于代表正常但存在重要条件的信息 -
6或Informational用于代表提示信息的信息 -
7或Debug用于代表调试级别的信息(默认)
-
- tag:Tag 指定记录字段,用作 syslog 消息上的标签。
- trimPrefix:从标签中删除指定的前缀。
11.11.3. 其他 RFC5424 syslog 参数 复制链接链接已复制到粘贴板!
以下参数适用于 RFC5424:
-
appName: APP-NAME 是一个自由文本字符串,用于标识发送日志的应用程序。必须为
RFC5424指定。 -
msgID: MSGID 是一个用于标识消息类型的自由文本字符串。必须为
RFC5424指定。 -
PROCID: PROCID 是一个自由文本字符串。该值的变化表示 syslog 报告不连续。必须为
RFC5424指定。