溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Zabbix監(jiān)控進程日志的配置過程

發(fā)布時間:2020-03-03 10:26:49 來源:網(wǎng)絡(luò) 閱讀:9471 作者:蘇幕遮618 欄目:安全技術(shù)

監(jiān)控日志是運維人員日常生活里必不可少的一個環(huán)節(jié),而且日志是一個進程執(zhí)行的重中之重,由于日志記錄了程序運行的吃喝拉撒所有事件,所以在故障排除的時候,結(jié)合日志找障礙點是必不可少的!而且我們也會要主動去被提醒日志里的幾個重點詞語,比如“ERROR!”,比如“WARINIG!”,比如“Alarm!”,比如“女排姑娘好樣的你們真給國家爭氣,看這些女排妹子真喜歡一個個都是大長腿美顏外加D罩杯”。而zabbix作為一個優(yōu)秀的監(jiān)控軟件,就可以當以上幾個關(guān)鍵詞出現(xiàn)在日志的第一時間或報警或記錄。


舉個例子,假設(shè)我們要監(jiān)控一個進程日志,這個進程叫mrs,這個是我公司內(nèi)部用的是一個程序。而目標就是當這個mrs.log日志里出現(xiàn)ERROR的時候,就要報警,通知悲摧的運維和開發(fā)pl們。


首先我們先建立一個item,如圖:

Zabbix監(jiān)控進程日志的配置過程

注意一下,這里的type是active,因為被監(jiān)控的服務(wù)器是需要主動把日志送給server端的。而key寫的是log[/mnt/hswx/mrs/logs/mrs.log,ERROR,,,skip,],我這里詳細說一下。


log這個key的格式是這樣的:log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>],里面各項意思如下:

file:文件名,寫絕對路徑;
regexp:要匹配內(nèi)容的正則表達式,或者直接寫你要檢索的內(nèi)容也可以,例如我想檢索帶ERROR關(guān)鍵詞的記錄;
encoding:編碼相關(guān),留空即可;
maxlines:一次性最多提交多少行,這個參數(shù)覆蓋配置文件zabbxi_agentd.conf中的’MaxLinesPerSecond’,我們也可以留空;
mode:默認是all,也可以是skip,skip會跳過老數(shù)據(jù);
output:輸出給zabbix server的數(shù)據(jù)。可以是\1、\2一直\9,\1表示第一個正則表達式匹配出得內(nèi)容,\2表示第二個正則表達式匹配錯的內(nèi)容。


由于在這里我們只需要挑出"ERROR"的語句,后面的那些七七八八都用不上,所以就直接寫log[/mnt/hswx/mrs/logs/mrs.log,ERROR,,,skip,]就好了。如果要挑選“ERROR 或者 error”,那么就是log[/mnt/hswx/mrs/logs/mrs.log,(ERROR|error),,,skip,]


日志的格式選擇“l(fā)og”,每10秒鐘一次更新,保存90天,這些都是老話常談。至于Log time format寫成yyyy-MM-dd hh:mm:ss是規(guī)范了紀錄時間的格式,我們采用的格式就是“年-月-日:小時-分鐘-秒”,一會就會看到效果。


寫完之后,保存,返回到Monitoring---lastest Data,找到我們剛剛建立的這個item,

Zabbix監(jiān)控進程日志的配置過程


點擊右側(cè)的history,就可以看到這樣的內(nèi)容了。

Zabbix監(jiān)控進程日志的配置過程

這里的local time就是我們設(shè)置item時候的那個log time format,它也的確是按著“年-月-日:小時-分鐘-秒”這個格式記錄的。


我們可以看到value里說18:39:53有一個ERROR日志,那么登陸到這臺服務(wù)器上,去服務(wù)器的mrs.log里看一下是否有這樣一模一樣的日志內(nèi)容呢?

Zabbix監(jiān)控進程日志的配置過程

可以看到內(nèi)容是一模一樣的,就這樣,我們達到了監(jiān)控日志的目的!


然后就是根據(jù)這個item設(shè)定trigger和action,這些東西看個人具體需求我也就不贅述了。這里說幾個常用的trigger:

{Template名稱:keyi名稱].str(ABC)}=1 表示如果匹配到“ABC”關(guān)鍵字,表達式為真。這個與上面那個key合用就是在ERROR的語句里是否含有ABC,如果有,就是真。
{Template名稱:keyi名稱].nodata(60)}=0 表示60秒內(nèi)有數(shù)據(jù)產(chǎn)生則表達式為真,即60秒內(nèi)如果沒有新數(shù)據(jù)了,則表達式為假。


具體的trigger表達式:{Template App Java logs:log[/app/wutongshu/monitorlog/error.log,ERROR,,,skip,].str(ERROR)}=1  and  {Template App Java logs:log[/app/wutongshu/monitorlog/error.log,ERROR,,,skip,].nodata(60)}=0


當然有人會有提問,日志文件在實際生產(chǎn)的時候是常常需要被切割的,比如這個mrs.log,總不會永無止境的保存下去,而是會按時間/大小切成mrs.log.1、mrs.log.2...,既然這樣怎么辦?那么就要用logrt這個key,這個key是支持正則表達式的,針對上面這個情況我們只需要把原來的key改成“l(fā)ogrt[/絕對路徑/mrs.log.*,ERROR,,,,]”就可以啦。


但是要注意哦,logrt只能給文件增加正則表達式,對路徑是不支持的~~


如果配置了之后,監(jiān)控日志沒有正確運行,調(diào)日志看一下,如果日志顯示:

 14523:20171214:152022.958 active check "監(jiān)控日志的KEY" is not supported: Cannot obtain information for file "要監(jiān)控的文件名.log": [13] Permission denied

那么需要把文件所在的路徑都要開r權(quán)限。


如果日志里有:

  2972:20171214:144031.449 no active checks on server [zabbix服務(wù)器IP:10051]: host [服務(wù)器hostname] not found

那么檢查在agentd.conf里的Hostname與web端的host的名稱是否一致,這個必須要一致,不然active模式是不會好使的(非active模式?jīng)]關(guān)系)。




向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI