搜索

7.5. 使用 syslog 协议转发日志

download PDF

您可以使用 syslog RFC3164RFC5424 协议将日志副本发送到配置为接受该协议的外部日志聚合器(替代默认的 Elasticsearch 日志存储或作为它的补充)。您需要配置外部日志聚合器(如 syslog 服务器)来接收来自 OpenShift Container Platform 的日志。

要使用 syslog 协议配置日志转,,请创建一个 ClusterLogForwarder 自定义资源(CR),并将一个或多个输出输出到使用这些输出的 syslog 服务器和管道。syslog 输出可以使用 UDP、TCP 或 TLS 连接。

注意

另外,您可以使用配置映射使用 syslog RFC3164 协议转发日志。但是,此方法在 OpenShift Container Platform 中已弃用,并将在以后的发行版本中删除。

先决条件

  • 您必须有配置为使用指定协议或格式接收日志数据的日志服务器。

流程

  1. 创建一个类似如下的 ClusterLogForwarder CR YAML 文件:

    apiVersion: logging.openshift.io/v1
    kind: ClusterLogForwarder
    metadata:
      name: instance 1
      namespace: openshift-logging 2
    spec:
      outputs:
       - name: rsyslog-east 3
         type: syslog 4
         syslog: 5
           facility: local0
           rfc: RFC3164
           payloadKey: message
           severity: informational
         url: 'tls://rsyslogserver.east.example.com:514' 6
         secret: 7
            name: syslog-secret
       - name: rsyslog-west
         type: syslog
         syslog:
          appName: myapp
          facility: user
          msgID: mymsg
          procID: myproc
          rfc: RFC5424
          severity: debug
         url: 'udp://rsyslogserver.west.example.com:514'
      pipelines:
       - name: syslog-east 8
         inputRefs: 9
         - audit
         - application
         outputRefs: 10
         - rsyslog-east
         - default 11
         parse: json 12
         labels:
           secure: "true" 13
           syslog: "east"
       - name: syslog-west 14
         inputRefs:
         - infrastructure
         outputRefs:
         - rsyslog-west
         - default
         labels:
           syslog: "west"
    1
    ClusterLogForwarder CR 的名称必须是 instance
    2
    ClusterLogForwarder CR 的命名空间必须是 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.crttls.keyca-bundle.crt 的键。
    8
    可选:指定管道的名称。
    9
    指定使用该管道转发哪些日志类型:applicationinfrastructureaudit
    10
    指定要与该管道搭配使用的输出来转发日志。
    11
    可选:指定将日志转发到内部 Elasticsearch 实例的 default 输出。
    12
    可选:转发结构化的 JSON 日志条目作为 JSON 对象,在 structured 项。日志条目必须包含有效的结构化 JSON;否则,OpenShift Logging 会删除 structured 字段,并将日志条目发送到默认索引 app-00000x
    13
    可选:字符串。要添加到日志中的一个或多个标签。对值加引号(如 "true"),以便它们被识别为字符串值,而不是作为布尔值。
    14
    可选:配置多个输出,将日志转发到任何受支持类型的其他外部日志聚合器:
    • 可选。描述管道的名称。
    • inputRefs 是使用管道转发的日志类型:applicationinfrastructureaudit
    • outputRefs 是要使用的输出名称。
    • 可选:字符串。要添加到日志中的一个或多个标签。
  2. 创建 CR 对象。

    $ oc create -f <file-name>.yaml

Red Hat OpenShift Logging Operator 会重新部署 Fluentd Pod。如果 pod 没有重新部署,您可以删除 Fluentd pod 来强制重新部署。

$ oc delete pod --selector logging-infra=fluentd

7.5.1. syslog 参数

您可以为 syslog 输出配置以下内容。如需更多信息,请参阅 syslog RFC3164RFC5424 RFC。

  • 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 消息有效负载的记录字段。

    注意

    配置 payloadKey 参数可防止将其他参数转发到 syslog。

  • RFC:用于使用 syslog 发送日志的 RFC。默认为 RFC5424。
  • severity:设置传出的 syslog 记录的syslog 的严重性。该值可以是十进制整数,也可以是区分大小写的关键字:

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

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.