目录
1. API
1.1 API的简介
- API定义
API(Application Programming Interface),应用程序编程接口,是一些预先定义的函数;
目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部的工作机制的细节;
简单来说,API就是对外的接口,利用API可以直接到达软件硬件内部来进行操作。 - Zabbix中的API
Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。
- Zabbix API 是基于 Web 的 API,作为 Web 前端的一部分提供。
a. API 包含一组独立的方法
b. 客户端和 API 之间的请求和响应通过使用 JSON 格式进行编码
- Zabbix API 的方法
检索 | get |
---|---|
创建 | create |
更新 | update |
删除数据 | delete |
- Zabbix API的作用
zabbix拥有完善的API,基于JSON RPC提供资产,主机,主机组,监控项,告警等方面的接口。
在做运维自动化时,需要用API功能对zabbix二次开发。
Zabbix API为批量操作,第三方软件集成以及其他作用提供可编程接口。
Zabbix API提供两项主要功能:
1>远程管理Zabbix配置
2>远程检索配置和历史数据 - Zabbix API 的应用
Zabbix API 允许我们通过编程的方式检索和修改 Zabbix 的配置,并提供对历史数据的访问。
它广泛应用于:
创建新的应用程序来使用 Zabbix
将 Zabbix 与第三方软件集成
自动执行常规任务 - Zabbix API的工作流程如下:
API采用JSON-RPC实现这意味着调用任何函数,都需要向POST请求,输入输出数据都是以JSON格式
转备JSON对象,它描述了你想要做什么,比如创建主机、获取JSON格式响应.
1.2 API的应用
1.2.1 验证 API 请求
user.login | 用户登录 |
---|---|
host.get(create | delete |
hostgroup.get(create|delete|update) | 主机组操作 |
item.get(create|delete|update) | 监控项目操作 |
history.get | 历史数据查询 |
event.get | 事件查询 |
trigger.get | 触发器查询 |
[root@server1 ~]# ./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://192.168.1.11/zabbix/api_jsonrpc.php | python -m json.tool
[root@server1 ~]# chmod +x zabbix-api
[root@server1 ~]# ./zabbix-api
{
"id": 1,
"jsonrpc": "2.0",
"result": "dcfd223f76cc30d944133cc07f2300b5"
}
1.2.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"
],