zabbix監控之自定義監控專案

2021-09-03 09:29:26 字數 3571 閱讀 2893

zabbix搭建好後,除了呼叫預設的模板,還要監控其它常用的程序,有redis,rsync,nginx,gunicorn,mysql等等都要進行監控。

自定義監控的配置過程如下:

1、編寫程序監控指令碼,獲取監控項的具體值

2、在zabbix_agentd.conf檔案中定義userparameter

3、在介面配置item,通過鍵值來控制傳參

4、檢視監控資料情況

5、配置觸發器,用來報警

6、宕服務測試

對於zabbix的安裝與郵件報警設定,可參考兩篇文章。

zabbix監控之基於lnmp環境安裝

zabbix監控之同時向多人郵件報警

1、編寫程序監控指令碼,獲取監控項的具體值

程序監控指令碼構思:

根據名稱或埠號來判定該程式是否存在。

如果傳參包含埠號,則根據埠號判斷程序,有返回1,沒有返回0。

如果不包含埠號,根據程序名判斷程序,有返回1,沒有返回0。

注:所編寫的指令碼只需要輸出具體值即可,無須像nagios那樣返回退出值,描述資訊等。

[root@yang python]# catprocess_port.py

#!/usr/bin/python

#auth:yangrong

#function:check process_nameor check process_port

#date:2014-8-18  

import os,sys,commands  

def help():

print "usage:  "

print "       %s process_name [process_port]"%sys.argv[0]

print "example: "

print "       %s mysql         ;if the process_nameexists, output 1, otherwise 0"%sys.argv[0]

print "       %s nginx  80     ;if the process_port exists, output 1,otherwise 0"%sys.argv[0]

print "       %s mysql  3306 "%sys.argv[0]  

def check_process_name():

process_num=commands.getstatusoutput("ps -ef|grep -v grep|grep -v%s|grep -v '\[%s\]'|grep %s|wc -l "%(sys.argv[0],sys.argv[1],sys.argv[1]))

#print process_num

if not process_num[1]:

print "0"

return

if int(process_num[1]) >= 1:

print "1"

else:

print "0"  

def check_process_port():

process_num=commands.getstatusoutput("netstat -lnt|grep -v grep|grep ':%s '|wc -l"%sys.argv[2])

if int(process_num[1]) >=1:

print "1"

else: 

print "0"  

###start execute

if len(sys.argv) == 2:

check_process_name()

sys.exit()

elif len(sys.argv) == 3:

check_process_port()

sys.exit()

else:

help()

sys.exit()

2、在zabbix_agentd.conf檔案中定義userparameter

在zabbix agent端修改zabbix_agentd.conf檔案:

使用者引數=鍵值

[*],命令

echo 'userparameter =check_process[*],/usr/bin/python /python/process_port.py $1 $2 ' >>/usr/local/zabbix/etc/zabbix_agentd.conf  #新增使用者引數

/etc/init.d/zabbix_agentdrestart    #重啟zabbixagent服務

agent端本機測試:

在中括號中內容為傳參內容,如果要傳參多個,用逗號隔開,第乙個則是$1,第二個則是$2。

[root@yang python]#/usr/local/zabbix/sbin/zabbix_agentd -t check_process[hello]

check_process[hello]                          [t|0]

#返回結果為0,代表hello程序不存在。

[root@yang python]#/usr/local/zabbix/sbin/zabbix_agentd -t check_process[mysql]

check_process[mysql]                          [t|1]

#返回結果為1,代表mysql程序存在。

[root@yang python]#/usr/local/zabbix/sbin/zabbix_agentd -t check_process[mysql,3306]

check_process[mysql,3306]                     [t|1]

測試可用,接下來在主介面配置監控

3、在介面配置item,通過鍵值來控制傳參

【組態】

à【主機】

à【專案】

à【建立監控項】

此處鍵值的用法和zabbix_agentd.conf中定義的userparameter一致。

4、檢視監控資料情況

【監控中】

à【最新資料】

最新資料為1,監控正常。

5、配置觸發器,用來報警

【組態】

à【主機】

à【觸發器】

à【建立觸發器】

6、宕服務測試

在agent client端,宕掉mysql。郵箱1分鐘後收到報警。

成功收到報警郵件,自定義監控及報警配置完成。

Zabbix 自定義監控項

vi usr local zabbix etc zabbix agentd.conf unsafeuserparameters 1 userparameter check process,echo top b n 1 grep mysqld awk f server 192.168.1.12 然後r...

zabbix自定義監控項

1 自定義key 有時候我們想讓被監控端執行乙個zabbix沒有預定義的檢測,zabbix的使用者自定義引數功能提供了這個方法。我們可以在客戶端配置檔案zabbix angentd.conf裡面配置userparameter.語法如下 userparameter key,command 引數 描述 ...

zabbix 自定義監控項

對於zabbix提供的監控項可能有時無法滿足我們的監控需求,這時我們就可以提供zabbix提供的自定義監控項功能來實現,我這裡寫一些我自己在使用過程中遇到的問題。vim etc zabbix zabbix agentd.conf 該位置以自己安裝的為準,沒找到可用locate搜尋一下 unsafeu...