教你使用zabbix api批量添加數百臺監控主機的方法

在公司規模很龐大的時候,每次都手動添加監控主機將會很麻煩,我們可以利用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}
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.查看監控主機是否批量創建成功

全部為有效狀態

到此這篇關於利用zabbix api批量添加數百臺監控主機的文章就介紹到這瞭,更多相關abbix api批量添加主機內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: