如果要实现自动检查linux是否有漏监控的情况,并实现新增服务器自动添加监控的功能. 可以通过zabbix api查询信息, 和ansible检查结果进行比对,根据比对差值进行操作
脚本
#!/usr/bin/env python
#coding:utf8
from pyzabbix import ZabbixAPI
def login():
zapi= ZabbixAPI("http://zabbix.xxxxxxxxxxx.cn/zabbix") #登录zabbix
zapi.login("lfhapi","密码") #替换密码
#print("Connected to Zabbix API Version %s" % zapi.api_version())
return zapi
if __name__ == "__main__":
zapi=login()
dict1 = {}
#获取所有的模板ID
for t in zapi.template.get(output="extend"):
dict1[t["templateid"]] = t["name"]
#print(dict1)
#通过模板ID 去把该模板下的服务器列表输出
for list_t in dict1:
if not zapi.host.get(templateids=list_t):
print(list_t,"这个模板下的服务器为空")
else:
print("现在输出模板ID为:",list_t,"模板是:",dict1[list_t],"配置的服务器如下")
for h in zapi.host.get(templateids=list_t):
print(h['host'],"|",h['name'])
运行结果
C:\Users\ws\AppData\Local\Programs\Python\Python36\python.exe C:/Users/ws/PycharmProjects/py2019/zabbix_test_ops.py
现在输出模板ID为: 10001 模板是: Template OS Linux 配置的服务器如下
Zabbix server | Zabbix server
现在输出模板ID为: 10047 模板是: Template App Zabbix Server 配置的服务器如下
Zabbix server | Zabbix server
10048 这个模板下的服务器为空
10050 这个模板下的服务器为空
10060 这个模板下的服务器为空
10065 这个模板下的服务器为空
10066 这个模板下的服务器为空
10067 这个模板下的服务器为空
10068 这个模板下的服务器为空
10069 这个模板下的服务器为空
10070 这个模板下的服务器为空
10071 这个模板下的服务器为空
10072 这个模板下的服务器为空
10073 这个模板下的服务器为空
10074 这个模板下的服务器为空
10075 这个模板下的服务器为空
10076 这个模板下的服务器为空
10077 这个模板下的服务器为空
10078 这个模板下的服务器为空
10079 这个模板下的服务器为空
10081 这个模板下的服务器为空
10082 这个模板下的服务器为空
10083 这个模板下的服务器为空
10088 这个模板下的服务器为空
10089 这个模板下的服务器为空
10091 这个模板下的服务器为空
10093 这个模板下的服务器为空
10094 这个模板下的服务器为空
10095 这个模板下的服务器为空
10096 这个模板下的服务器为空
10097 这个模板下的服务器为空
10098 这个模板下的服务器为空
10099 这个模板下的服务器为空
10100 这个模板下的服务器为空
10101 这个模板下的服务器为空
10102 这个模板下的服务器为空
10103 这个模板下的服务器为空
10104 这个模板下的服务器为空
现在输出模板ID为: 10105 模板是: xxxxxxxx mysql 配置的服务器如下
192.168.10.112 | mysql主 192.168.10.112
192.168.10.71 | mysql从 192.168.10.71