zabbix之日志文件監控
? ? 下面介紹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表示秒。
切換到最新日志里面,找到相應數據,如下是我的監控截圖:
我們可以針對監控到的一些信息設置觸發器,進行報警等等,這里不再介紹。
馬哥教育精英線下Linux班鄭州校區開班倒計時,優惠四重享,贈送高達4000元的學習大禮包:
第一重:4月30日前報名,立減400元,名額有限搶完為止;
第二重:4月30日前報名,贈送馬哥教育內部Linux知識精講教材一本(價值666元);
第三重:4月30日前報名,贈送馬哥教育實體服務器使用資格(價值1666元);
第四重:4月30日前報名,贈送馬哥教育云學堂學習權限1個(價值1999元);