log:日誌,記錄
rescue:救援
secure:安全
average:平均
stamp:標籤
count:計數
startup:啓動
mismatch:不匹配
environment:環境
maintenance:維護
日誌分析及管理
不同的日誌文件記載了不同類型的信息,例如linux內核信息、用戶登錄記錄、程序錯誤等。
主要日誌文件
內核及系統日誌:這種日誌數據由系統服務syslog統一管理,根據其主配置文件“/etc/syslog.conf”中的設置決定將內核消息及各種系統程序消息記錄到什麼位置。系統中有相當一部分程序會把自己的日誌文件交由syslog管理,因而這些程序使用的日誌記錄也具有相似的格式。
用戶日誌:這種日誌數據用於記錄linux系統用戶登錄及退出系統的相關信息,包括用戶名、登錄的終端、登錄時間、來源主機、正在使用的進程操作等。
程序日誌:有些應用程序會選擇由自己來獨立管理一份日誌文件(而不是交給syslog服務管理),用於記錄本程序運行過程中的各種事件信息。由於這種程序只負責管理自己的日誌文件,因此不同程序所使用的日誌記錄格式可能會存在較大差異。
linux系統本身和大部分服務器程序的日誌文件默認情況下都放置在目錄“/var/log/”中。一部分程序共用一個日誌文件,一部分程序使用單個日誌文件,而有些大型服務器程序由於日誌文件不止一個,所以會在“/var/log”目錄中建立相應的子目錄來存放日誌文件,這樣既保證了日誌文件目錄的結果清晰,又可以快速地定位日誌文件。有相當一部分日誌文件只有root用戶纔有權限讀取,這保證了相關日誌信息的安全性。
常見的日誌文件。
/var/log/messages:記錄linux內核消息及各種應用程序的公共日誌信息,包括啓動、IO錯誤、網絡錯誤、程序故障等。對於未使用獨立日誌文件的應用程序或服務,一般都可以從該日誌文件中獲得相關的時間記錄信息。
/var/log/cron:記錄crond計劃任務產生的事件信息。
/var/log/dmesg:記錄linux系統在引導過程中的各種事件信息。
/var/log/maillog:記錄進入或發生系統的電子郵件活動。
/var/log/lastlog:最近幾次成功登錄事件和最後一次不成功登錄事件。
/var/log/rpmpkgs:記錄系統中安裝的各rpm 包列表信息。
/var/log/secure:記錄用戶登錄認證過程中的事件信息。
/var/log/wtmp:記錄當前登錄的每個用戶的詳細信息。
日誌文件分析
介紹三類日誌文件的基本格式和分析方法
使用tail 、more、less、cat等文本處理工具就可以查看日誌內容。對於二進制格式的日誌文件(如用戶日誌),需要使用相應的查詢命令。
1、內核及系統日誌
內核及系統日誌功能主要由默認安裝的sysklogd-1.4.1-39.2軟件包提供,該軟件包安裝了klogd、syslogd兩個程序,並通過syslog服務進行控制,分別用於記錄系統內核的消息和各種應用程序的消息。syslog服務所使用的配置文件爲“/etc/syslog.conf”。
通常情況下,內核及大多數系統消息都被記錄到公共日誌文件“/var/log/messages”中,而其他一些程序消息被記錄到不同的文件中。日誌消息還能夠記錄到特定的存儲設備中,或者直接向用戶發送。
從配置文件“/etc/syslog.conf”中可以看到,受syslogd服務管理的日誌文件都是linux系統最主要的日誌文件,它們記錄了linux系統中內核、用戶認證、郵件、計劃任務等最基本的系統消息。在linux內核中,根據日誌消息的重要程度不同,將其分爲不同的優先級別(數字級別越小,優先級別越高,消息越重要)。
0 EMERG (緊急):會導致主機系統不可用的情況。
1 ALERT (警告):必須馬上採取措施解決的問題。
2 CRIT (嚴重):比較嚴重的情況。
3 ERR (錯誤):運行出現錯誤。
4 WARNING (提醒):可能影響系統功能,需要提醒用戶的重要事件。
5 NOTICE (注意):不會影響正常功能,但是需要注意的事件。
6 INFO (信息):一般信息。
7 DEBUG (調試):程序或系統調試信息等。
2、用戶日誌
在wtmp、utmp、lastlog等日誌文件中,保存了系統用戶登錄、退出等相關事件的事件消息。這些文件都是二進制的數據文件,不能直接使用tail、less等文本查看工具進行瀏覽,需要使用who、w、users、last和ac等用戶查詢命令來獲取日誌信息。
1)
who命令用於查詢utmp文件並報告當前登錄的每個用戶信息。使用該命令,系統管理員可以查看當前系統存在哪些不合法用戶,從而對其進行審計和處理。who的默認輸出包括用戶名、終端類型、登錄日期及遠程主機。
2)
w命令用於查詢utmp文件並顯示當前系統中的每個用戶及其所運行的進程信息。
3)
users命令用單獨的一行打印出當前登錄的用戶,每個顯示的用戶名對應一個登錄會話。如果一個用戶有不止一個登錄會話,那他的用戶名將顯示與其相同的次數。
4)
last命令用於查詢wtmp文件,顯示出自從該文件被創建以來登錄過的所有用戶記錄,最近登錄的用戶記錄將顯示在最前面。
last | head -5 (查看系統中最近的五次用戶登錄記錄)
5)
ac命令將查詢wtmp文件中的用戶登錄和退出情況,報告用戶連接的總時間(小時)。使用用戶名作爲參數,再結合“-d”選項可以按每天進行統計。未指定用戶名時,可以使用“-p”選項進行分別統計。
ac -d teacher
ac -p
3、程序日誌
在linux系統中,有相當一部分應用程序並沒有使用syslog服務來管理日誌,而是由程序自己維護日誌記錄。 如,httpd網站服務程序使用兩個日誌文件access_log 和 error_log,一般存放在“/var/log/httpd”目錄中,分別記錄客戶訪問事件、錯誤事件;而FTP服務程序可以將與文件上傳、下載事件相關的消息記錄在xferlog文件中。
總的來說,作爲一名合格的系統管理人員,應該提高警惕,隨時注意各種可疑狀況,定期並隨機地檢查各種系統日誌文件,包括一般信息日誌、網絡連接日誌、文件傳輸日誌以及用戶登錄日誌記錄等。在檢查這些日誌時,要注意是否有不合常理的時間或操作記錄。
用戶在非常規的時間登錄,或者用戶登錄系統的IP地址和以往的不一樣。
用戶登錄失敗的日誌記錄,尤其是那些一再連續嘗試進入失敗的日誌記錄。
非法使用或不正當使用超級用戶權限。
無故或者非法重新啓動各項網絡服務的記錄。
不正常的日誌記錄,比如日誌的殘缺不全,或者是諸如wtmp這樣的日誌文件無故地缺少了中間的記錄文件。