1. 程式人生 > >分析與管理日誌,日誌時間的同步

分析與管理日誌,日誌時間的同步

系統日誌結構

系統日誌

程序和作業系統核心需要能夠為發生的時間記錄日誌,這些日誌可用於系統稽核和問題的故障排查,這些日誌永久儲存在/var/log目錄中

/var/log目錄中保管由rsyslog維護的各種特定與系統和服務的日誌檔案

日誌檔案 目的
/var/log/messages 大多數系統日誌訊息記錄在此處
/var/log/secure 安全和身份驗證相關的訊息和錯誤的日誌檔案
/var/log/maillog 與郵件伺服器相關訊息的日誌檔案
/var/log/cron

與定期執行任務相關的日誌檔案

/var/log/boot.log

與系統啟動相關的訊息記錄在此處

這裡我們使用vim文字編輯器檢視/etc/log/messages中的日誌檔案

檢視系統的日誌檔案

許多程式使用syslog協議將事件記錄到系統。每一日誌訊息根據裝置(訊息的型別)和優先順序(訊息的嚴重性)分類

編碼 優先順序 嚴重性
0 emerg 系統不可用
1 alert 必須立即採取措施
2 crit 嚴重狀況
3 err 非嚴重錯誤狀況
4 warning 警告狀況
5 notice 正常但重要的事件
6 info 資訊性時間
7 debug 除錯級別資訊

 

日誌的型別 說明

auth

pam產生的日誌
authpriv ssh,ftp等登陸資訊的驗證資訊
cron 時間任務相關
kern 核心
lpr 列印
mail 郵件
mark(syslog)-rsylog 服務內部的資訊,時間標識
news 新聞組
user 使用者程式產生的相關資訊
uucp unix主機之間相關的通訊
local 1~7 自定義的日誌裝置

/etc/rsyslog.conf ---- 日誌的主配置檔案,可修改著配置檔案達到修改裝置和優先順序的效果

日誌同步

首先,我們列出日誌同步時接受方和傳送方各自的職責:

接受方:關閉接受防火牆

                修改雙端配置檔案(udp/tcp)協議相同

                重啟服務

傳送方:填寫要傳送的目標主機

                修改雙端配置檔案(udp/tcp)協議相同

                重啟服務

                最好清理日誌(實驗環境)

配置日誌傳送方:

修改 /etc/rsyslog.conf 中的配置:                              

可以看到我們這裡使用了udp協議(因為使用udp協議速度傳輸速度快)來進行日誌傳輸,並且填寫了我們接受方的ip地址

然後我們重其服務,清理日誌,使用logger命令傳送日誌訊息

傳送方的配置完成

配置日誌接受方:

同樣修改 /etc/rsyslog.conf中的配置:

雙端的協議要相同,這裡同時使用了udp協議

緊接著關閉我們的防火牆         systemctl stop firewalld ---- 關閉主機的火牆

最後重啟服務,清理日誌

接受方配置完成

最後在接受方檢視日誌時,我們看到了傳送方主機傳來的使用logger命令傳送的訊息,即表明了日誌同步成功

 

日誌分析工具journal

systemd日誌將日誌資料儲存在帶有索引的二進位制檔案中,此資料包含與日誌事件相關的額外資訊

以root使用者身份執行時:

journalctl ---- 從最舊的日誌條目開始顯示完整的系統日誌

journalctl -n num ----顯示最後num個日誌條目,它可接受通過可選引數指定應顯示最後多少個日誌條目

journalctl -p 優先順序 ---- 可以接受已知優先順序的名稱編號或引數,顯示所有指定級別及更高級別的條目

journalctl -f ---- 監控日誌,輸出日誌的最後十行, 並在新日誌條目寫入到日誌中時繼續輸出它們

journalctl --since time --until time ---- 時間篩選日誌,顯示指定時間範圍內新生成的日誌

journalctl _COMM=   命令的名稱                   ---- 顯示指定程序的日誌,可以組合多個選項

                _EXE=  程序的可執行檔案的路徑

                _PID=    程序的PID

                _UID=    執行該程序的使用者UID

                _SYSTEMD_UNIT=  啟動該程序的systemd單元

journalctl -o verbose ---- 顯示日誌的詳細監控引數

修改日誌的格式

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

 

永久儲存系統日誌

由於日誌儲存在電腦的記憶體中,這意味著系統重啟時它會被清楚,所以我們如果要永久儲存系統日誌的話,需要執行以下的操作:

mkdir /var/log/journal

chgrp systemd-journal /var/log/journal ---- 修改所有組

chmod g+s /var/log/journal ---- 給與gs許可權

ps aux |grep systemd-journald ---- 生成的程序都屬於該組

killall -1 num ---- num為程序號,-1訊號為重新啟動

cd /var/log/journal

ls

bootctl

ll 主機號

reboot ---- 重啟

journalctl ---- 已經採集到的日誌會儲存,journalctl命令會自動搜尋到該日誌並顯示


時間的同步與管理

時間的修改與設定

時間的修改必須使用root使用者身份

timedatectl ---- 檢視當前時間資訊

timedatectl set-time "2018-11-11 11:11:11" ---- 設定當前系統時間

timedatectl list-timezones ---- 檢視能夠同步時間的時區

timedatectl set-timezone Asia/Shanghai ---- 把系統時間與某個時區同步

timedatectl set-local-rtc 1 ---- 開啟硬體時間與CST的同步,在vim /etc/adjtime起作用

timedatectl set-local-rtc 0 ---- 關閉硬體時間與CST的同步,此時將與UTC同步,將在vim /etc/adjtime起作用

時間同步

配置時間傳送方

22 allow 172.25.0.0/24 ---- 允許誰去同步我的時間
28 local stratum 10 ---- 不去同步任何人的時間,時間同步伺服器級別

重啟服務,關閉防火牆 傳送方配置完成

配置時間接受方:

3 server 172.25.254.1 iburst ---- 同步該主機上的時間

重啟服務 接受方配置完成

chronyc sources -v ---- 檢視時間的同步來源

^*表示正確同步  ^?表示沒有正確同步