分析日誌文件
一、日誌文件的做用apache
日誌文件是用於記錄Linux系統中各類運行信息的文件,至關於Linux主機的「日記」。不一樣的日誌文件記載了不一樣類型的信息,如Linux內核消息、用戶登陸事件、程序錯誤等。緩存
日誌文件對於診斷和解決系統中的問題頗有幫助,由於在Linux系統中運行的程序一般會把系統消息和錯誤消息寫入相應的日誌文件,這樣系統一旦出現問題就會「有據可查」。此外,當主機遭受***時,日誌文件還能夠幫助尋找***者留下的痕跡。安全
二、日誌文件的分類服務器
(1)內核及系統日誌:網絡
在6以上的系統版本中,這種日誌數據由系統服務rsyslog同一管理,根據其主配置文件/etc/rsyslog.conf中的設置決定將內核消息及各類系統程序消息記錄到什麼位置。app
/etc/rsyslog.conf配置文件中,常見的配置格式及其含義:編輯器
「.」:比後面等級要高(包含該等級)的都記錄。例如:「*.info」ide
「.=」:只記錄該等級。例如:「.=debug」性能
「!」:除了該等級都記錄。例如:「!info」網站
「-」:當有記錄信息須要記錄時,先存到緩存中,到必定大小時一次性寫入,以減 少對磁盤讀寫性能的佔用。例如:「-/var/log/maillog」
(2)用戶日誌:
用於記錄Linux系統用戶登陸及退出系統的相關信息,包括用戶名、登陸的終端、登陸時間、來源主機、正在使用的進程操做等。
(3)程序日誌:
有些應用程序會選擇由本身獨立管理一份日誌文件,而不是交給rsyslog服務管理,用於記錄本程序運行過程當中的各類事件信息。
三、日誌文件的位置
Linux系統自己和大部分服務器程序的日誌文件默認放在/var/log/下。一部分程序共用一個日誌文件,一部分程序使用單個日誌文件。而有些大型服務器程序日誌因爲日誌文件不止一個,因此會在/var/log/目錄中創建相應的子目錄來存放日誌文件,這樣既保證了日誌文件目錄的結構清晰,又能夠快速定位日誌文件。
有至關一部分日誌只有root用戶纔有權限讀取,這保證了相關日誌信息的安全性。
四、常見的日誌文件及查看方式
日誌文件
存放內容
查看命令
/var/log/messages
內核消息及各類應用程序的公共日誌信息,包括啓動、I/O錯誤、網絡錯誤、程序故障等
cat等
/var/log/cron
crond週期性計劃任務產生的時間信息
cat等
/var/log/dmesg
引導過程當中的各類時間信息
cat等
/var/log/maillog
進入或發出系統的電子郵件活動
cat等
/var/log/lastlog
每一個用戶最近的登陸事件
last、lastlog
/var/log/secure
用戶認證相關的安全時間信息
cat等
/var/log/wtmp
每一個用戶登陸、註銷及系統啓動和停機事件
users、who、w
/var/log/btmp
失敗的、錯誤的登陸嘗試及驗證事件
lastb
五、日誌消息的級別
在Linux內核中,根據日誌消息的重要程度不一樣,將其分爲不一樣的有限級別(數字等級越小,優先級越高,消息越重要)
級別
英文表示及翻譯
意義
EMERG(緊急)
會致使主機系統不可用的狀況
1
ALERT(警告)
必須立刻採起措施解決的問題
2
CRIT(嚴重)
比較嚴重的狀況
3
ERR(錯誤)
運行出現錯誤
4
WARNING(提醒)
可能影響系統功能,須要提醒用戶的重要事件
5
NOTICE(注意)
不會影響正常功能,可是須要注意的事件
6
INFO(信息)
通常信息
7
DEBUG(調試)
程序或系統調試信息等
8
none(沒有)
不作記錄
六、日誌文件分析
(1)內核及大多數系統消息
1>存放位置:/var/log/message
2>內容解釋:
·時間標籤:消息發出的日期和時間
·主機名:生成消息的計算機的名稱
·子系統名稱:發出消息的應用程序的名稱
·消息:消息的具體內容
3>示例:
(2)用戶日誌
1>存放位置:/var/log/wtmp、/var/log/btmp、/var/log/lastlog
2>查詢命令:users、who、w、last、lastlog、lastb等
·users命令:只是簡單的輸出當前登陸的用戶名,每個顯示的用戶名對應一個會話。
·who命令:用於報告當前登陸到系統中的每一個用戶的信息。默認輸出包括用戶名、終端 類型、登陸日期及遠程主機
·w命令:用於顯示當前操做系統中的每一個用戶及其遠程所運行的進程信息
·last命令:用於查詢成功登陸到系統的用戶記錄,最近的登陸狀況在最前面。
-a:把從何處登陸系統的主機名稱或IP地址,顯示在最後一行
-d:將IP地址轉換成主機名稱
-f [記錄文件]:指定記錄文件
-R:不顯示登入系統的主機名稱或IP地址
-x:顯示系統關閉,從新開機,以及執行等級的改變等
-n:n表明數字,表示最近n次登陸的記錄
·lastlog命令:用於顯示系統中全部用戶最近一次登陸信息
·lastb命令:用於顯示用戶錯誤的登陸列表,此指令能夠發現系統的登陸異常
(3)程序日誌
1>存放位置:不固定,通常在/var/log/下的子目錄中
2>示例:查看經過源碼包安裝的apache網站服務的日誌
七、日誌文件分析注意事項:
總的來講,做爲一名合格的系統管理人員,應該提升警戒,隨時注意各類可疑的情況,按期並隨機的檢查各類系統日誌文件,包括通常信息日誌、網絡鏈接日誌、文件傳輸日誌及用戶登陸日誌記錄等。在檢查這些日誌時,要注意是否有不合常理的時間或操做記錄。例如出現如下一些現象就應該多加註意:
·用戶在很是規的時間登陸,或者用戶登陸系統的IP地址和以往不同的
·用戶登陸失敗的日誌記錄,尤爲是那些一再連續嘗試進入失敗的日誌記錄
·非法使用或不正當使用超級用戶權限
·無端或者非法從新啓動各項網絡服務的記錄
·不正常的日誌記錄,如日誌殘缺不全,或者是諸如wtmp這樣的日誌文件無端缺乏了中間的記錄文件
八、對於日誌文件的保護
chattr +a 日誌文件,a選項爲append(追加)only,即給日誌文件加上a權限後,將只能夠追加,不能夠刪除和修改以前的內容。
root用戶在vi編輯器的命令模式按dd刪除了兩行內容後進行wq!強制保存退出,報錯:
課外補充:chattr +a -R 遞歸式增長a權限