首頁 > 軟體

教你使用zabbix api批次新增數百臺監控主機的方法

2022-03-06 13:00:30

在公司規模很龐大的時候,每次都手動新增監控主機將會很麻煩,我們可以利用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批次新增主機內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com