zabbix 現在之所以那麼流行,個人感覺跟zabbix 強大的API有一個很大的關係,利用API可以幫我們完成很多事情:
1、獲取相關組,主機信息。
2、比如有人喜歡獲取歷史數據重新出圖。
3、添加刪除主機,綁定刪除模板。
4、添加刪除維護週期
這裏我使用pipy提供的zabbix_client模塊來進行,這樣就不用我們自己去寫登錄函數,只要在模塊開始指定用戶名密碼即可:
1、安裝zabbix_client:
pip install zabbxi_client
2、API管理腳本,替換成自己用戶名密碼即可:
#coding:utf-8 import time from zabbix_client import ZabbixServerProxy class Zabbix(): def __init__(self): self.zb = ZabbixServerProxy("http://192.168.10.100/zabbix") self.zb.user.login(user="Admin", password="zabbix") ############## 查詢組所有組獲取組id ############### def get_hostgroup(self): data = { "output":['groupid','name'] } ret = self.zb.hostgroup.get(**data) return ret ########### 通過組id獲取相關組內的所有主機 ###############
def get_hostid(self,groupids=2): data = { "output": ["hostid", "name"], "groupids": groupids } ret = self.zb.host.get(**data) return ret ########## 通過獲取的hostid查找相關監控想itemid ################### def item_get(self, hostids="10115"): data = { "output":["itemids","key_"], "hostids": hostids, }
ret = self.zb.item.get(**data) return ret ######### 通過itemid(傳入itemid和i0表示flast類型)獲取相關監控項的歷史數據 ########### def history_get(self, itemid, i ,limit=10): data = { "output": "extend", "history": i, "itemids": [itemid], "limit": limit } ret = self.zb.history.get(**data) return ret ###############添加主機並且指定到組(傳入主機名,IP地址和組ID)##################### def add_zabbix_host(self,hostname="test_zabbix",ip="192.168.10.100",groupid="2"): data = { "host": hostname, "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": ip, "dns": "", "port": "10050" } ], "groups": [ { "groupid": groupid } ] } ret = self.zb.host.create(data) return ret #####################查看現有模板####################### def get_template(self): datalist = [] datadict={} data = { "output":["templateid","name"] } ret = self.zb.template.get(data) for i in ret: datadict[i['name']] = i['templateid'] datalist.append(datadict) return datalist #################### 關聯主機到模板################################## def link_template(self, hostid=10156, templateids=10001): data = { "hostid":hostid, "templates":templateids } ret = self.zb.host.update(data) return ret ################### 添加維護週期,,###################################### def create_maintenance(self,name="test",hostids=10156,time=2): data = { "name": name, "active_since": 1458142800, "active_till": 1489678800, "hostids": [ hostids ], "timeperiods": [ { "timeperiod_type": 0, "period": 3600 } ] } ret = self.zb.maintenance.create(data) self.host_status(10130, 1) return ret ################獲取維護週期,,######################### def get_maintenance(self): data = { "output": "extend", "selectGroups": "extend", "selectTimeperiods": "extend" } ret = self.zb.maintenance.get(data) return ret ##############獲取維護週期之後,通過傳入maintenanceid刪除維護週期########### def del_maintenance(self,maintenanceids): return self.zb.maintenance.delete(maintenanceids) #########################添加維護週期時候需要吧zabbix_host設置成非監控狀態################## def host_status(self, hostid, status): data = { "hostid":hostid, "status":status } return self.zb.host.update(data) ###########通過hostids刪除主機id,順帶也刪除模板######### def host_del(self,hostids=10155): return self.zb.host.delete(hostids) if __name__ == "__main__": zabbix_server = Zabbix() #print zabbix_server.get_hostgroup() #print zabbix_server.get_hostid() #print zabbix_server.item_get(10156) #data = zabbix_server.history_get("24889",0) #print zabbix_server.get_hostgroup() #print zabbix_server.add_zabbix_host() #data = zabbix_server.get_template() #print data[0]['Template OS Linux'] #print zabbix_server.link_template() #print zabbix_server.create_maintenance() # print zabbix_server.host_del(10155) #print zabbix_server.get_maintenance() print zabbix_server.del_maintenance(15)
zabbix視頻請移步:http://www.roncoo.com/details/fb3050a5b34b42f39ccad83ebebc89c1
zabbix自動化課程目錄(需求更新中):
1、zabbix生產環境如何使用
2、saltstack批量部署zabbix_agent
3、zabbix API簡單使用講解
4、web UI講解
5、開始監控之添加一個簡單的linux監控
6、zabbix 強大的內置key講解
7、內置key的使用、 端口、用戶數、磁盤讀取狀態出圖
8、trigger表達式學習,實現用戶登錄數,端口檢查告警
9、zabbix郵件告警設置與維護週期
10、zabbix自定義Key添加,tcp狀態模板編寫
11、自定義監控之、監控nginx解析與實現
12、自定義監控之php-fpm監控
13、自定義監控之mysql狀態監控
14、自定義監控之緩存服務器memcached,redis監控
15、自動化之saltstack管理zabbix,批量推送key生效
16、zabbix自動發現綁定刪除模板,自動註冊
17、zabbix lld發現講解以及端口發現監控告警出圖
18、zabbix lld 發現web站點以及批量獲取狀態碼
19、zabbix lld複習和監控磁盤的運行狀況
20、zabbix生成環境規範和按月生成報表資源統計
21、微信公衆號告警