1. 程式人生 > >linux系統中的日誌管理

linux系統中的日誌管理

一、什麼是系統日誌
系統日誌是記錄系統中硬體、軟體和系統問題的資訊,同時還可以監視系統中發生的事件。使用者可以通過它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕跡。系統日誌包括系統日誌、應用程式日誌和安全日誌。

二、系統日誌的價值
系統日誌策略可以在故障剛剛發生時就向你傳送警告資訊,系統日誌幫助你在最短的時間內發現問題。

系統日誌是一種非常關鍵的元件,因為系統日誌可以讓你充分了解自己的環 境。這種系統日誌資訊對於決定故障的根本原因或者縮小系統攻擊範圍來說是非常關鍵的,因為系統日誌可以讓你瞭解故障或者襲擊發生之前的所有事件。為虛擬化 環境制定一套良好的系統日誌策略也是至關重要的,因為系統日誌需要和許多不同的外部元件進行關聯。良好的系統日誌可以防止你從錯誤的角度分析問題,避免浪 費寶貴的排錯時間。另外一種原因是藉助於系統日誌,管理員很有可能會發現一些之前從未意識到的問題,在幾乎所有剛剛部署系統日誌的環境當中。
使用系統日誌產品當中包含的其他特性,包括向監控團隊自動傳送報警通知等 功能。系統日誌基於警報型別或者準確的警報訊息,系統日誌可以通過觸發特定操作來完成。系統日誌通過簡單地設定這些警報,你將會在自己的環境中處於更加主 動的位置,因為你可以在事故變得更加嚴重之前得到通知

三、系統日誌的檢視

1.在根目錄下的/var/log下存放

存放目錄
一般資訊存放在/var/log/messages
安全和身份認證相關的訊息和錯誤的日誌檔案放在/var/log/secure
郵件伺服器相關的日誌檔案放在/var/log/maillog
定時任務相關的日誌檔案放在/var/log/cron
系統啟動有關的日誌檔案放在/var/log/boot.log
2.日誌分類
日誌型別

auth                       ##pam產生的日誌
authpriv                   ##ssh.ftp等登陸認證資訊
cron                       ##時間任務相關
kern                       ##核心 
lpr                        #列印
mail                       ##郵件
mark(syslog)-rsyslog       ##服務內部的訊息,時間標記
news                       ##新聞組
users                      ##使用者產生的相關資訊
uucp                       ## unix to unix copy,unix主機之間
local 1~7                  ##自定義的日誌裝置

日誌級別分類

debug         ##有調式資訊的,日誌資訊最多
info          ##一般資訊的日誌,比較常見
notice        ##最具有重要性的普通條件的資訊
warning       ##警告級別
err           ##錯誤級別,阻止某個功能或者模組不能正常工作的資訊
crit          ##嚴重級別,阻止整個系統或者軟體不能正常工作的資訊
alert         ##需要立刻修改的資訊
emerg         ##核心崩潰等嚴重資訊
none          ##什麼都不記錄

注:從上到下,級別從低到高,記錄的資訊越來越少


具體資訊可以輸入指令檢視

man 3 syslog

3.rsyslog 是一個開源工具 , 被廣泛用於 Linux 系統以通
TCP/UDP 協議轉發或接收日誌訊息。
rsyslog 服務的主配置檔案為 /etc/rsyslog.conf 。日誌的程序服務名稱為rsyslog.service

 systemctl  status  rsyslog     ##檢視該服務的執行狀態
systemctl   start   rsyslog     ##開啟該服務
systemctl   restart rsyslog     ##重啟該服務、
systemctl   stop    rsyslog     ##停止該服務

我們可以通過修改rsyslog的配置檔案來的到自己想要的日誌

vim rsyslog.conf

在該檔案的46行 RULES後修改
在這裡插入圖片描述4.如何將自己想要的日誌匯入到自己設立的檔案內,可以在55行新增如下子段

  *.*           /var/log/lei    ##其中第一個*表示日誌的型別,.表示分隔,第二個*表示日誌的級別

在這裡插入圖片描述
然後輸入測試指令

logger lei
logger chengzhi

在這裡插入圖片描述

5.如何將我的日誌資訊共享或者傳送給其他人
首先在日誌的傳送方的rsyslog的配置檔案第56行新增如下內容

 *.*        @172.25.254.55   ##其中第一個*表示日誌的型別,.表示分隔,第二個*表示日誌的級別,跟之前的區別是,此處換成了接受方的ip

在這裡插入圖片描述然後在接受方的syslog的配置檔案中的第15行和16行的#去掉

在這裡插入圖片描述
然後重啟兩臺主機的rsyslog服務,並關閉防火牆

systemctl restart rsyslog
systemctl stop  firewalld

然後輸入測試資訊

logger lei
logger chengzhi1    

在這裡插入圖片描述6.如何想讓日誌的內容按照我們的要求顯示
需要在syslog的配置檔案第47行新增如下子段

$template WESTOS,"%timegenerated%%FROMHOST-IP% %syslogtag% %msg% \n" 

並在54行messages後加

;WESTOS

在這裡插入圖片描述就可以按照我們想要檢視的格式查看了
在這裡插入圖片描述四、systemd-journald 服務
服務提供一種改進的日誌管理服務,可以收集來自核心、啟動過程、標準輸出、系統日誌及守護程序啟動和執行期間錯誤的訊息 , 它將這些訊息寫入到一個結構化事件日誌中
1.journalctl的基本指令
journalctl ##日誌分析命令
在這裡插入圖片描述

journalctl -n 5  ##檢視最近生成的 5 條日誌

在這裡插入圖片描述

journalctl -p err  ##檢視系統報錯

在這裡插入圖片描述

journalctl --since --until  ##檢視某個時間段生成的日誌

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

journalctl -o verbose   ##檢視日誌能夠使用的條件引數

在這裡插入圖片描述

2.如何把journalctl記錄的內容儲存到檔案中
因為這個服務是記錄在記憶體中的所以,系統重啟後會消失,所以我們如果想要儲存到本地,需要進行下列步驟

mkdir /var/log/journal
chown root.systemd-journal /var/log/journal/
chmod 2755 /var/log/journal/
kill -1 systemd-journald**(此處必須是jobs id)**

重啟後發現,關機之前的journald日誌內容還可以直接用journalctl命令檢視