(1)日志基礎
1)簡介
rsyslog:記錄大部分與系統操作有關,例如安全,認證sshd,su,計划任務at,cron
rsyslog日志可以存在本地,也可以存放在遠程服務器
2)常見的日志文件
/var/log/messages //系統主日志文件
/var/log/secure //認證丶安全
/var/log/maillog //跟郵件postfix有關
/var/log/cron //crond,at進程產生的日志
/var/log/dmesg //和系統啟動有關
/var/log/audit/audit.log //系統審計日志
/var/log/yum.log //yum日志
/var/log/xferlog //和訪問FTP服務器有關
w //當前登錄的用戶 /var/log/wtmp
last //最近登錄的用戶 /var/log/btmp
lastlog //所有用戶的登錄情況 /var/log/lastlog
3)例
統計登錄失敗的top5 ip地址
#grep "failure" /var/log/secure | awk -F'[ =]+' '{print $18}' | grep -v user | sort | uniq -c | sort -k1 -rn | head -5
統計登錄成功的top5 ip地址
#grep "Accept" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -k1 -rn | head -5
(2)rsyslog子系統
1)服務和配置文件
systemctl status rsyslog
/etc/logrotate.d/syslog //日志切割相關
/etc/rsyslog.conf //rsyslogd的主配置文件
2)主配置文件:/etc/rsyslog.conf
在主配置文件下定義了一套規則: 告訴rsyslogd進程哪個設備(facility),關於哪個級別的信息,以及如何處理
authpriv.* /var/log/secure
設備.日志級別 日志文件
#### RULES ####
authpriv.* /var/log/secure //設備authpriv的所有級別都輸出到/var/log/secure文件中
mail.* -/var/log/maillog //設備mail的所有級別都延遲輸出到/var/log/maillog文件中
cron.* /var/log/cron
*.emerg :omusrmsg:* //所有設備的緊急級別日志都輸出到屏幕上
local7.* /var/log/boot.log
local4.* @192.168.1.253 //UDP //local4設備所有級別日志使用udp協議輸出到192.168.1.253這台主機
local4.* @@192.168.1.253 //TCP
local設備是系統保留的設備
級別 :遇到何種情況才會記錄日志
emerg //緊急,致命,服務無法繼續運行,如配置文件丟失
alert //報警,需要立即處理,如磁盤使用率95%
crit //致命行為
err //錯誤行為
warning //警告信息
notice //普通
info //標准信息
debug //調試信息,拍錯所需
說明:例如sshd程序的配置文件(/etc/ssh/sshd_config)中定義SyslogFacility AUTHPRIV;表示sshd程序使用rsyslog程序中的AUTHPRIV這個設備,表示sshd的日志都會輸出到AUTHPRIV這個設備,同時在rsyslog的配置文件上(/etc/rsyslog.conf)中定義了一個規則(authpriv.* /var/log/secure),這個規則表示設備AUTHPRIV這個設備的所有級別日志都會輸出到/var/log/secure上
3)例:改變應用程序sshd的日志設備為local5,並定義local5設備日志記錄到/var/log/sshd.log文件中
#vim /etc/ssh/sshd_config //修改sshd使用rsyslog的設備為LOCAL5
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL5
#systemctl restart sshd
#vim /etc/rsyslog.conf //修改rsyslog配置文件定義設備local5的所有級別日志輸出到/var/log/sshd.log中
local5.* /var/log/sshd.log
#systemctl restart rsyslog
4)命令logger
logger "pppppp" //日志默認輸出到/var/log/messages文件中
logger -p local5.info "pppp" //-p指定設備名和日志級別,日志輸出到local5這個設備定義的輸出文件中
logger -p local5.emerg "warnning" //日志級別為緊急emerg,默認情況都會打印到屏幕上,
5)日志發送到遠程服務器:192.168.1.40的local5設備的所有級別日志都發送到192.168.1.253上;
#vim /etc/rsyslog.conf
local5.* @192.168.1.253 //定義local5設備的所有級別日志發送到192.168.1.253這台主機
#systemctl restart rsyslog
#tcpdump -i eth0 -nn port 514 //在192.168.1.253主機上進行抓包驗證
#vim /etc/rsyslog.conf //修改rsyslog主配置文件,定義設備local5的所有級別日志都輸出到/var/log/test.log文件中
local5.* /var/log/test.log
#systemctl restart rsyslog
測試命令:logger -p local5.info "pppp" //在40主機上使用logger進程產生設備local5的info級別日志