zabbix日誌監控

通常狀況下,日誌最早反映出應用當前的問題,在海量日誌裏面找到咱們異常記錄,例如監控系統日誌、nginx、Apache、業務日誌,而後記錄下來,而且根據狀況報警。 nginx

一、日誌監控項介紹 正則表達式

最主要的是監控日誌文件中有沒有某個字符串的表達式,對應日誌輪轉與否,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>] spa

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

◆ encoding:編碼相關,留空便可 regexp

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

◆ mode:默認是all,也能夠是skip,skip會跳過老數據 server

◆ output:輸出給zabbix server的數據。能夠是\一、\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"。

 

二、監控原理及注意事項

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

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

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

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

全部符合配置的文件,都會被監控。

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

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

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

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

 

示例:監控zabbix server日誌

三、建立日誌監控項

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

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

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

信息類型:日誌

應用集:日誌

查看最新數據

 

四、建立觸發器

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

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

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

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

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

相關文章
相關標籤/搜索