1. 程式人生 > >日誌服務與日誌分析工具

日誌服務與日誌分析工具

系統日誌生成服務

功能:

日誌服務是根據日誌配置檔案進行提供相應的功能服務,對於各種服務的資訊等級的設定將不同服務的不懂等級資訊記錄在不同的檔案裡面。

日誌管理服務分類:

1.rsyslogd 普通日誌管理服務

採集各種服務產生的資訊根據日誌服務配置檔案內容將資訊進行分類儲存。

2.klogd 核心資訊日誌檔案服務

專門記錄核心資訊

3.logrotate 日誌檔案輪替服務

解決日誌檔案內容過多消耗記憶體的日誌檔案替換服務



普通日誌管理:

常見服務日誌分類:

/var/log/cron          ##crontab 例行性任務排程產生資訊
/var/log/maillog ##郵件往來資訊 /var/log/secure ##涉及帳號密碼的登陸資訊 /var/log/faillog /var/log/wtmp ##記錄系統登陸者資訊 /var/log/yum.log ##yum使用的資訊log 目錄裡面一般還有各種的網路服務日誌檔案,例如http samba 等等。



常見日誌資訊等級:

1           info            ##基本資訊說明
2           notice          ##需要注意的內容
3           warning         ##警示資訊
4 err ##錯誤 5 crit ##嚴重錯誤 6 alert ##警告 7 emerg(panic) ##嚴重錯誤警告

開啟日誌管理服務:

檢視狀態:程序(ps)檢視方式或者服務檢視方式(systemctl)均可以

可以看到日誌管理服務處於執行的狀態,如果沒有開啟,我們可以通過

systemctl start rsyslog.service 或 systemctl restart rsyslog.server 啟動日誌管理服務



配置日誌管理服務:


/etc/rsyslog.conf ##日誌服務配置檔案



注:在上面的圖片中mail的那一行指定目錄檔案的時候有一個“-”號,表示將資訊暫時儲存在速度較為快的記憶體裡面,雖然提高了效能,由於存在記憶體裡面容易造成資料丟失。

儲存日誌書寫格式:

服務 + 過濾符號 + 資訊等級 儲存目錄

過濾符:
.   ------> 大於或等於該資訊等級
.=  ------> 大於該等級的資訊等級
.!  ------> 不等於該等級,除了該等級以外的資訊等級
*   ------> 通配所有

例子1:

`
所有資訊儲存在messages檔案裡面除了cron,mail 的資訊:

.;cron,mail.none /var/log/messages

不同等級不同服務用;隔開。相同資訊的用,隔開。
`

例子2:


所有日誌資訊重定向到 /var/log/all.log:

例子3:


將本機的日誌資訊推送到相應的服務機:


對本機的修改:
*.* (這裡為相應的服務資訊以及資訊等級) @日誌接受方的ip地址


在服務接受方的修改:
開啟udp接受的設定(在這裡開啟udp比tcp有速度,異時的優勢)


雙方均重啟服務,服務接受方關閉防火牆服務。


測試的結果:
服務接受機:

本機:

服務接受機:



系統日誌分析:

systemd-journald日誌分析程序

在紅帽7.0等新一代的系統中使用systemd管理服務。Journald,它捕獲系統日誌資訊,核心日誌資訊以及來自原始RAM磁碟的資訊,早期啟動資訊以及所有服務寫入標準輸出流,標準錯誤流的資訊。


`
Journald日誌寫入二進位制檔案,在/run/log/journal中,臨時存在,當關機日誌消失。

配置檔案在 /etc/systemd/journal.conf裡面。

它一個不同於rsyslog服務的一個新的日誌服務,有日誌分析,以及日誌清空,節約空間的優勢,但是不能代替傳統的集中日誌服務,如rsyslog服務。它不存在日誌同步共享性也不能儲存關機前的日誌資訊。`

常用命令:

journalctl          ##日誌分析命令 

journalctl -n 5     ##檢視最近生成的5條日誌
journalctl -p err   ##檢視系統報錯
journalctl --since 時間("2016-07-22 03:00:00") --until"2016-07-22 03:30:00"###檢視某個時間段生成的日誌

journalctl -o verbose   ###檢視日誌能夠使用的條件引數詳細資訊
journalctl  _UID=       ##程序uid
        _PID=       ##程序id
        _GID=       ##程序gid
        _HOSTNAME=  ##程序所在主機
        _SYSTEMD_UNIT=  ##服務名稱
        _COMM=      ##命令名稱

例子:

Journal日誌服務存在丟失上一次開機執行資訊所以我們建立檔案將臨時的檔案儲存,以便下次開機能夠看到上一次的資訊。


建立儲存檔案資料夾,並設定相關的許可權:

Send the USR1 signal to the systemd-journald or reboot serverX.

通過檢視可以知道新建立的檔案裡面多了一個資料夾。

all