me小怪兽

导航

zabbix调用api实现主机批量添加监控项和触发器

准备操作:

1.先认证api

2.获取到hostid

3.给主机批量添加监控端口和触发器

#!/bin/bash
port="
80  需要监控的端口
8080
3306 " i=0
for node_port in $port;do name=( nginx    对应端口定义名称 tomcat
mysql
) #
echo ${name[i++]} me=${name[i++]} curl -s -XPOST -H 'Content-Type: application/json-rpc' -d ' { "jsonrpc": "2.0", "method": "item.create", "params": { "name": "'$me'_'${node_port}' ",      设置监控项的名称 "key_": "net.tcp.listen['${node_port}']",    设置监控项的key "hostid": "10397",            设置主机id "type": 0, "value_type": 3, "interfaceid": "7",            设置接口接口标识符 "delay": 30 }, "auth": "81326093a70bc5fa130d2bd7fb369632",  设置认证令牌 "id": 1 }' http://192.168.12.2:20002/api_jsonrpc.php | python -m json.tool  设置zabbix_server地址 curl -s -XPOST -H 'Content-Type: application/json-rpc' -d ' { "jsonrpc": "2.0", "method": "trigger.create", "params": { "description": " '$me'_'${node_port}'_error on {HOST.NAME}",    设置触发器的名称 "expression": "{192.168.12.3:net.tcp.listen['${node_port}'].last()}=0",  设置触发器的表达式 "priority": "2",                          设置事件等级 "recovery_mode": "1", "recovery_expression": "{192.168.12.3:net.tcp.listen['${node_port}'].last()}=1"  设置触发器的恢复表达式 }, "auth": "81326093a70bc5fa130d2bd7fb369632",          设置认证令牌 "id": 1 }' http://192.168.12.2:20002/api_jsonrpc.php | python -m json.tool   设置zabbix_server地址 done

 

以上就是给某个主机批量添加监控项和触发器,解决zabbix手动添加相同监控项的痛点,批量添加主机,添加模板在下面章节也会一一介绍的,感谢大家支持。

posted on 2022-02-25 17:47  me小怪兽  阅读(777)  评论(0编辑  收藏  举报