zabbix日志監控


一般情況下,日志最先反映出應用當前的問題,在海量日志里面找到我們異常記錄,例如監控系統日志、nginx、Apache、業務日志,然后記錄下來,並且根據情況報警。

1、日志監控項介紹

最主要的是監控日志文件中有沒有某個字符串的表達式,對應日志輪轉與否,zabbix都支持。

在配置Item的時候,Type選擇Zabbix agent (active),這里主要需要配置的是Key。下面是監控日志的兩種key——log和logtr。

log[/path/to/some/file,<regexp>,<encoding>,<maxlines>,<mode>,<output>]

logtr[/path/to/some/filename_format,<regexp>,<encoding>,<maxlines>,<mode>,<output>]

◆ regexp:要匹配內容的正則表達式,或者直接寫你要檢索的內容也可以,例如我想檢索帶ERROR關鍵詞的記錄

◆ encoding:編碼相關,留空即可

◆ maxlines:一次性最多提交多少行,這個參數覆蓋配置文件zabbxi_agentd.conf中的'MaxLinesPerSecond',我們也可以留空

◆ mode:默認是all,也可以是skip,skip會跳過老數據

◆ output:輸出給zabbix server的數據。可以是\1、\2一直\9,\1表示第一個正則表達式匹配出得內容,\2表示第二個正則表達式匹配錯的內容。

如果仔細看可以發現,第一個參數不一樣,logrt的第一個參數可以使用正則表達式。針對日志回滾用得,例如我們每天都切割nginx日志,日志名為www.a.com_2015-01-01.log、www.a.com_2015-01-02.log等等,使用log肯定不合適,如果文件名使用正則,那么新增的日志文件會立即加入監控。

備注:不管新日志、老日志,只要他們有變更,zabbix都會監控。

只要配置了<regexp>,Zabbix會根據<regexp>的正則表達式來匹配日志中的內容。注意,一定要保證Zabbix用戶對日志文件有可讀權限,否則這個Item的狀態會變成"unsupported"。

 

2、監控原理及注意事項

Zabbix Server和Zabbix Agent會追蹤日志文件的大小和最后修改時間,並且分別記錄在字節計數器和最新的時間計數器中。

Agent會從上次讀取日志的地方開始讀取日志。

字節計數器和最新時間計數器的數據會被記錄在Zabbix數據庫,並且發送給Agent,這樣能夠保證Agent從上次停止的地方開始讀取日志。

當日志文件大小小於字節計數器中的數字時,字節計數器會變為0,從頭開始讀取文件。

所有符合配置的文件,都會被監控。

一個目錄下的多個文件如果修改時間相同,會按照字母順序來讀取。

到每個Update interval的時間時,Agent會檢查一次目錄下的文件。

Zabbix Agent每秒發送日志量,有一個日志行數上限,防止網絡和CPU負載過高,這個數字在zabbix_agentd.conf中的MaxLinePerSecond。

在logtr中,正則表達式只對文件名有效,對文件目錄無效。

 

示例:監控zabbix server日志

3、創建日志監控項

配置——>主機,找到zabbix server,監控項——>創建監控項

類型:必須選擇zabbix客戶端(主動式),因為數據是zabbix被監控的主動提交給server

鍵值:自定義,參數為日志文件的路徑等

信息類型:日志

應用集:日志

查看最新數據

 

4、創建觸發器

例如當重啟服務的時候進行報警,原理是通過過濾關鍵字進行報警

配置——>主機,找到zabbix server,觸發器——>創建觸發器

過濾關鍵字添加生成表達式

設置報警嚴重性級別為"嚴重"

日志監控至此完成,接下來就是觸發報警了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM