在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實現,語法可能略有不同。