Linux——日誌管理
阿新 • • 發佈:2018-11-07
一、系統日誌
- 系統日誌: 程序和作業系統核心需要能夠為發生的事件記錄日誌,這些日誌可用於系統稽核和時間的故障排除,一般這些日誌永久儲存於/var/log目錄中
- 系統預設日誌的分類:
/var/log/messages 服務資訊日誌,包括服務的資訊,報錯等等,大多數系統日誌資訊記錄在此
/var/log/secure 系統認證資訊日至
/var/log/cron 定時任務日誌
/var/log/maillog 郵件服務日誌
/var/log/boot.log 系統啟動日誌
二、日誌管理服務rsyslog
- rsyslog是一個開源工具,被廣泛用於linux系統以通過TCP/UDP協議轉發或接受日誌訊息
UDP 速度快,不需要應答
TCP 穩定,確認收到 - rsyslog 服務是用來採集系統日誌的,不產生日誌,只起到採集的作用, 對我們的日誌進行管理
- rsyslog服務主配置檔案是
/etc/rsyslog.conf
指定日誌儲存位置修改配置檔案,修改後重啟rsyslog服務生效
- systemctl status rsyslog.service 檢視服務
- systemctl restart rsyslog.service 重啟服務
- 格式:
日至的型別
.日至的級別
/var/log/file(存放檔案)
- 日誌的型別
auth pam產生的日誌
authpriv ssh,ftp等登陸資訊的驗證資訊
cron 時間任務相關
kern 核心
lpr 列印
mail 郵件
mark(syslog)-rsyslog 服務內部的資訊,時間標識
news 新聞組
user 使用者程式產生的相關資訊
uucp unix to unix copy,unix主機之間相關的通訊
local 1~7 自定義的日誌裝置 - 日誌級別
debug 有調式資訊的,日誌資訊最多
info 一般資訊的日誌,最常用
notice 最具有重要性的普通條件的資訊
warning 警告級別
err 錯誤級別,阻止某個功能或者模組不能正常工作的資訊
crit 嚴重級別,阻止整個系統或者整個軟體不能正常工作資訊
alert 需要立刻修改的資訊
emerg 核心崩潰等嚴重資訊
none 什麼都不記錄
注意:從上到下,級別從低到高,記錄的資訊越來越少
詳細的可以檢視手冊:man 3 syslog
三、遠端日誌的同步
此處的實驗中:
主機:node1——>接收端
主機:node2——>傳送端
(一)接收端:
(1)關閉火牆
(2)編輯日誌配置檔案vim /etc/rsyslog.conf
(3)重啟rsyslog服務
(二)傳送端:
(1)關閉火牆
(2) 編輯日誌配置檔案vim /etc/rsyslog.conf
(3)重啟服務
注意:兩臺主機防火牆都要關閉,並且修改完檔案後都要重啟服務
(三)測試
- 先清空兩個主機的/var/log/messages,為了方便檢視實驗效果
- 傳送端新建一個日誌並檢視
- 接收端檢視是否接收到日誌資訊(從截圖可看接收成功)
(四)清除/etc/rc.d/rc.local檔案
做實驗的時候我們會發現有很多此類檔案的生成,不方便實驗的檢視
所以我們可以進行以下操作將相關檔案清除掉:
四、採集檔案
- 採集日誌格式的設定:vim /etc/rsyslog.conf
2.重啟服務(此步驟不要忘記)
3.測試
五、日誌分析
- systemd-journald服務
提供一種改進的日誌管理服務,可以手機來自核心/啟動服務,標準輸出,系統日誌及守護程序啟動和執行期間錯誤的訊息,它將這些訊息寫入到一個結構化事件日誌中 - journalctl 日誌分析命令,按q退出
注意:如果系統reboot則用journalctl檢視的日誌資訊將不存在
journalctl -n 5 顯示最新5條的程序
journalctl --since 09:20
journalctl --since 09:20 --until 09:21:50 顯示一個時間段的程序資訊
journalctl -p err 顯示系統報錯
journalctl -f 監控日誌 ctrl+c退出
journalctl -o verbose 顯示日誌能夠使用的詳細程序引數
journalctl _PID=1055 _COMM=sshd
- 用journalctl的方式採集日誌
預設情況下,systemd日誌儲存在/run/log/journal中,這意味著系統重啟時會被清除,那如果將日誌儲存在/var/log/journal目錄,這樣做的優點是啟動後就可以利用歷史資料,形成永久日誌
實現步驟如下: