{server_name:item_name.func.operator.condition}
一旦condition(条件)触发,则item状态改变
触发器之间可以存在依赖关系,即itemA触发,则itemB也触发.
2.动作action
action是触发器触发后,应该采取的动作.
其中动作除了可以详细设定执行的动作(如发邮件,重启服务)外,还可以设定触发的第二条件,如维护期间不执行,仅为触发器的执行.
最重要的是动作可以升级,如动作执行多少次后,触发器依然没有恢复,则执行下一步动作.例如邮件从发送给管理员-->CTO
4.宏设置
宏其实就类似于变量.分为全局宏和局部宏
全局宏在管理-通用-分类(宏)
局部宏在各个模板中定义.
5.
5-1.自定义items_key
tiems_key分为带参数和不带参数,格式:UserParameter=itemkey,command
![191738417934486.gif](https://i-blog.csdnimg.cn/blog_migrate/ae41f884e0307a43db2600e390ddc623.gif)
![191738417934486.gif](https://i-blog.csdnimg.cn/blog_migrate/ae41f884e0307a43db2600e390ddc623.gif)
不
带参数犹如如下例子所示:
UserParameter=memory.free,/usr/bin/free | awk '/^Mem:/{print $4}'
![191738417934486.gif](https://i-blog.csdnimg.cn/blog_migrate/ae41f884e0307a43db2600e390ddc623.gif)
带参数犹如如下例子所示:
UserParameter=key(*),command
这里的*可以调用server端key()括号中所写的匹配项,而command可以通过$1,$2依次调用*的参数,不过,如果command自身就包含了$1和$2,比如awk的print $1,那么这些$1和$2需要转变为$$1,$$2.
5-2.
测试key的可用性,在zabbix_server端使用zabbix_get命令
zabbix_get -s agentd_IP -k "key_name"
# zabbix_get -s 127.0.0.1 -k "voice.exist[10.88.5.8,Voice]"
1
在zabbix_agentd端使用zabbix_agentd
# zabbix_agentd -t voice.exist[10.88.5.8,Voice]
voice.exist[10.88.5.8,Voice] [t|1]
附:
nginx_status监控($1是nginx网址ip,$2是端口)
UserParameter=Nginx.active[*],/usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/{print $NF}'
UserParameter=Nginx.accepted[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^ /{print $$1}'
UserParameter=Nginx.handld[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^ /{print $$2}'
UserParameter=Nginx.request[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^ /{print $$3}'
UserParameter=Nginx.read[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^Read/{print $$2}'
UserParameter=Nginx.write[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^Read/{print $$4}'
UserParameter=Nginx.wait[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^Read/{print $$6}'
windows进程状态监控,需要配合snmp($1是win主机IP,$2是进程名)
#!/bin/bash
#/usr/local/zabbix/share/zabbix/externalscripts/win_process_exist.sh
process=`snmpwalk -v 2c -c jzzz $1 .1.3.6.1.2.1.25.4.2.1.2 | awk '/'$2'/{print $NF}'`
if [[ $process == '' ]];then
echo 0;
else
echo 1;
fi
# cat /etc/zabbix/zabbix_agentd.conf.d/win_process.conf
UserParameter=voice.exist[*],/usr/local/zabbix/share/zabbix/externalscripts/win_process_exist.sh $1 $2
![191738423714829.gif](https://i-blog.csdnimg.cn/blog_migrate/46a6152ec98c162730872fe5a9d17d9d.gif)
![191738426526616.gif](https://i-blog.csdnimg.cn/blog_migrate/2264339cd1f96a2bc2ff9b4391a95361.gif)