rsyslog與journal日志架構


系統日志架構概述

在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日志的功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM