目錄
日誌的作用、分類、管理、輪轉和級別
rsyslog服務
journal守護程序
/var/log下相關的日誌檔案
日誌伺服器的建立
日誌的作用:
日誌檔案的分類:
日誌管理策略
日誌也並不是完全可靠的,高階的黑客在入侵系統後,會刪除相應的日誌記錄,因此需要做好日誌的管理工作:
日誌的輪轉和切割
隨著時間的推移,日誌檔案肯定會越來越大,而且這個趨勢是呈線性增長。所以,需要對之前的日誌檔案做一些處理。日誌輪轉和切割指的是實現對當前日誌歸檔,開始新的日誌,刪除早期的日誌。linux中,日誌輪轉和切割這個服務是由 logrotate 提供的。logrotate這個程式的目錄:/etc/cron.daily/logrotate 。logrotate 是作為 corn 的乙個每日任務,週期性執行的。它具備自動輪轉、壓縮、搬遷 和 郵件通知到日誌系統的多項功能。每乙個日誌檔案都可以按照每天、每週、每月週期性處理,或是增長到多大而觸發處理。
日誌訊息的級別
日誌訊息的級別
level等級
狀況0 emerg(緊急)
會導致主機系統不可用的情況
1 alert (警告)
必須馬上採取措施解決的情況
2 crit (嚴重)
比較嚴重的情況
3 err (錯誤)
執行出現錯誤
4 warning (提醒)
可能會影響系統功能的事件
5 notice (注意)
不會影響系統但值得注意
6 info (注意)
一般資訊
7 debug(除錯)
程式或系統除錯資訊等
rsyslog服務是由 rsyslogd 程式提供的。rsyslogd 程式負責收集和管理與系統有關的日誌
系統中的程式,在收集日誌的時候,都是呼叫syslog() 函式,這個函式的作用是傳送日誌訊息給系統的 logger,然後由logger 根據 rsyslogd 程式的配置檔案 /etc/rsyslog.conf 中的規則,將日誌訊息按照不同的格式寫入不同的檔案中。
syslog() 函式內部有不同的裝置,不同的程式有可能對應相同的裝置,也有可能對應不同的裝置。通過 man 3 syslog 可檢視syslog中的不同裝置和不同預警級別。程式所對應的裝置大部分不可修改,都已經編譯好。但是有的程式的配置檔案中允許修改裝置。比如sshd程式,在其配置檔案 /etc/ssh/sshd_config 中可修改裝置。local0 ~ local6 是自定義裝置。不建議修改程式所對應的預設裝置。程式所對應的裝置這個不是我們所關心的,是開發者已經配置好的。
rsyslogd 中有不同的規則,指定了不同的裝置的不同預警級別對應的不同檔案。logger 就是根據 rsyslogd 中的規則進行日誌寫入。rsyslogd 中的規則我們自己可以定義修改增加。所以如果我們關閉 rsyslogd 程式的話,logger就不知道該將日誌檔案寫入**,所以就會產生錯誤。
一些程式所對應的裝置
程式 program
裝置 facility
/usr/sbin/sshd
log_authpriv
/usr/bin/su
log_authpriv
/usr/bin/login
log_authpriv
/usr/sbin/vsftpd
log_ftp
/usr/bin/at
log_cron
/usr/sbin/crond
log_cron
/usr/sbin/portfix
log_mail
rsyslogd的配置檔案 /etc/rsyslog.conf 中的一些規則
裝置 facility 和 級別
對應的檔案
*.info; mail.none; authpriv.none; cron.none (任何裝置的這些級別)
/var/log/messages
authpriv.* (authpriv裝置的所有級別)
/var/log/secure
mail.* (mail裝置的所有級別)
-/var/log/maillog
cron.* (cron裝置的所有級別)
/var/log/cron
*.emery (所有裝置的emery級別)
:omusrmsg:* (列印到終端)
local0.* ~ local6.*
自己可定義檔案
但是像我們很多自己的應用,不是由 rsyslogd程序收集和管理日誌,因為他們不呼叫 syslog()函式。比如apache、nginx、mysql、httpd 都有自己的日誌程序負責收集和管理日誌。
日誌檔案預設都是儲存在 /var/log/ 目錄下。
常見的日誌檔案目錄 名稱
路徑核心、公共訊息日誌、系統主日誌檔案
/var/log/messages
使用者登入日誌
/var/log/secure
計畫任務日誌
/var/log/cron
跟yum安裝有關
/var/log/yum.log
系統引導日誌
/var/log/dmesg
郵件系統日誌,跟postfix有關
/var/log/maillog
當前登入的使用者,二進位制檔案,可用 last 檢視
/var/log/wtmp
最近登入的使用者 , 二進位制檔案 ,可用 lastb 檢視
/var/log/btmp
所有使用者的登入情況,二進位制檔案,可用 lastlog 檢視
/var/log/lastlog
這個是 /var/log/secure 裡的登入日誌 ,第一行說明root使用者登入xie登入成功。第二三行說明xie使用者想登入bob使用者然後認證失敗了,也就是密碼錯誤。第四行說明xie使用者退出登入了。
grep 'fail' /var/log/secure | awk '' | sort |uniq -c | sort -k1 -n -r | head -5 檢視登入失敗的那一行,然後列印出第11列(從後數), 然後排序,然後去除重複,然後按第一列排序 ,然後檢視前五個
在rhel7中,syslog 訊息除了由 rsyslog 服務處理外,還新加了乙個journal 監聽,日誌檔案在 /run/log/journal 目錄中。
systemd-journald 守護程序提供了乙個改進的日誌管理服務。在使用其它工具時,日誌往往被分散在整套系統當中,由不同的守護程序及程序負責處理,這意味著我們很難跨越多種應用程式對其內容進行解讀。而 systemd 嘗試提供一套集中化管理方案,從而統一打理全部核心及使用者級程序的日誌資訊,這也就是我們journal。這套系統能夠收集並管理日誌內容,它從核心中收集訊息:啟動過程的早期階段、標準輸出和守護程序的錯誤。當它們啟動和執行時,以及 syslog,它將這些訊息寫入到結構化的事件日誌。syslog訊息也由 systemd-journald **到 rsyslog 服務,然後按型別(或裝置)和優先順序對訊息進行排序,並將他們寫入到 /var/log/ 日誌目錄中的持久檔案中。
但是,我們的 /run/log/journal 目錄下的日誌資訊並不能直接檢視,該檔案是二進位制檔案,需要借助命令檢視
journal日誌的檢視
文章:建立日誌伺服器
Linux作業系統管理 日誌管理和分析
水平集 日誌管理 這部分包括一些開源技術,這些技術基本上是針對基於主機的日誌記載,日誌檔案轉儲和日誌檔案分析。很多任務具都是免費的 開源軟體,在很多主要的linux系統中都有整合,包括主流的rethat和novell。logrotate logrotate是在大量linux系統中非常流行的應用程式工...
Linux系統日誌管理 同步 採集 分析
首先,了解linux系統日誌的五種分類 var log messages 系統服務及日誌,包括服務的資訊,報錯等等 var log secure 系統認證資訊日誌 var log maillog 系統郵件服務資訊 var log cron 系統定時任務資訊 var log boot.log 系統啟動...
linux日誌分析
日誌檔案過大時,選取特定時間段日誌輸出 sed n 2017 09 19t15 43 2017 09 19t16 03 p log performancetest.log 將 log中2017 09 19t15 43 2017 09 19t16 03時間段的日誌輸出到performancetest....