Zabbix 監控日誌

Zabbix 監控日誌

示例一:

監控項目

鍵值設置:


log[/data/canal/logs/job-xxx-xxx/job-xxx-xxx.log,"caused|Exception|DRROR",,,skip,,]

yyyy-MM-dd hh:mm:SS

這個鍵值裏邊的內容爲,日誌絕對路徑,關鍵字,skip是跳過老內容,只監控新產生的日誌, 其他的不寫的用","隔開

觸發器:

問題表達式:{aws-bigdata-canal-49-63:log[ /data/canal/logs/job-xxx-xxx/job-xxx-xxx.log,"caused|Exception|DRROR",,,skip,,].nodata(10s)}=0
恢復表達式:{aws-bigdata-canal-49-63:log[ /data/canal/logs/job-xxx-xxx/job-xxx-xxx.log,"caused|Exception|DRROR",,,skip,,].nodata(2m)}=1

nodata(2m) 這個函數是在2分鐘內沒有數據 1:true 0:false 。 所以獲取到關鍵字 "caused|Exception|DRROR" nodata函數值就會變成false,就會觸發 觸發器,達到監控的目的!
Zabbix 監控日誌
Zabbix 監控日誌
Zabbix 監控日誌

##示例二:
​ 通常我們監控會監控到一些關鍵字就直接報錯,但是往往有需求關鍵字和一些字符串組合起來是沒有問題的 即使是存在關鍵字error exception 等等 這個時候就需要我們使用強大的正則

監控項目:

  log[/var/log/test_file.log,"Error|(?<!Api)Exception|before system exit|kill current process failed|known server|timed out",,,skip,]   

這裏重點講解(?<!Api)Exception只匹配到Exception 不匹配ApiException找到相關文章解釋如下

(?:pattern) 非獲取匹配,匹配pattern但不獲取匹配結果,不進行存儲供以後使用。這在使用或字符“(|)”來組合一個模式的各個部分是很有用。例如“industr(?:y|ies)”就是一個比“industry|industries”更簡略的表達式。 

(?=pattern) 非獲取匹配,正向肯定預查,在任何匹配pattern的字符串開始處匹配查找字符串,該匹配不需要獲取供以後使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始。 (?!pattern) 非獲取匹配,正向否定預查,在任何不匹配pattern的字符串開始處匹配查找字符串,該匹配不需要獲取供以後使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。

(?<=pattern) 非獲取匹配,反向肯定預查,與正向肯定預查類似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。 

(?<!pattern) 非獲取匹配,反向否定預查,與正向否定預查類似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。這個地方不正確,有問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章