前言

API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。

应用程序接口(Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。

API的大致工作流如下:

  • (1)API 采用JSON-RPC实现。这意味着调用任何函数,都需要发送POST请求,输入输出数据都是以JSON格式

  • (2)准备JSON对象,它描述了你想要做什么(创建主机,获取图像,更新监控项等)

  • (3)获取JSON格式响应

1.编写脚本,查看zabbix监控系统的接口

(1)编写脚本

[root@server1 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null
}' http://172.25.6.1/zabbix/api_jsonrpc.php

(2)给脚本加可执行权限

[root@server1 ~]# chmod +x zabbix-api
[root@server1 ~]# ll zabbix-api
-rwxr-xr-x 1 root root 263 Jun 15 16:40 zabbix-api

(3)执行脚本

[root@server1 ~]# ./zabbix-api
{"jsonrpc":"2.0","result":"dd2d65b7c821dce2ffb8afddc7748fbc","id":1}[root@server1 ~]#   ##这种格式的不方便查看


(4)添加json模块,以json的方式输出

(5)再次执行脚本后,result后的字符改变(这是身份令牌),后边会用到,随便选一个即可(第一次执行后生成的令牌也行)

2.获取zabbix主机和被监控的主机信息

[root@server1 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0","method": "host.get","params": {"output": ["hostid","host"],"selectInterfaces": ["interfaceid","ip"]},"id": 1,"auth": "ed47e36be32f48daed48b675bca83220"
}' http://172.25.6.1/zabbix/api_jsonrpc.php | python -m json.tool


执行脚本。结果如下

[root@server1 ~]# ./zabbix-api
{"id": 1,"jsonrpc": "2.0","result": [{"host": "Zabbix server","hostid": "10084","interfaces": [{"interfaceid": "1","ip": "127.0.0.1"}]},{"host": "server2","hostid": "10264",                     ##后面我们将在脚本中用hostid对监控主机进行删除等操作"interfaces": [{"interfaceid": "3","ip": "172.25.6.2"}]},{"host": "server3","hostid": "10265","interfaces": [{"interfaceid": "4","ip": "172.25.6.3"}]}]
}

3.删除zabbix监控中的主机

删除之前在监控系统中关闭自动注册和自动发现动作


此时监控群组中共三个主机

编写删除命令的脚本

[root@server1 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0","method": "host.delete",          ##删除"params": ["10264"              ##server2的hostid],"id": 1,"auth": "ed47e36be32f48daed48b675bca83220"
}' http://172.25.6.1/zabbix/api_jsonrpc.php | python -m json.tool

执行结果如下

浏览器监控系统中查看到server2被删除

4.添加主机

(1)在浏览器的监控系统中获知groupid和templateid(因为要往脚本中写入),方法如下

  • groupid
    【配置】—>【主机模板】–>点击【Linux servers】–>可以在地址栏中URL末尾看到groupid

  • templateid
    【配置】 —> 【模板】----> 找到【Template OS Linux】 -->可以在地址栏中URL末尾看到templateid

(2)写脚本

[root@server1 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0","method": "host.create","params": {"host": "server2","interfaces": [{"type": 1,"main": 1,"useip": 1,"ip": "172.25.6.2","dns": "","port": "10050"}   ],  "groups": [{"groupid": "2"}   ],  "templates": [{"templateid": "10001"}]},"id": 1,"auth": "ed47e36be32f48daed48b675bca83220"
}' http://172.25.6.1/zabbix/api_jsonrpc.php | python -m json.tool

执行脚本

可以在浏览器中查看到server2添加进去了,刷新过一会可以看到server2的ZBX变成绿色

运维监控系统——使用API在zabbix监控系统中查看,创建及删除监控主机相关推荐

  1. 一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解

    一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解 "如果你是一个经验丰富的运维开发人员,那么你一定知道ganglia.nagios.zabbix.elastics ...

  2. 服务器无法拖动文件复制文件,​IT服务器运维:艾锑人为您整理Win10系统下移动、复制、删除文件需要管理员权限的解决方法...

    影响我们一生百倍差距的四大效应 观察者效应:你的世界是什么样是由你的观察决定的. 这个效应是在[潜能突破]研习营课堂上发现的,我们有个练习叫三生万物,每个人都会成为一次观察者角色,当大家在成为其他角色 ...

  3. api查询所有记录 zabbix_利用zabbix—API查询zabbix监控项历史数据、均值、峰值详细讲解...

    前言: 查询监控项历史数据,最常见的办法就是在页面查询,但是页面只能展现最近的500个数值,如果要查询历史数据比较久远或要形成数据表格进行分析,这个办法就不适用了,但是利用zabbix-API查询za ...

  4. 运维小菜鸟随笔Linux入门级操作命令(更新中。。。)

    运维小菜鸟随笔&Linux入门级操作命令 从事实施运维行业已三年有余,却从未系统的学习过Linux,一直停留在有问题找百度的境界.近日终于痛下决心,系统的梳理一下Linux相关知识,顺便看看, ...

  5. 使用API 在zabbix监控系统中查看,创建及删除监控主机

    继上一篇博客,部署好zabbix监控 什么是API: API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基 ...

  6. 无监控,不运维:解读企业全栈式监控运

    企业应用由单体应用系统向分布式系统的发展趋势已经不可逆转.十年前 "SOA" 大频率的出现在软件系统招标技术架构要求书中,相信用不了多久"微服务架构"也会被频繁 ...

  7. 「电力行业」告别传统运维,拥抱全链路“云上监控”

    随着电力行业信息化建设的快速发展,尤其是随着云原生和分布式技术在电力信息化建设中的大范围推广和应用,电力行业云上业务系统变得更加复杂,业务系统内部节点和互相之间的健康关联影响也越来越动态多变,给资源管 ...

  8. 运维实操——kubernetes(十九)k8s中部署Prometheus、监控nginx、HPA自动伸缩

    k8s中部署Prometheus.监控nginx.HPA自动伸缩 1.什么是Prometheus? 2.k8s中部署Prometheus监控 3.prometheus监控nginx 4.基于prome ...

  9. 运维老鸟谈生产场景如何对linux系统进行分区?

    ######################################################### #生产场景如何对linux系统进行分区? #date:2011-07-31 #作者: ...

最新文章

  1. jackson的jar包下载
  2. 2020 8月 每日花语
  3. HDU 1427 速算24点
  4. 解决Git中的fatal: refusing to merge unrelated histories
  5. ubuntu php7 memcache,linux上安装php7 memcache扩展
  6. Web框架——Flask系列之蓝图Blueprint(二十一)
  7. 一文讲清K8s如何改变美团的云基础设施
  8. mysql5.6.39编译安装_源码编译安装MySQL-5.6/mysql-5.6.39------踩了无数坑,重装了十几次服务器才会的,不容易啊!...
  9. Docker容器中常见的十种误区
  10. Bugfree 搭建
  11. Proteus 8 Professional 下载安装教程
  12. FreeRTOS 入门
  13. 日志系统模块基础、C语言实现一个日志模块、zlog日志模块基础
  14. python免费自学爬虫_看这里!免费python网络爬虫一站通
  15. Namecheap共享虚拟主机使用体验
  16. python 重定向 网址错_Python URL重定向问题
  17. MATLAB给多组条形图添加误差棒
  18. 07-20210305在WIN10下通过USB口给华为海思Hi3516DV300刷机(鸿蒙系统)
  19. rospy基础--001_talker_listener
  20. 计算机教学的素质目标,课堂教学素质目标【试论教师的专业素质与中学计算机课堂教学】...

热门文章

  1. pandas读取多个文件内容为dataframe、并合并为一个dataframe、pandas创建仅有列标签而内容为空的dataframe
  2. pandas使用cut函数基于分位数进行连续值分箱(手动计算分位数)处理后出现NaN值原因及解决
  3. python使用箱图法和业务规则进行异常数据处理并检查预测使用的数据特征是否有字段缺失的情况并补齐
  4. Keras构建前馈神经网络并使用callbacks输出acc以及loss曲线(训练接、验证集)及效果可视化
  5. python-九九乘法表
  6. 论文笔记 Inter-sentence Relation Extraction with Document-level Graph Convolutional Neural Network
  7. matlab节约里程法_芳烃产业链里程碑:唐山旭阳30万吨/年苯乙烯项目一次性开车成功...
  8. pyinstaller打包venv(虚拟环境),.pyd文件,非.py文件打包
  9. python sys.path.append(),sys.path.insert()用法
  10. 人脸对齐--Robust face landmark estimation under occlusion