Linux學習高階篇(六)
阿新 • • 發佈:2019-01-13
1、日誌管理簡介
在CentOS 6.x中日誌服務已經由rsyslogd取代了原先的syslogd服務。rsyslogd日誌服務更加先進,功能更多。但是不論該服務的使用,還是日誌檔案的格式其實都是和syslogd服務相相容的,所以學習起來基本和syslogd服務一致。rsyslogd的新特點:
(1)基於TCP網路協議傳輸日誌資訊;
(2)更安全的網路傳輸方式;
(3)有日誌訊息的及時分析框架;
(4)後臺資料庫;
(5)配置檔案中可以寫簡單的邏輯判斷;
(6)與syslog配置檔案相相容。
檢視日誌服務是否啟動: [
chkconfig --list | grep rsyslog #檢視服務是否自啟動
常見日誌的作用
日誌檔案 | 說 明 |
/var/log/cron | 記錄了系統定時任務相關的日誌。 |
/var/log/cups/ | 記錄列印資訊的日誌 |
/var/log/dmesg | 記錄了系統在開機時核心自檢的資訊。也可以使用 |
/var/log/btmp | 記錄錯誤登入的日誌。這個檔案是二進位制檔案,不能 直接vi檢視,而要使用lastb命令檢視,命令如下: [[email protected] log]# lastb root tty1 Tue Jun 4 22:38 - 22:38 (00:00) #有人在6月4日22:38使用root使用者,在本地終端1登入錯誤 |
/var/log/lastl og |
記錄系統中所有使用者最後一次的登入時間的日誌。這 個檔案也是二進位制檔案,不能直接vi,而要使用lastlog |
/var/log/mailog | 記錄郵件資訊。 |
/var/log/message | 記錄系統重要資訊的日誌。這個日誌檔案中會記錄Linux系統的絕大 多數重要資訊,如果系統出現問題時,首先要檢查的就應該是這個 日誌檔案。 |
/var/log/secure | 記錄驗證和授權方面的資訊,只要涉及賬戶和密碼的程式都會記錄。 比如說系統的登入,ssh的登入,su切換使用者,sudo授權,甚至新增 使用者和修改使用者密碼都會記錄在這個日誌檔案中。 |
/var/log/wtmp | 永久記錄所有使用者的登入、登出資訊,同時記錄系統的啟動、重啟、 關機事件。同樣這個檔案也是一個二進位制檔案,不能直接vi,而需 要使用last命令來檢視。 |
/var/run/utmp | 記錄當前已經登入的使用者的資訊。這個檔案會隨著使用者的登入和注 銷而不斷變化,只記錄當前登入使用者的資訊。同樣這個檔案不能直 接vi,而要使用w,who,users等命令來查詢。 |
2、rsyslogd日誌服務
2.1日誌檔案的格式 基本日誌格式包含以下四列:(1)事件產生的時間;
(2)發生事件的伺服器的主機名;
(3)產生事件的服務名或程式名;
(4)事件的具體資訊。 2.2 /etc/rsyslog.conf配置檔案 authpriv.* /var/log/secure
#服務名稱[連線符號]日誌等級 日誌記錄位置
#認證相關服務.所有日誌等級 記錄在/var/log/secure日誌中
服務名稱
服務名稱 | 說 明 |
auth | 安全和認證相關訊息(不推薦使用authpriv替代) |
authpriv | 安全和認證相關訊息(私有的) |
cron | 系統定時任務cront和at產生的日誌 |
daemon | 和各個守護程序相關的日誌 |
ftp | ftp守護程序產生的日誌 |
kern | 核心產生的日誌(不是使用者程序產生的) |
local0-local7 | 為本地使用預留的服務 |
lpr | 列印產生的日誌 |
郵件收發資訊 | |
news | 與新聞伺服器相關的日誌 |
syslog | 有syslogd服務產生的日誌資訊(雖然服務名 稱已經改為rsyslogd,但是很多配置都還是沿 用了syslogd的,這裡並沒有修改服務名)。 |
user | 使用者等級類別的日誌資訊 |
uucp | uucp子系統的日誌資訊,uucp是早期linux系 統進行資料傳遞的協議,後來也常用在新聞 組服務中。 |
連線符號
連線符號可以識別為:
(1)“*”代表所有日誌等級,比如:“authpriv.*”代表authpriv認證資訊服務產生的日誌,所有的日誌等級都記錄
(2)“.”代表只要比後面的等級高的(包含該等級)日誌都記錄下來。比如:“cron.info”代表cron服務產生的日誌,只要日誌等級大於等於info級別,就記錄
(3)“.=”代表只記錄所需等級的日誌,其他等級的都不記錄。比如:“*.=emerg”代表人和日誌服務產生的日誌,只要等級是emerg等級就記錄。
(4)“.!”代表不等於,也就是除了該等級的日誌外,其他等級的日誌都記錄.
3、日誌輪替
3.1日誌檔案的命名規則 如果配置檔案中擁有“dateext”引數,那麼日誌會用日期來作為日誌檔案的字尾,例如“secure-20170605”。這樣的話日誌檔名不會重疊,所以也就不需要日誌檔案的改名,只需要儲存指定的日誌個數,刪除多餘的日誌檔案即可。如果配置檔案中沒有“dateext”引數,那麼日誌檔案就需要進行改名了。當第一次進行日誌輪替時,當前的“secure”日誌會自動改名為“secure.1”,然後新建“secure”日誌,用來儲存新的日誌。當第二次進行日誌輪替時,“secure.1”會自動改名為“secure.2”,當前的“secure”日誌會自動改名為“secure.1”,然後也會新建“secure”日誌,用來儲存新的日誌,以此類推。
3.2logrotate配置檔案
參 數 | 參 數 說 明 |
daily | 日誌的輪替週期是每天 |
weekly | 日誌的輪替週期是每週 |
monthly | 日誌的輪替週期是每月 |
rotate 數字 | 保留的日誌檔案的個數。0指沒有備份 |
compress | 日誌輪替時,舊的日誌進行壓縮 |
create mode owner group |
建立新日誌,同時指定新日誌的許可權與所有者和 所屬組。如create 0600 root utmp |
mail address | 當日志輪替時,輸出內容通過郵件傳送到指定的 郵件地址。如mail [email protected] |
missingok | 如果日誌不存在,則忽略該日誌的警告資訊 |
notifempty | 如果日誌為空檔案,則不進行日誌輪替 |
minsize 大小 | 日誌輪替的最小值。也就是日誌一定要達到這個 最小值才會輪替,否則就算時間達到也不輪替 |
size 大小 | 日誌只有大於指定大小才進行日誌輪替,而不是 按照時間輪替。如size 100k |
dateext | 使用日期作為日誌輪替檔案的字尾。如secure- 20170605 |
3.3logrotate命令
[[email protected] ~]# logrotate [選項] 配置檔名
選項:
如果此命令沒有選項,則會按照配置檔案中的條件進行日誌輪替
-v:顯示日誌輪替過程。加了-v選項,會顯示日誌的輪替的過程
-f: 強制進行日誌輪替。不管日誌輪替的條件是否已經符合,強制配置檔案中所有的日誌進行輪替
例如:將apache日誌加入輪替
[[email protected] ~]# vi /etc/logrotate.conf
/usr/local/apache2/logs/access_log { //加入成功的日誌
daily
create
rotate 30
}