Zabbix

Zabbix 自動刪除無法訪問的主機

  • May 20, 2016

我需要在 zabbix 中自動刪除我無法訪問/關閉的主機。所有主機都使用活動代理進行監控,因此在我的情況下,網路發現自動刪除並不方便/有用。

我編寫了一個小的 python 腳本來使用 zabbix-api 從 zabbix 中刪除/刪除主機。但是我想要實現的目標如下:

**1 :**如果主機超過 2 小時不可達,則查找所有主機

**2:**標記他們的狀態並更新要刪除的主機列表

3:24小時循環後刪除所有這些主機。

如果萬一第 2 步是不可能的,我現在對第 1 步和第 3 步非常滿意。

我無法找到 zabbix 的正確 api 響應來辨識停機或無法訪問超過一個小時或 xyz 時間的主機。

**PS:**我已經提到了 URL1URL2但仍然沒有運氣。

我使用觸發值從 zabbix 中刪除主機,檢查以下程式碼是否也適用於您:

from zabbix_api import ZabbixAPI, Already_Exists
z = ZabbixAPI(server="https://zabbix.example.com/zabbix")
z.login("exampleuser", "exampleuser")
for trigger in z.trigger.get({"output": [ "triggerid", "description", "priority" ], "filter": { "value": 1 }, "sortfield": "priority", "sortorder": "DESC"}):
   if trigger["description"] == 'Zabbix agent on {HOST.NAME} is unreachable for 5 minutes':
       trigmsg = z.trigger.get({"triggerids": trigger["triggerid"], "selectHosts": "extend"})
       for tm in trigmsg:
           for l in tm['hosts']:
               print l['name'], l['hostid']
               print "Will kill host " + l['hostid'] + " " + l['host'] + trigger["description"]
               z.host.delete( [int(l['hostid'])] )

引用自:https://serverfault.com/questions/777944