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。该值可以是十进制整数,也可以是区分大小写的关键字:

    • 0kern 用于内核信息
    • 1user 代表用户级信息(默认)。
    • 2mail 用于邮件系统。
    • 3daemon 用于系统守护进程
    • 4auth 用于安全/身份验证相关的信息
    • 5syslog 用于 syslogd 内部生成的信息
    • 6lpr 用于行打印机子系统
    • 7news 用于网络新闻子系统
    • 8uucp 用于 UUCP 子系统
    • 9cron 用于 clock 守护进程
    • 10authpriv 用于安全身份验证信息
    • 11ftp 用于 FTP 守护进程
    • 12ntp 用于 NTP 子系统
    • 13security 用于 syslog audit 日志
    • 14console 用于 syslog alert 日志
    • 15solaris-cron 用于 scheduling 守护进程
    • 16-23local0 - local7 用于本地使用的工具
  • payloadKey:用作 syslog 消息有效负载的记录字段。
  • RFC:用于使用 syslog 发送日志的 RFC。
  • severity:设置传出的 syslog 记录的syslog 的严重性。该值可以是十进制整数,也可以是区分大小写的关键字:

    • 0Emergency 用于代表系统不可用的信息
    • 1Alert 用于代表立即执行操作的信息
    • 2Critical 用于代表关键状况的信息
    • 3Error 用于代表错误状况的信息
    • 4Warning 用于代表警告条件的信息
    • 5Notice 用于代表正常但存在重要条件的信息
    • 6Informational 用于代表提示信息的信息
    • 7Debug 用于代表调试级别的信息(默认)
  • tag:用作 syslog 消息标签的记录字段。
  • trimPrefix:从标签中删除的前缀。

流程

配置 OpenShift Container Platform 使用旧配置方法转发日志:

  1. 创建名为 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
    指定要使用的协议,可以是: syslogsyslog_buffered
    2
    指定 syslog 服务器的 FQDN 或 IP 地址。
    3
    指定接收方的端口。
    4
    可选:指定适当的 syslog 参数,例如:
    • 从 syslog 前缀中删除指定的 tag 字段的参数。
    • 参数将指定的字段设置为 syslog 键。
    • 指定 syslog 日志工具或源的参数。
    • 指定 syslog 日志严重性参数。
    • 参数来使用记录中的严重性和工具(如果可用)。如果为 true$1则输出内容中包含 container _name、namespace _name 和 pod_name
    • 参数来指定设置 syslog 消息有效负载的键。默认为 message
    5
    如果使用旧的 syslog 方法,必须把 rfc 值指定为 3164
  2. 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