温馨提示×

Linux syslog如何设置过滤规则

小樊
49
2025-07-15 22:44:50
栏目: 智能运维

在Linux系统中,syslog是一个用于记录系统消息的守护进程。要设置过滤规则,您可以使用rsyslog(一个增强版的syslog)或者syslog-ng(另一个流行的syslog实现)。这里以rsyslog为例,介绍如何设置过滤规则:

  1. 打开rsyslog配置文件。通常位于/etc/rsyslog.conf/etc/rsyslog.d/目录下。例如,使用文本编辑器打开/etc/rsyslog.conf
sudo nano /etc/rsyslog.conf 
  1. 在配置文件中,您可以添加过滤规则。rsyslog使用选择器(selector)和动作(action)来定义规则。选择器用于匹配消息,动作定义了匹配消息的处理方式。

例如,如果您只想记录来自本地系统的cron消息,可以添加以下规则:

if $programname == 'cron' then /var/log/cron.log & stop 

这里,$programname是一个内置变量,表示消息的程序名。==用于比较字符串。then表示满足条件时执行动作。/var/log/cron.log是日志文件的路径。& stop表示在处理完这条规则后停止进一步处理。

  1. 如果您想使用更复杂的过滤条件,可以使用rsyslog的属性(attribute)和条件表达式。例如,如果您只想记录来自特定IP地址的SSH登录失败消息,可以添加以下规则:
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用于连接多个条件。

  1. 保存配置文件并退出编辑器。

  2. 重启rsyslog服务以应用更改:

sudo systemctl restart rsyslog 

现在,rsyslog将根据您设置的过滤规则记录日志。请注意,这些规则仅适用于rsyslog。如果您使用的是syslog-ng或其他syslog实现,语法可能略有不同。

0