zabbix 之 low level discovery

僅提供一個思路,怎麼去實現這種功能
1:Configuration--Templates客戶端配置
1.1:找到zabbix目標客戶端,編寫腳本獲取須要的數據
vim web_site_code_status.py
#!/usr/bin/env python
#coding:utf-8
import os 
import jsonpython

r = open('/etc/zabbix/web.txt','r').read().split()web

devices = []json

for devpath in r:
        device = os.path.basename(devpath)
        devices += [{'{#SITENAME}':device}]
print json.dumps({'data':devices},sort_keys=True,indent=7,separators=(',',':')) 
####腳本不要放在Include=/etc/zabbix/zabbix_agentd.conf.d/ 開啓的這個目錄下
        由於zabbix啓動的時候會直接加載這個目錄下面的全部文件,而咱們寫的腳本不
        符合key:value格式,加載會報錯
配置文件加入:
UserParameter=web.site.discovery,/etc/zabbix/web_site_code_status.py
重啓服務
在服務端作測試
測試:./zabbix_get  -s IP -k web.site.discovery
輸出:{
       "data":[
              {
                     "{#SITENAME}":"www.baidu.com"
              },
              {
                     "{#SITENAME}":"sina.com"
              }
       ]
}
輸出如上面的json格式就能夠了vim

1.2:根據上面的輸出來作判斷,好比我這裏作的是檢測網址是否能正常打開
直接在客戶端配置文件裏面作配置,也能夠本身寫腳本,運行腳本返回一個值就行了
UserParameter=web.site.code[*],curl -o /dev/null -s -w %{http_code} http://$1
$1就是web.site.code這個key後面中括號帶的變量,由於我這裏只有一個,因此檢測就只有一個$1curl

重啓客戶端服務
切換到服務端
測試:./zabbix_get  -s IP -k web.site.code[www.baidu.com]
200
返回結果代表正常測試

2:客戶端前期準備工做完成,如今開始web界面的配置
2.1:Configuration--Templates
建立模板以及關聯主機url

 

 

 

2.2:建立Applications prototype

2.3:建立發現規則Discovery rules
這個key就是前面獲取json數據的key  web.site.discovery
而後指定腳本里面的宏變量來獲取數據code

2.4:在Discovery rules裏面建立Item prototypes 
$1,就是宏變量代入以後的值
key就是web.site.code[*],這不過*號用宏變量代替,獲取動態的值utf-8

2.5:在Discovery rules裏面建立Trigger prototypes 

2.6:在Discovery rules裏面建立Graph prototypes

到此配置完畢,根據你配置的檢測時間,去關聯的主機裏面查看有沒有生成對應的items,trigger,graph

相關文章
相關標籤/搜索