系統日志架構概述
在centos7系統中有兩個日志服務,分別是傳統的rsyslog和新添加的systemd-journal
systemd-journal是一個改進型的日志管理服務,可以收集來自內核、系統早期的啟動階段的日志、系統守護進程在啟動和運行中的標准
輸出和錯誤信息、還有syslog的日志。
該日志服務僅僅把日志集中保存在單一結構化的日志文件/run/log默認情況下並不會持久化保存日志、每次重啟后,之前的日志都會丟失
。另外,一些rsyslog無法收集的日志也會被jounral記錄到
rsyslog作為傳統的系統日志服務,把所有收集到的日志都記錄到/var/log目錄下的各個日志文件中。常見的日志文件如下:
系統日志 /var/log/message //絕大多數的系統日志都記錄到文件 /var/log/secure //所有跟安全和認知授權等日志都會記錄到此文件中 ***** /var/log/maillog //郵件服務日志 /var/log/cron //計划任務日志 ***** /var/log/boot.log //系統啟動相關的日志 /var/log/demsg //內核緩沖信息,系統啟動時,硬件相關信息 /var/log/audit/audit.log //系統審計相關的日志 程序日志 /var/log/yum.log //yum相關的日志 *** /var/log/xferlog //ftp日志 /var/log/httpd/access_log //httpd訪問日志 ***** /var/log/httpd/error_log //httpd錯誤日志 ***** /var/log/mysql.log //mysql日志 ***** ... 特殊日志,二進制文件,不能直接查看 /var/log/wtmp //登錄用戶信息,使用w命令 ***** /var/log/btmp //最近登錄用戶信息,使用last命令 *** /var/log/lastlog //所有用戶登錄信息,使用lastlog命令
案例1:統計遠程登錄成功的IP地址TOP10 [root@xiaoming log]# grep 'Accepted' /var/log/secure | awk '{print $11}' | sort | uniq -c | head 5 10.0.1.1 案例2:統計遠程登錄失敗的用戶排名 [root@xiaoming log]# grep 'Failed' /var/log/secure | awk '{print $9}' | sort | uniq -c | sort -rn 4 root 1 www 采集->排序—>去重->排序
rsyslog日志審查
rsyslog主配置文件是rsyslog.conf
syslog日志類型
syslog日志的級別: LOG_EMERG //緊急,致命信息,服務無法繼續運行,內核奔潰等 LOG_ALERT //報警,需要立即處理,磁盤空間使用95%等 LOG_CRIT //致命行為 LOG_ERR //錯誤行為 LOG_WARNING //警告信息 LOG_NOTIC //普通信息 LOG_INFO //標准信息 LOG_DEBUG //調試信息,排錯所需,一般不建議使用 看懂簡單的日志設定規則,分析日志字段
手工發送日志logger [root@xiaoming log]# logger -p authpriv.info -t "test" "ERR" [root@xiaoming log]# tail -1l /var/log/secure Jan 4 10:28:37 xiaoming test: ERR
journal日志審查
這是systemd自帶的日志服務工具所有日志記錄到/run/log文件中,必須使用如下命令才可打開
# journalctl 查看所有日志 # journalctl -n 5 查看最后5條日志 # journalctl -p err 查看err類型的日志 # journalctl -f 不斷輸出最后10條日志 # journalctl --since today 查看今天的日志 # journalctl --since "2020-02-03 08:00:00" --until "2020-02-04 09:00:00" # journalctl -o verbose 查看日志詳細信息 # journalctl _SYSTEMD_UNIT=sshd.service
日志輪詢logrotate
一個項目一般由多個組件協作實現,各組件會生成不同的日志。為控制日志,組件一般對自己產生的日志會有一定的設置,這些日志配置通常是寫死的
,常見控制日志信息的工具有Log43和SLF43。因為磁盤容量有限,在多個組件共同作用下,可能會出現日志未到規定時間刪除,而磁盤大小被日
志撐滿,不能再寫入的情況。
logrotate一定程度上可以簡化對會生成大量日志文件的系統的管理。logrotate可以實現自動輪替、刪除、壓縮和mail日志的功能。