zabbix之日誌監控
一、日誌item介紹
下面介紹zabbix另一個“重量級”的功能——日誌文件監控,它最主要的是監控日誌文件中有沒有某個字符串的表達式,對應日誌輪轉與否,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”。
二、監控原理及註意事項
1、Zabbix Server和Zabbix Agent會追蹤日誌文件的大小和最後修改時間,並且分別記錄在字節計數器和最新的時間計數器中。
2、Agent會從上次讀取日誌的地方開始讀取日誌。
3、字節計數器和最新時間計數器的數據會被記錄在Zabbix數據庫,並且發送給Agent,這樣能夠保證Agent從上次停止的地方開始讀取日誌。
4、當日誌文件大小小於字節計數器中的數字時,字節計數器會變為0,從頭開始讀取文件。
5、所有符合配置的文件,都會被監控。
6、一個目錄下的多個文件如果修改時間相同,會按照字母順序來讀取。
7、到每個Update interval的時間時,Agent會檢查一次目錄下的文件。
8、Zabbix Agent每秒發送日誌量,有一個日誌行數上限,防止網絡和CPU負載過高,這個數字在zabbix_agentd.conf中的MaxLinePerSecond。
9、在logtr中,正則表達式只對文件名有效,對文件目錄無效。
三、日誌監控配置
請確保Agent有如下兩項配置
1、Hostname設定為Server創建主機是填寫的Host name,必須一致
2、ServerActive設定為Server的IP
Host>>目標主機>>item>>create item,如下:
說明:
1. type必須選擇zabbix agent(active),因為數據是zabbix被監控的主動提交給server
2. key:log[/var/log/message,error],我們這裏是監控的系統日誌,打印出帶有error的行,大家也可以去監控其他的日誌,MySQL、nginx等等都是可以的。
3. log time format:MMpddphh:mm:ss,對應日誌的行頭Sep 14 07:32:38,y表示年、M表示月、d表示日、p和:一個占位符,h表示小時,m表示分鐘,s表示秒。
四、結果查看
切換到最新日誌裏面,找到相應數據,如下是我的監控截圖
我們可以針對監控到的一些信息設置觸發器,進行報警等等,這裏不再介紹。
本文出自 “Dr小白” 博客,請務必保留此出處http://1213503.blog.51cto.com/1203503/1952662
zabbix之日誌監控