本实验是在Zabbix分布式监控实战(1)——认识zabbix,搭建Zabbix监控平台实验基础上进行的,已经配置好了zabbix-server和zabbix-agent主机,并在zabbix-web界面配置了自动注册。

文章目录

  • 一、认识API
    • 1、什么是Zabbix API
    • 2、Zabbix API提供的主要功能
    • 3、使用 JSON操作API
    • 4、API分类
    • 5、API常用接口
  • 二、配置Zabbix的API接口
    • 实验环境
    • 实验
      • 1、测试并获取身份令牌(user.login接口)
      • 2、使用身份令牌检索主机(host.get接口)
      • 3、尝试 api 添加删除主机(host.delete接口)
      • 4、使用 api 创建主机(host.create接口)

一、认识API

1、什么是Zabbix API

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

Zabbix API 开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。
Zabbix API 为批量操作、第三方软件集成以及其他作用提供可编程接口。

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

2、Zabbix API提供的主要功能

  1. 远程管理 Zabbix 配置
  2. 远程检索配置和历史数据
  3. 自动执行常规任务

3、使用 JSON操作API

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

Zabbix API由许多名义上分组的独立API方法组成。每个方法执行一个特定任务。例如,方法 host.create 隶属于 host 这个API分组 ,用于创建新主机。历史上,API分组有时被称为“类”。
大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据,但是某些API提供一套完全不同的一组方法。

4、API分类

根据单个或分布式平台上不同软件应用程序间的数据共享性能,可以将 API 分为四种类型:

  • 远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信。
  • 标准查询语言(SQL):是标准的访问数据的查询语言,通过通用数据库实现应用程序间的数据共享。
  • 文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。
  • 信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享。

5、API常用接口

user.login,用户登录
host.get(create|delete|update),主机操作
hostgroup.get(create|delete|update),主机组操作
item.get(create|delete|update),监控项目操作
history.get,历史数据查询
event.get,事件查询
trigger.get,触发器查询

二、配置Zabbix的API接口

实验环境

主机名 ip 服务 版本
server1 172.25.1.1 zabbix-server,zabbix-web,mariadb-server rhel7.3
server2 172.25.1.2 zabbix-agent rhel7.3
server3 172.25.1.3 zabbix-agent rhel7.3

实验

在server1上:

1、测试并获取身份令牌(user.login接口)

步骤一:编写zabbix-api文件,获取身份令牌

vim zabbix-apicurl -XPOST -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0",  #标准的JSON RPC参数以标示协议版本
"method": "user.login", #获取接口方法名,用户登陆
"params": {"user": "Admin",   #zabbix系统监控的用户名和密码
"password": "zabbix"
},
"id": 1,
"auth": null   #用户的身份令牌,因为还没有获取所以为null
}' http://172.25.1.1/zabbix/api_jsonrpc.php   #api_jsonrpc.php是调用api的php脚本,可以安装可视化前端目录查看


步骤二:运行脚本

chmod +x zabbix-api
./zabbix-api


步骤三:上述显示的结果不清晰,加入 python 的 json 模块

 vim zabbix-apicurl -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.1.1/zabbix/api_jsonrpc.php | python -m json.tool  #加入 -s 参数和 json 模块


步骤四:运行脚本

 ./zabbix-api

2、使用身份令牌检索主机(host.get接口)

步骤一:编写zabbix-api文件检索主机,将上述查看到的result令牌添加到auth后

vim zabbix-apicurl -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": "cc06660254d4bb747fdcb0dbb4a44609"
}' http://172.25.1.1/zabbix/api_jsonrpc.php | python -m json.tool


步骤二:执行脚本

./zabbix-api

3、尝试 api 添加删除主机(host.delete接口)

步骤一:先在web界面禁用之前配置的自动注册

步骤二:编辑zabbix-api文件,调用host.delete接口

vim zabbix-api curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10267"   #server2的hostid
],
"id": 1,
"auth": "cc06660254d4bb747fdcb0dbb4a44609"
}' http://172.25.1.1/zabbix/api_jsonrpc.php | python -m json.tool


步骤三:运行脚本

步骤四:在web界面查看,server2已经被删除

4、使用 api 创建主机(host.create接口)

步骤一:在web界面查看Groupid

步骤二:在web界面查看templatesid


步骤三:编辑zabbix-api文件,调用host.create接口创建server2主机

vim zabbix-apicurl -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.1.2",
"dns": "",
"port": "10050"
}
],
"groups": [
{"groupid": "2"  #上面查看到的Groupid号
}
],
"templates": [
{"templateid": "10001"  #上面查看到的templatesid}
]
},
"id": 1,
"auth": "cc06660254d4bb747fdcb0dbb4a44609"
}' http://172.25.1.1/zabbix/api_jsonrpc.php | python -m json.tool


