linux系統之系統日誌管理

系統日誌類型

(1) 系統的日誌一般存在於/var/log 目錄中
rsyslog服務 #此服務是用來採集系統日誌的,它不產生日誌,只是起到採集作用
在這裏插入圖片描述
rsyslog的管理:

/var/log/messages 大多數系統日誌信息記錄在此處
/var/log/secure 安全和身份認證相關的信息的日誌
/var/log/maillog 系統郵件服務信息的日誌
/var/log/cron 系統定時任務信息的日誌
/var/log/boot.log 系統啓動的日誌

(2) 指定日誌採集路徑
/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 什麼都不記錄

注意:從上到下,級別從低到高,記錄的信息越來越少
(3)rsyslog 服務
rsyslog 是一個開源工具,被廣泛用於Linux系統以 TCP/UDP 協議轉發或接收日誌消息

此服務是用來採集系統日誌的,它不產生日誌,只是起到採集作用

主配置文件爲 /etc/rsyslog.conf ,指定日誌保存位置修改配置文件,修改後重啓 rsyslog 服務生效

日誌遠程同步

日誌發送方:
vim /etc/rsyslog.conf
在這裏插入圖片描述
在這裏插入圖片描述
. @日誌接受方ip ##(「@」表示udp協議發送 「@@」表示tcp協議發送)

systemctl restart rsyslog ##重啓服務

日誌接收方:
vim /etc/rsylog.conf
在這裏插入圖片描述
15 $ModLoad imudp ##加載日誌接收功能模塊
16 $UDPServerRun 514 ##加載日誌接收接口
systemctl restsrt rsyslog ##重啓服務
systemctl stop firewalld ##關閉火牆
測試:

在發送方和接受方都清空日誌文件

/var/log/messages

[[email protected] Desktop]# > /var/log/messages
[[email protected] Desktop]#
[[email protected] ~]# > /var/log/messages
[[email protected] ~]#

在日誌發送方:
logger test
cat /var/log/messages ##查看日誌已經生成
[[email protected] Desktop]# logger test
[[email protected] Desktop]# cat /var/log/messages
Oct 16 03:19:47 client root: test
[[email protected] Desktop]#
在這裏插入圖片描述
在日誌接受方查看
cat /var/log/messages

Oct 16 03:19:47 client root: test
Oct 16 03:19:50 server rc.local: /etc/rc.d/rc.local: connect: No route to host
Oct 16 03:19:50 server rc.local: /etc/rc.d/rc.local: line 18: /dev/tcp/content.e
在這裏插入圖片描述

日誌固定採集格式

vim /etc/rsyslog.conf
$template WESTOS, 「%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n」
備註:在哪裏看日誌就在哪裏設定格式

%timegenerated% 顯示日誌時間
%FROMHOST-IP% 顯示主機IP
%syslogtag% 日誌記錄目標
%msg% 日誌內容
\n 換行

在這裏插入圖片描述

在這裏插入圖片描述
在指定的日誌中採用WESTOS格式

在這裏插入圖片描述
重啓服務 並進行查看

在這裏插入圖片描述
在這裏插入圖片描述
讓所有的日誌都用此採集格式
$ActionFileDefaultTemplate WESTOS
在這裏插入圖片描述
在這裏插入圖片描述
之前已經採集的日誌格式不會發生變化
用ssh登陸後新採集的日誌格式發生變化
cat /var/log/secure
在這裏插入圖片描述
在這裏插入圖片描述

journalctl命令

rsyslog採集日誌,從磁盤讀取,速度慢,reboot 重啓系統之後系統之前的日誌會被清除
journal 不採集日誌,直接從內存查看日誌 ,速度更快,reboot 重啓系統之後系統之前的日誌會被清除

(1) journalctl
在這裏插入圖片描述

(2) journalctl -n 查看最近10條日誌
在這裏插入圖片描述
(3) journalctl -n 3 查看最近的三條日誌
在這裏插入圖片描述
(4)journalctl --since 11:30 --until 15:00 查看11:30至15:00之間的日誌

在這裏插入圖片描述
(5) journalctl -o verbose 查看日誌的詳細參數
可以指定id和進程名稱精確查看
在這裏插入圖片描述
在這裏插入圖片描述
(6) journalctl -p err 查看錯誤日誌
在這裏插入圖片描述

利用systemd-journal採集日誌

(1) 建立日誌採集路徑 並且將目錄的組修改爲systemd-journal

在這裏插入圖片描述
(2)保證journal目錄下新建的文件都屬於systemd-journal組
chmod g+s /var/log/journal/
在進程不關閉的情況下刷新進程 killall -1 systemd-journald

在這裏插入圖片描述
(3) 查看journal目錄中是否有主機的機器碼(該文件生成後纔可以採集日誌)
在這裏插入圖片描述
(4)reboot 查看是否可以採集該時間點之前的日誌 若能查看到說明採集成功
在這裏插入圖片描述