当前位置: 代码网 > 服务器>服务器>Linux > 详解如何调用zabbix API获取主机

详解如何调用zabbix API获取主机

2024年05月18日 Linux 我要评论
前言zabbix 作为企业级的系统和网络监控方案,对于中小型公司来说基本可以很好的满足对机器的监控需求,因为其部署方便,操作简单深受现在各个互联网公司喜爱,所以现在基本的互联网公司监控用zabbix的

前言

zabbix 作为企业级的系统和网络监控方案,对于中小型公司来说基本可以很好的满足对机器的监控需求,因为其部署方便,操作简单深受现在各个互联网公司喜爱,所以现在基本的互联网公司监控用zabbix的非常多,当你安装好zabbix服务端 后,如果启动自动注册功能,在所有客户机安装后会自动在zabbix平台上被监控到,但这里有个问题,如果你机器数量非常少,如果还能数的过来那基本没什么问题,但如果你机器上千台了,这个时候那些机器被监控中,那些没被监控,查起来就没那么方便了,所以日常运维中经常发现的问题就是某台机器故障了但没报警,经查发现这台机器zabbix客户端因为某种原因导致没有被服务端监控到,像这种问题怎么办呢?其实最简单的方案就是从zabbix里获取所有被监控的服务器列表,然后跟运维资产数据库去比对,如果数量一致,那说明监控没漏机器,如果比对不上,就把对不上的ip发出来再报个警就可以了,整体逻辑就是这样。

zabbix api是在1.8版本中开始引进并且已经被广泛应用。所有的zabbix移动客户端都是基于api,甚至原生的web前端部分也是建立在它之上。zabbix api 中间件使得架构更加模块化也避免直接对数据库进行操作。它允许你通过json rpc协议来创建、更新和获取zabbix对象并且做任何你喜欢的操作【当然前提是你拥有认证账户】。

zabbix api提供两项主要功能:

  • 远程管理zabbix配置
  • 远程检索配置和历史数据

我们今天用zabbix api获取被监控的所有机器列表

代码如下

#!/usr/bin/evn python
 
import requests
import json
 
zabix_root = 'http://10.0.1.29/zabbix'
url = zabix_root + '/api_jsonrpc.php'
 
# user.login
payload = {
 "jsonrpc" : "2.0",
 "method" : "user.login",
 "params": {
 'user': 'admin',
 'password':'',
 },
 "auth" : none,
 "id" : 0,
}
headers = {
 'content-type': 'application/json',
}
req = requests.post(url, json=payload, headers=headers)
auth = req.json()
 
# host.get
payload = {
 "jsonrpc" : "2.0",
 "method" : "host.get",
 "params": {
 'output': [
 'hostid',
 'name'],
 },
 "auth" : auth['result'],
 "id" : 2,
}
res2 = requests.post(url, data=json.dumps(payload), headers=headers)
res2 = res2.json()
 
for host in res2['result']:
 with open('host.txt', 'a+') as f:
 f.write(host['name'] + '\n)

脚本一共分二部分,第一部分是用户登录,登录后然后获取主机列表,最后写到一个文件里去,所以脚本运行的结果是生成一个所有被监控的ip列表,通过这个列表你就可以去跟你的资产库信息去对比了,还有这个脚本用的requests,所以看起来要清爽很多,代码比较简单,就是二个post就不做太多解释了。

总结

以上就是关于调用zabbix api获取主机的全部内容了,喜欢的小伙伴可以在此基础上修改成合适自己业务的脚本,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关文章:

  • Zabbix3.0邮件报警配置

    我们搭建好zabbix服务器创建了监控项和触发器之后,如何使用邮箱达到报警功能?本文使用mail作为邮件发送工具。下面将介绍,如何安装和配置邮箱。话不多说,就是干!我们分两步,第一…

    2024年05月18日 服务器
  • Zabbix监控Linux主机设置方法

    说明:zabbix监控服务端已经配置完成,现在要使用zabbix对linux主机进行监控。具体操作:以下操作在被监控的linux主机进行,这里以centos 6.x系统为例。一、配…

    2024年05月18日 服务器
  • Zabbix系统端口监控状态

    一、监控系统zabbix -添加端口监控对于进程和端口的监控,可以使用zabbix自带的key进行监控,只需要在server端维护就可以了,相比于nagios使用插件去监控的方式更…

    2024年05月18日 服务器
  • zabbix通过percona插件监控mysql的方法

    1.安装php脚本运行环境yum install -y php php-mysql 2.加载官方percona模板[root@cat /]# wget https://www.pe…

    2024年05月18日 服务器
  • 在centos7安装zabbix3.0的超详细步骤记录

    前言最近公司部分业务迁移机房,为了更方便的监控管理主机资源,决定上线zabbix监控平台。本文主要给大家介绍了关于centos7安装zabbix3.0的相关步骤,下面话不多说了,来…

    2024年05月18日 服务器
  • Linux shell环境下Zabbix Api的使用

    Linux shell环境下Zabbix Api的使用

    在linux shell环境下直接调用就可以,根据官网所述:在访问zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com