zabbix API的好处就不讲了(懒癌发作,不想罗列) 搜索github上这方面的资源,还真是不少,pyzabbix 是其中比较不错的一个,封装了requests/json包,这让自己写脚本更轻松了。
pyzabbix给了很多例子来说明如何做查询,你可以根据此例子和zabbix官方提供的API关键字段来做自己的查询。
摘个其中的例子:
1
2
3
4
5
6
from pyzabbix import ZabbixAPI
zapi = ZabbixAPI("http://zabbixserver.example.com")
zapi.login("zabbix user", "zabbix pass")
print("Connected to Zabbix API Version %s" % zapi.api_version())
for h in zapi.host.get(output="extend"):
print(h['hostid'])
"extend" 是必须的参数,这个也是zabbix api必须的,参看这里(我这里看的是3.0的版本,后面也是一样,可以根据自己安装的zabbix版本切换)。
那么我们来参照这个例子来写一个,查询所有的视图的名称。
首先去这里把 API的"Method reference"展开,找到"screen"这一栏。
我们要用的方法就是 screen.get,点击进去,可以看到request参数和方法:
1
2
3
4
5
6
7
8
9
10
11
12
{
"jsonrpc": "2.0",
"method": "screen.get",
"params": {
"output": "extend",
"selectScreenItems": "extend",
"selectUsers": "extend",
"selectUserGroups": "extend",
"screenids": "26"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1}
我们要用到的就是"parmas"这一段。
1
2
3
4
# 登录就不讲了,看例子。这里是查询所有用户创建的screen
for s in zapi.screen.get(output="extend", selectScreenItems="extend"):
# 打印出screen的名称
print(s['name'])
so easy。
添加主机、视图等下回补充
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com