在Linux系统中,syslog是一个用于记录系统消息的守护进程。要设置日志过滤规则,您可以使用rsyslog或syslog-ng这两个常见的syslog实现。下面是针对这两个实现的日志过滤规则设置方法:
编辑rsyslog配置文件,通常位于/etc/rsyslog.conf
或/etc/rsyslog.d/
目录下。使用文本编辑器打开配置文件,例如:
sudo nano /etc/rsyslog.conf
在配置文件中,您可以添加过滤规则。例如,如果您只想记录来自特定IP地址的日志,可以使用以下规则:
if $fromhost-ip == '192.168.1.100' then /var/log/ip_192_168_1_100.log
& stop
这个规则表示,如果日志来自IP地址192.168.1.100,则将其记录到/var/log/ip_192_168_1_100.log
文件中,并停止进一步处理该日志。
您还可以根据其他属性设置过滤规则,例如程序名、设施等。以下是一个更复杂的示例:
if $programname == 'nginx' and $syslogseverity-text == 'crit' then /var/log/nginx_crit.log
& stop
这个规则表示,如果日志来自名为nginx的程序,并且严重性级别为crit,则将其记录到/var/log/nginx_crit.log
文件中,并停止进一步处理该日志。
保存并关闭配置文件,然后重启rsyslog服务以应用更改:
sudo systemctl restart rsyslog
编辑syslog-ng配置文件,通常位于/etc/syslog-ng/syslog-ng.conf
。使用文本编辑器打开配置文件,例如:
sudo nano /etc/syslog-ng/syslog-ng.conf
在配置文件中,您可以添加过滤规则。例如,如果您只想记录来自特定IP地址的日志,可以使用以下规则:
filter f_ip { ip(192.168.1.100); };
destination d_ip { file("/var/log/ip_192_168_1_100.log"); };
log { source(s_src); filter(f_ip); destination(d_ip); };
这个规则表示,如果日志来自IP地址192.168.1.100,则将其记录到/var/log/ip_192_168_1_100.log
文件中。
您还可以根据其他属性设置过滤规则,例如程序名、设施等。以下是一个更复杂的示例:
filter f_nginx_crit { program("nginx") and level(crit); };
destination d_nginx_crit { file("/var/log/nginx_crit.log"); };
log { source(s_src); filter(f_nginx_crit); destination(d_nginx_crit); };
这个规则表示,如果日志来自名为nginx的程序,并且严重性级别为crit,则将其记录到/var/log/nginx_crit.log
文件中。
保存并关闭配置文件,然后重启syslog-ng服务以应用更改:
sudo systemctl restart syslog-ng
这些示例仅用于演示如何设置日志过滤规则。您可以根据自己的需求调整规则。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: linux怎么查看mysql数据库