在公司规模很庞大的时候,每次都手动添加监控主机将会很麻烦,我们可以利用zabbix的api去批量添加监控主机 本次我们将实现用一台主机虚拟出100台主机,并通过api的方式自动添加监控主机 掌握本次方法,无需要了解python,也不需要写python脚本 1.获取批量添加主机的api可以从官网取到 https://www.zabbix.com/documentation/4.0/zh/manual/api/reference/host/create { "jsonrpc": "2.0", "method": "host.create", "params": { "host": "192.168.81.180", "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "192.168.81.180", "dns": "", "port": "10050" } ], "groups": [ { "groupid": "15" } ], "templates": [ { "templateid": "10271" } ] }, "auth": "'$token'", "id": 1} api必要字段说明 解释: “host”: “192.168.81.160”, #主机名称 “interfaces”: [ { “type”: 1, #使用agent客户端 “main”: 1, #默认 “useip”: 1, #ip地址 “ip”: “192.168.81.160”, #agent的地址 “dns”: “”, “port”: “10050” #agent端口 } ], “groups”: [ { “groupid”: “15” #主机群组的id } ], “templates”: [ { “templateid”: “10271” #模板id } ]
2.创建一百台服务器我们虽然没有一百台服务器,但是我们可以创建100个网卡,且都在一台机器上,有一百个ip即可 [root@k8s-master ~]# for i in {100..200}doifconfig ens33:$i 192.168.81.$iifconfig ens33 updone 
3.编写批量添加主机的脚本3.1.将一百台机器的ip写到文件中[root@k8s-master ~]# echo 192.168.81.{100..200} | xargs -n1 > /root/host.txt 3.2.在机器上安装zabbix-agent[root@k8s-master ~]# yum -y install zabbix-agent[root@k8s-master ~]# vim /etc/zabbix/zabbix_agentd.conf Server=192.168.81.250[root@k8s-master ~]# systemctl restart zabbix-agent 3.3.编写批量添加主机的脚本[root@k8s-master ~]# vim zabbix_host_creates.sh #!/bin/bash#批量添加zabbix主机#登陆token=`echo $json | grep result | awk -F'"' '{print $10}'`#批量添加主机for ip in `cat /root/host.txt`docurl -s -X POST -H 'Content-Type: application/json' -d '{ "jsonrpc": "2.0", "method": "host.create", "params": { "host": "'$ip'", "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "'$ip'", "dns": "", "port": "10050" } ], "groups": [ { "groupid": "15" } ], "templates": [ { "templateid": "10271" } ] }, "auth": "'$token'", "id": 1}' http://192.168.81.250/zabbix/api_jsonrpc.php | python -m json.tooldone 3.4.执行脚本[root@k8s-master ~]# chmod a+x zabbix_host_creates.sh [root@k8s-master ~]# sh zabbix_host_creates.sh 脚本输出 
3.5.查看监控主机是否批量创建成功全部为有效状态 
下载地址: Docker 删除及清理镜像的方法 使用Docker部署打包发布springboot项目 |