abbix api批量添加主机

网友投稿 368 2022-06-06


在公司规模很庞大的时候,每次都手动添加监控主机将会很麻烦,我们可以利用zabbix的api去批量添加监控主机

本次我们将实现用一台主机虚拟出100台主机,并通过api的方式自动添加监控主机

掌握本次方法,无需要了解python,也不需要写python脚本

1.获取批量添加主机的api

可以从官网取到

https://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}
do
ifconfig ens33:$i 192.168.81.$i
ifconfig ens33 up
done

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`
do
curl -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.tool
done

3.4.执行脚本

[root@k8s-master ~]# chmod a+x zabbix_host_creates.sh 
[root@k8s-master ~]# sh zabbix_host_creates.sh

脚本输出

3.5.查看监控主机是否批量创建成功

全部为有效状态



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:EF使用Fluent API配置案例
下一篇:header控制api数据源读写分离
相关文章

 发表评论

暂时没有评论,来抢沙发吧~