您好,登錄后才能下訂單哦!
監控日志是運維人員日常生活里必不可少的一個環節,而且日志是一個進程執行的重中之重,由于日志記錄了程序運行的吃喝拉撒所有事件,所以在故障排除的時候,結合日志找障礙點是必不可少的!而且我們也會要主動去被提醒日志里的幾個重點詞語,比如“ERROR!”,比如“WARINIG!”,比如“Alarm!”,比如“女排姑娘好樣的你們真給國家爭氣,看這些女排妹子真喜歡一個個都是大長腿美顏外加D罩杯”。而zabbix作為一個優秀的監控軟件,就可以當以上幾個關鍵詞出現在日志的第一時間或報警或記錄。
舉個例子,假設我們要監控一個進程日志,這個進程叫mrs,這個是我公司內部用的是一個程序。而目標就是當這個mrs.log日志里出現ERROR的時候,就要報警,通知悲摧的運維和開發pl們。
首先我們先建立一個item,如圖:
注意一下,這里的type是active,因為被監控的服務器是需要主動把日志送給server端的。而key寫的是log[/mnt/hswx/mrs/logs/mrs.log,ERROR,,,skip,],我這里詳細說一下。
log這個key的格式是這樣的:log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>],里面各項意思如下:
file:文件名,寫絕對路徑; regexp:要匹配內容的正則表達式,或者直接寫你要檢索的內容也可以,例如我想檢索帶ERROR關鍵詞的記錄; encoding:編碼相關,留空即可; maxlines:一次性最多提交多少行,這個參數覆蓋配置文件zabbxi_agentd.conf中的’MaxLinesPerSecond’,我們也可以留空; mode:默認是all,也可以是skip,skip會跳過老數據; output:輸出給zabbix server的數據。可以是\1、\2一直\9,\1表示第一個正則表達式匹配出得內容,\2表示第二個正則表達式匹配錯的內容。
由于在這里我們只需要挑出"ERROR"的語句,后面的那些七七八八都用不上,所以就直接寫log[/mnt/hswx/mrs/logs/mrs.log,ERROR,,,skip,]就好了。如果要挑選“ERROR 或者 error”,那么就是log[/mnt/hswx/mrs/logs/mrs.log,(ERROR|error),,,skip,]
日志的格式選擇“log”,每10秒鐘一次更新,保存90天,這些都是老話常談。至于Log time format寫成yyyy-MM-dd hh:mm:ss是規范了紀錄時間的格式,我們采用的格式就是“年-月-日:小時-分鐘-秒”,一會就會看到效果。
寫完之后,保存,返回到Monitoring---lastest Data,找到我們剛剛建立的這個item,
點擊右側的history,就可以看到這樣的內容了。
這里的local time就是我們設置item時候的那個log time format,它也的確是按著“年-月-日:小時-分鐘-秒”這個格式記錄的。
我們可以看到value里說18:39:53有一個ERROR日志,那么登陸到這臺服務器上,去服務器的mrs.log里看一下是否有這樣一模一樣的日志內容呢?
可以看到內容是一模一樣的,就這樣,我們達到了監控日志的目的!
然后就是根據這個item設定trigger和action,這些東西看個人具體需求我也就不贅述了。這里說幾個常用的trigger:
{Template名稱:keyi名稱].str(ABC)}=1 表示如果匹配到“ABC”關鍵字,表達式為真。這個與上面那個key合用就是在ERROR的語句里是否含有ABC,如果有,就是真。 {Template名稱:keyi名稱].nodata(60)}=0 表示60秒內有數據產生則表達式為真,即60秒內如果沒有新數據了,則表達式為假。
具體的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
當然有人會有提問,日志文件在實際生產的時候是常常需要被切割的,比如這個mrs.log,總不會永無止境的保存下去,而是會按時間/大小切成mrs.log.1、mrs.log.2...,既然這樣怎么辦?那么就要用logrt這個key,這個key是支持正則表達式的,針對上面這個情況我們只需要把原來的key改成“logrt[/絕對路徑/mrs.log.*,ERROR,,,,]”就可以啦。
但是要注意哦,logrt只能給文件增加正則表達式,對路徑是不支持的~~
如果配置了之后,監控日志沒有正確運行,調日志看一下,如果日志顯示:
14523:20171214:152022.958 active check "監控日志的KEY" is not supported: Cannot obtain information for file "要監控的文件名.log": [13] Permission denied
那么需要把文件所在的路徑都要開r權限。
如果日志里有:
2972:20171214:144031.449 no active checks on server [zabbix服務器IP:10051]: host [服務器hostname] not found
那么檢查在agentd.conf里的Hostname與web端的host的名稱是否一致,這個必須要一致,不然active模式是不會好使的(非active模式沒關系)。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。