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命令查看