步骤四:运行脚本

./zabbix-api


步骤五:web界面查看,server2已经添加进去了

Zabbix分布式监控(2)——Zabbix的API接口相关推荐

  1. Zabbix分布式监控实战(2)—— Zabbix的API接口的使用方法

    本实验是在<Zabbix分布式监控实战(1)--Zabbix简介及Zabbix监控平台的搭建>实验基础上进行的,已经配置好了zabbix-server和zabbix-agent主机,并在z ...

  2. (7)Zabbix分布式监控proxy实现

    分布式监控概述 分布式监控,主要用在与机房分布在多个城市,在各地机房部署zabbix proxy服务器,由zabbix proxy服务器收集各个机房的agent数据,然后将这些数据主动或被动发送到za ...

  3. Zabbix监控(十六):分布式监控-Zabbix Proxy

    说明:Zabbix支持分布式监控,利用Proxy代理功能,在其他网络环境中部署代理服务器,将监控数据汇总到Zabbix主服务器,实现多网络的分布式监控,集中监控. 1.分布式监控原理 Zabbix p ...

  4. Zabbix分布式监控(zabbix-proxy)的配置关键点

    Zabbix Proxy简介 Zabbix Proxy是实现Zabbix分布式监控的重要组成部分,是连接Zabbix Agent和Zabbix Server的"中间人"." ...

  5. zabbix分布式监控部署proxy安装

    之前写过一篇源码安装zabbix2.2.9版本,server端安装文档: http://mofansheng.blog.51cto.com/8792265/1679728 下面分享一下zabbix分布 ...

  6. Zabbix 分布式监控

    Zabbix 分布式监控 ### 1.介绍 分布式监控概述:proxy and node 1.Zabbix 的三种架构 Server-agent Server-Node-agent Server-Pr ...

  7. Zabbix分布式监控实战(一)——Zabbix 5.0监控平台搭建与被监控端的添加

    一.Zabbix概述 1.Zabbix简介  zabbix是一个基于WEB界面的提供 分布式系统监控以及网络监控功能 的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营: ...

  8. zabbix——分布式监控系统

    目录 zabbix概述 zabbix 是什么 zabbix 监控原理 zabbix常见的五个程序 zabbix端口号 安装 zabbix 5.0 部署 zabbix 服务端 部署 zabbix 客户端 ...

  9. zabbix分布式监控被动模式代理

    分布式:所谓的分布式,其实指的是,多台分布在不同位置的zabbix主机,通过 间接模式 合理的组合在一起,实现监控数据的统一管理方式.适用场景:多机房.多区域.多网络等 简介:Zabbix 代理是一种 ...

最新文章

  1. SmartAuditor----IT访问审计解决方案
  2. 机器人行业专利构建与维护刻不容缓,专利研发需下苦功!
  3. 解决 WIn7 启动时“你有等待写入光盘的文件”
  4. 洛谷P2312解方程
  5. windows server 2012 --安装远程桌面服务后无法远程的问题
  6. 一分钟了解微服务的好处和陷阱
  7. Linux实现黑客帝国背景炫酷效果
  8. matlab自动识别粗大误差,剔除粗大误差
  9. 数学——对数公式log常识回顾
  10. kali下如何生成密码字典(在线)
  11. 一维码二维码的生成及打印
  12. Large-Scale Order Dispatch in On-Demand Ride-Hailing Platforms: A Learning and Planning Approach论文精读
  13. HTML5基本结构及标签
  14. 从初级程序员到CEO,汤鹏与时代碰撞出的那些“火花”
  15. 攻防世界高手进阶区 ——forgot
  16. Kabuki即将推出VR购物平台,或是低配版Buy+
  17. ADsafe净网大师配置白名单
  18. html中高度自动调整,HTML 高度自适应
  19. 第八届蓝桥杯(软件类)决赛C/C++B组真题题解
  20. 本机不安装Oracle客户端,使用PL/SQL Developer和 Instant Client 工具包连接oracle 11g远程数据库

热门文章

  1. 叶面积指数(LAI)介绍以及遥感估算方法
  2. am3358——GPMC——参考网上驱动
  3. 骨传导耳机好不好,骨传导耳机有什么危害
  4. 40岁失业高级码农自曝:阿里P9,攒了1.5亿..……
  5. android notification源码,通告机制Notification
  6. 删除新版UniAccess Agent 办公室监控软件的方法
  7. python分子化学模拟_#分子模拟#MDTraj分子模拟python包(一)
  8. 思路决定出路,格局决定结局
  9. 【通信】NIO实现+源码解析
  10. 常见函数求导及求导法则