在Debian系统中,syslog的配置文件位于/etc/rsyslog.conf(对于rsyslog)或/etc/syslog-ng/syslog-ng.conf(对于syslog-ng)。要定制输出格式,你需要编辑相应的配置文件。
以下是针对rsyslog和syslog-ng的定制输出格式的方法:
对于rsyslog:
- 打开配置文件:
sudo nano /etc/rsyslog.conf
- 在文件中找到
template部分,如果没有,请添加一个。例如,创建一个名为CustomFormat的模板:
$template CustomFormat,"%timegenerated% %hostname% %app-name% %procid% %msgid% %structed-data% %$!\n"
这里,我们定义了一个自定义格式,包括时间戳、主机名、应用程序名称、进程ID、消息ID、结构化数据等。你可以根据需要修改这个格式。
- 在文件中找到你想要应用自定义格式的规则。例如,将所有来自
authpriv设施的消息发送到本地日志文件:
if $facility-text == 'authpriv' then /var/log/auth.log
& stop
- 在这条规则之前,添加一行以应用自定义格式:
:msg, contains, "authpriv" -?CustomFormat
这将把自定义格式应用于所有来自authpriv设施的消息。
-
保存并关闭文件。
-
重启rsyslog服务以应用更改:
sudo systemctl restart rsyslog
对于syslog-ng:
- 打开配置文件:
sudo nano /etc/syslog-ng/syslog-ng.conf
- 在文件中找到
log部分,如果没有,请添加一个。例如,创建一个名为CustomFormat的模板:
template t_CustomFormat {
template("${ISODATE} ${HOST} ${PROGRAM} ${PID} ${MSGID} ${STRUCTURED-DATA}\n");
};
这里,我们定义了一个自定义格式,包括时间戳、主机名、应用程序名称、进程ID、消息ID、结构化数据等。你可以根据需要修改这个格式。
- 在文件中找到你想要应用自定义格式的规则。例如,将所有来自
authpriv设施的消息发送到本地日志文件:
filter f_authpriv { facility(authpriv); };
destination d_authpriv { file("/var/log/auth.log"); };
log { source(s_src); filter(f_authpriv); destination(d_authpriv); };
- 在这条规则之前,添加一行以应用自定义格式:
rewrite r_CustomFormat { template(t_CustomFormat); };
这将把自定义格式应用于所有匹配的日志消息。
-
保存并关闭文件。
-
重启syslog-ng服务以应用更改:
sudo systemctl restart syslog-ng
现在,你的Debian系统应该使用自定义的syslog输出格式。
以上就是关于“Debian syslog如何定制输出格式”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm