©
本文档使用
php.cn手册 发布
syslog
日志记录驱动程序将日志路由到syslog
服务器。syslog
协议使用原始字符串作为日志消息并支持一组有限的元数据。系统日志消息必须以特定方式格式化才能生效。从有效的消息中,接收者可以提取以下信息:
优先级:日志记录级别,如debug
,warning
,error
,info
。
时间戳:事件发生的时间。
主机名:事件发生的位置。
设施:哪个子系统记录了消息,例如mail
或kernel
。
进程名称和进程ID(PID):生成日志的进程的名称和ID。
格式在RFC 5424中定义,Docker的syslog驱动程序按以下方式实现ABNF引用:
TIMESTAMP SP HOSTNAME SP APP-NAME SP PROCID SP MSGID + + + | + | | | | | | | | | | +------------+ +----+ | +----+ +---------+ v v v v v2017-04-01T17:41:05.616647+08:00 a.vm {taskid:aa,version:} 1787791 {taskid:aa,version:}
要将syslog
驱动程序用作默认日志记录驱动程序,请将该键log-driver
和log-opt
键设置daemon.json
为位于/etc/docker/
Linux主机或C:\ProgramData\docker\config\daemon.json
Windows Server 上的文件中的适当值。有关使用Docker配置的更多信息daemon.json
,请参阅daemon.json。
以下示例将日志驱动程序syslog
设置为并设置syslog-address
选项。
{ "log-driver": "syslog", "log-opts": { "syslog-address": "udp://1.2.3.4:1111" }}
重新启动Docker以使更改生效。
注系统日志地址支持UDP和TCP.
您可以通过设置特定容器的记录驾驶员--log-driver
标志docker create
或docker run
:
docker run \ -–log-driver syslog –-log-opt syslog-address=udp://1.2.3.4:1111 \ alpine echo hello world
支持以下日志记录选项作为syslog
日志记录驱动程序的选项。可以daemon.json
通过将它们作为键值对添加到log-opts
JSON数组中将它们设置为默认值。它们也可以通过--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) |