1 意义和目的,在这里不讨论,只讨论是实现方法
2 学习的前提,你会编写常规的key! 和理解模板,item知识
系统环境
master端:
1
2
|
[root@master zabbix_agentd.conf.d] # ifconfig eth0| sed -n 's#.*inet addr:\(.*\) B.*#\1#gp'
192.168.100.10 |
1
2
3
|
client端 [root@slave zabbix] # ifconfig eth0| sed -n 's#.*inet addr:\(.*\) B.*#\1#gp'
192.168.100.13 |
分两块,zabbix-server 的web界面 进行创建,和agent端脚本实现
1
2
3
4
5
6
7
8
|
[root@slave ~] # grep -i "Include" /etc/zabbix/zabbix_agentd.conf | egrep -v "^#|^$"
Include= /etc/zabbix/zabbix_agentd .conf.d/
[root@slave ~] # cat /etc/zabbix/zabbix_agentd.conf.d/web_site_discovery.conf
#web sitec code UserParameter = web.site.discovery, python /etc/zabbix/scripts/web_site_code_status .py
UserParameter = test . test , sh /etc/zabbix/scripts/test .sh
UserParameter= web.site.code[*], sh /etc/zabbix/scripts/check_web_code .sh $1
[root@slave ~] #
|
第一步、在agent上看如何写自动发现的key,web.site.discovery 脚本
1
2
3
4
5
6
7
8
9
10
|
[root @slave ~] # cat /etc/zabbix/scripts/web_site_code_status.py
#!/usr/bin/env python #encoding=utf8 import os import json r = file( '/etc/zabbix/scripts/web.txt' )
devices = [] for f in r.readlines():
devices.append({ "{#SITENAME}" : f.strip()})
print json.dumps({ 'data' : devices}, sort_keys=True, indent= 4 )
|
1
2
3
4
5
|
[root@slave ~] # cat /etc/zabbix/scripts/web.txt
www.baidu.com www.sina.com.cn www.pingan.com.cn www.weibo.com |
zabbix中low level discovery 的key的返回值是一个Json格式。且格式一定要如下k/v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[root@slave ~] # python /etc/zabbix/scripts/web_site_code_status.py
{ "data" : [
{
"{#SITENAME}" : "www.baidu.com"
},
{
"{#SITENAME}" : "www.sina.com.cn"
},
{
"{#SITENAME}" : "www.pingan.com.cn"
},
{
"{#SITENAME}" : "www.weibo.com"
}
]
} [root@slave ~] #
|
验证在master上使用zabbix-get 测试是否这个key有效
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@master zabbix_agentd.conf.d] # /usr/local/zabbix/bin/zabbix_get -s 192.168.100.13 -k web.site.discovery
{ "data" : [
{
"{#SITENAME}" : "www.baidu.com"
},
{
"{#SITENAME}" : "www.sina.com.cn"
},
{
"{#SITENAME}" : "www.pingan.com.cn"
},
{
"{#SITENAME}" : "www.weibo.com"
}
]
} |
根据上面,值,这个key已经生效!
第二步,在master的web端界面上创建一个自动发现(在你需要的模板上创建)
a.
b. 在创建一个自动发现的item(注意区分其他正常的item)
呈现的状态:
第三步、把agent这台主机关联到这个模板上(这个你因该要懂得操作)
这个主机的itme中会出现
本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1766027如需转载请自行联系原作者
cuizhiliang