zabbix監控日誌關鍵字和日誌文件v

日誌監控的功能

Zabbix-Agent支持對日誌文件的監控,可以對日誌的關鍵字進行監控,然後告警。日誌監控支持普通的日誌文件,也支持日誌輪詢、切割的文件。當日志中出現特殊的字符串(列如,警告、報錯等字符串)時,可以發送通知給用戶。爲了使日誌監控能夠正常使用,必須滿足以下條件:
 

  1. Zabbix-Agent必須運行,且工作方式爲主動模式
  2. 日誌的Item必須設置,必須指定文件名
  3. Zabbix-Agent有讀取日誌權限,如日誌位於/home/用戶名/文件中,則會因爲權限的問題而導致無法讀取到文件


注意:zabbix日誌監控必須工作於主動模式下,在web前端配置的主機名(宏爲{HOST.HOST})必須和Zabbix-Agent端zabbix_agentd.conf中的Hostname值是一致的,並且這個Hostname值具有唯一性:否則,在主動模式下是無法正常採集到數據的。

日誌監控的監控指標

log[/path/to/file/file_name,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]

logrt[/path/to/file/reqexp_describing_filename_pattern,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]

log.count[/path/to/file/file_name, <regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]

logrt.count[/path/to/file/reqexp_describing_filename_pattern, <regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]
 

參數 含義
file_name 日誌文件所在的路徑或絕對路徑文件名
regexp 匹配的正則表達式
encoding 在Linuxunix系統下默認編碼爲UTF-8,在windows系統下默認編碼爲ANSI
maxlines 每次給zabbix-server或zabbix-proxy發送的日誌最大行數,此參數值會高於zabbix_agentd.conf中的MaxLinesPerSecond參數值。通過此參數,可以控制一次發送的日誌數據條數,如發送過多,可能會對Zabbix-Agent的負載和I/O有強大影響
mode All爲默認參數,表示匹配所有的日誌,包括以前存在的日誌也會進行匹配
skip表示跳過已經存在的日誌數據,只有新的日誌纔會進行匹配
output 表示匹配輸出的正則表達式,1~9表示返回匹配的第幾個字符串,表示返回匹配的全部字符串。Zabbix3.2版本以後支持
maxdelay 以秒爲單位的最大延遲,用於忽略老的日誌數據,及時獲取當前的日誌數據。Zabbix4.0版本以後支持。當處理的日誌過多,在更新週期內達到maxlines的發送上限,但還有日誌無法發送時,會導致大量堆積,在嚴重情況下,會造成日誌處理速度跟不上,這時使用此參數將忽略過期的日誌發送
輸入的數值類型可以是浮點數(float)
0是默認值,永遠不會忽略日誌文件行
>0.0,忽略較舊的行,以獲得在maxdelay秒內分析的最新行,會丟棄在規定時間內無法發送的數據
options 日誌輪詢、切割的方式。從zabbix4.0版本開始支持
rotate,日誌輪詢、切割,默認值
copytruncate,先拷貝文件,然後清空日誌的輪詢方式。請注意:copytruncate不能與maxdelay一起使用,如使用此參數,maxdelay必須爲0或未指定

 

日誌監控ltem的配置

添加一個日誌監控Item
Key:log[/var/log/secure,session]


 

日誌監控的權限問題

如果zabbix用戶對日誌沒有讀取權限,則會提示權限拒絕導致數據獲取失敗(將zabbix_agentd進程開啓調試模式,就可以看到讀取日誌權限被拒絕)。

來查看這個文件的權限,由於普通用戶並沒有讀取權限,所以zabbix用戶也無法讀取到數據。



在這裏,爲了演示如何解決這個問題而改變文件的權限,使用如下命令:
[root@localhost log]# chown zabbix.root /var/log/secure

在最新數據中查看自定義log的Iten,可以看到所有獲取到的數據


zabbix監測logfile是否更新

2019-11-28

有時候服務出問題後,logfile就不再寫入新日誌,所有要通過zabbix監測logfile是否更新。

1、創建template datalogfile
2、創建應用集datalogfile
3、創建監控項
nochange of data-log
vfs.file.time[/data/logs/log.txt,change] 監測日誌是否更新,如果60s不更新報警
60s
vfs.file.regmatch[/data1/logs/log.txt,Expired] 日誌如果是否出現Expired字符,出現即報警

4、創建觸發器,警告
data-log on {HOST.NAME} longtime nochanged
{Template data-log:vfs.file.time[/data/logs/log.log,change].fuzzytime(60)}=0
出現Expired字符立即報警
{Template DbService-log:vfs.file.regmatch[/data1/logs/log.log,Expired].last()}=1
5、在zabbix-server監測測試
####
zabbix_get -s 10.30.1.73 -p 10050 -k'vfs.file.time[/dervice/logs/log.log]'
####44
zabbix_get -s 10.30.1.44 -p 10050 -k'vfs.file.time[/data/logs/log.log]'
####lazy1
zabbix_get -s 172.16.1.231 -p 10050 -k'vfs.file.time[/data/logs/log.log]'

####lazy2
zabbix_get -s 172.16.1.67 -p 10050 -k'vfs.file.time[/data/logs/log.log]'

6、常見錯誤
ZBX_NOTSUPPORTED: Cannot obtain file information: [2] No such file or directory
因爲文件或目錄的權限不允許zabbix用戶訪問:
解決:chmod 755 目錄
chmod 644 file.txt


https://blog.csdn.net/wszll_Alex/article/details/77001686

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章