首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Syslog日志记录驱动程序(引擎) | Syslog logging driver (Engine)

syslog日志记录驱动程序将日志路由到syslog服务器。syslog协议使用原始字符串作为日志消息并支持一组有限的元数据。系统日志消息必须以特定方式格式化才能生效。从有效的消息中,接收者可以提取以下信息:

  • 优先级:日志记录级别,如debugwarningerrorinfo
  • 时间戳:事件发生的时间。
  • 主机名:事件发生的位置。
  • 设施:哪个子系统记录了消息,例如mailkernel
  • 进程名称进程ID(PID):生成日志的进程的名称和ID。

格式在RFC 5424中定义,Docker的syslog驱动程序按以下方式实现ABNF引用

代码语言:javascript
复制
                TIMESTAMP SP HOSTNAME SP APP-NAME SP PROCID SP MSGID
                    +          +             +           |        +
                    |          |             |           |        |
                    |          |             |           |        |
       +------------+          +----+        |           +----+   +---------+
       v                            v        v                v             v
2017-04-01T17:41:05.616647+08:00 a.vm {taskid:aa,version:} 1787791 {taskid:aa,version:}

使用

要将syslog驱动程序用作默认日志记录驱动程序,请将该键log-driverlog-opt键设置daemon.json为位于/etc/docker/Linux主机或C:\ProgramData\docker\config\daemon.jsonWindows Server 上的文件中的适当值。有关使用Docker配置的更多信息daemon.json,请参阅daemon.json。

以下示例将日志驱动程序syslog设置为并设置syslog-address选项。

代码语言:javascript
复制
{
  "log-driver": "syslog",
  "log-opts": {
    "syslog-address": "udp://1.2.3.4:1111"
  }
}

重新启动Docker以使更改生效。

系统日志地址支持UDP和TCP.

您可以通过设置特定容器的记录驾驶员--log-driver标志docker createdocker run

代码语言:javascript
复制
docker run \
      -–log-driver syslog –-log-opt syslog-address=udp://1.2.3.4:1111 \
      alpine echo hello world

备选方案

支持以下日志记录选项作为syslog日志记录驱动程序的选项。可以daemon.json通过将它们作为键值对添加到log-optsJSON数组中将它们设置为默认值。它们也可以通过--log-opt <key>=<value>在启动容器时为每个选项添加一个标志来设置给定的容器。

选项

描述

示例值

系统日志地址

外部系统日志服务器的地址。URI说明符可能是tcp | udp | tcp + tls://主机:端口,unix://路径或unixgram://路径。如果传输是tcp,udp或tcp + tls,则默认端口是514。

--log-opt syslog-address = tcp + tls://192.168.1.3:514,--log-opt syslog-address = unix:///tmp/syslog.sock

系统日志 - 设施

要使用的系统日志工具。可以是任何有效的系统日志工具的编号或名称。请参阅syslog文档。

--log-opt syslog-facility = daemon

系统日志-TLS-CA证书

由CA签署的信任证书的绝对路径。如果地址协议不是tcp + tls,则忽略。

--log-opt syslog-tls-ca-cert = / etc / ca-certificates / custom / ca.pem

系统日志-TLS证书

TLS证书文件的绝对路径。如果地址协议不是tcp + tls,则忽略。

--log-opt syslog-tls-cert = / etc / ca-certificates / custom / cert.pem

系统日志-TLS键

TLS密钥文件的绝对路径。如果地址协议不是tcp + tls,则忽略。

--log-opt syslog -tls -key = / etc / ca-certificates / custom / key.pem

系统日志-TLS-跳过验证

如果设置为true,则连接到syslog守护程序时会跳过TLS验证。默认为false。如果地址协议不是tcp + tls,则忽略。

--log-opt syslog-tls-skip-verify = true

标签

系统日志消息中附加到APP-NAME的字符串。默认情况下,Docker使用容器ID的前12个字符来标记日志消息。请参阅日志标记选项文档以定制日志标记格式。

--log-opt标签=邮件程序

系统日志格式

要使用的系统日志消息格式。如果未指定,则使用本地UNIX系统日志格式,而不使用指定的主机名。指定rfc3164为RFC-3164兼容格式,rfc5424为RFC-5424兼容格式,或rfc5424micro为RFC-5424兼容格式,并带有微秒时间戳分辨率。

--log-opt syslog-format = rfc5424micro

标签

在启动Docker守护进程时适用。此守护程序将接受的与日志相关的标签的逗号分隔列表。用于高级日志标记选项。

--log-opt labels = production_status,地理位置

env

在启动Docker守护进程时适用。这个守护程序将接受的与日志相关的环境变量的逗号分隔列表。用于高级日志标记选项。

--log-opt env = os,客户

ENV正则表达式

在启动Docker守护进程时适用。与env类似且兼容。一个正则表达式来匹配与日志相关的环境变量。用于高级日志标记选项。

--log-opt env-regex = ^(os | customer)

扫码关注腾讯云开发者

领取腾讯云代金券