在Linux系统中,syslog是一个用于记录系统消息的守护进程。要设置过滤规则,您可以使用rsyslog(一个增强版的syslog)或者syslog-ng(另一个流行的syslog实现)。这里以rsyslog为例,介绍如何设置过滤规则:
/etc/rsyslog.conf
或/etc/rsyslog.d/
目录下。例如,使用文本编辑器打开/etc/rsyslog.conf
:sudo nano /etc/rsyslog.conf
例如,如果您只想记录来自本地系统的cron消息,可以添加以下规则:
if $programname == 'cron' then /var/log/cron.log & stop
这里,$programname
是一个内置变量,表示消息的程序名。==
用于比较字符串。then
表示满足条件时执行动作。/var/log/cron.log
是日志文件的路径。& stop
表示在处理完这条规则后停止进一步处理。
if $fromhost-ip == '192.168.1.100' and $syslogseverity-text == 'Failed password' then /var/log/failed_ssh_attempts.log & stop
这里,$fromhost-ip
表示消息发送者的IP地址,$syslogseverity-text
表示消息的严重性文本。and
用于连接多个条件。
保存配置文件并退出编辑器。
重启rsyslog服务以应用更改:
sudo systemctl restart rsyslog
现在,rsyslog将根据您设置的过滤规则记录日志。请注意,这些规则仅适用于rsyslog。如果您使用的是syslog-ng或其他syslog实现,语法可能略有不同。