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手动添加相同监控项的痛点,批量添加主机,添加模板在下面章节也会一一介绍的,感谢大家支持。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了