zabbix-API接口

什么是API接口

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。简单的说,就是通过某一预先定义的渠道读/写数据的方式。
定义: 所有的API接口都是一个网址
把某些功能封装好,方便其他人调用。
调用的人可以很方便使用这些功能,并且可以不需要知道这些功能的具体实现过程。

API规范
去调接口的时候要不要做一个验证
为什么要做验证
合法性
我们一个接口没有做验证

  1. 安全性的问题 ip 攻击ip 破解密码 信息被泄露出去 信息可以卖钱的
  2. 负载的问题 ddos强度 要低几倍的情况下面 www.baidu.com nginx静态页面处理 retrun index.html api返回一个 去数据库里面查询 处理 json 处理的字典 返回给用户 字典 转换成json html 字典 htmljson 高很多倍
    验证码的处理
    早前的API接口 每次去请求的时候 请带上你的user password
    账号密码是不是会泄露
    最流行的API接口请求方式
    第一次请求的时候 user password
    return key
    以后每次请求用这个key 验证
    之前CMDB 一个key只能使用30s

api接口调用

第一步 获取我们的身份证令牌
第二步 参考官方文档 来创建我们的用户

curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"id": 1}' http://172.16.102.19/api_jsonrpc.php
自动化监控的三种方式
zabbix agent 自动注册
自动添加到监控里面
vim /etc/zabbix/zabbix_agentd
需要改的地方
ServerActive=10.0.0.1
端口10051
hostname=linux-nde2.example.com 唯一
hostMetadata=模板 自动注册需要添加的模板
HostMetadataItem=监控项目 system.uname 167行 zabbix_get -s 10.0.0.1 system.uname
我这个metadata可以通过监控项目来设定
设置一个动作来触发条件
actions event source auto registration
Agent自动注册
conditions 条件
proxy=proxy-node1
host metadata like liunx
operations 操作
add host
add to host group
link to template

zabbix server 自动发现
discovery 自动发现
在server 端修改


一般的接口都是这样的 发送账号密码请求一个key 通过这个key去进行其他的请求
zabbix api
api_jsonrpc.php rpc json api

  1. 验证
https://www.zabbix.com/documentation/3.2/manual/api/reference/user/login  
curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"id": 1}' http://192.168.1.11/api_jsonrpc.php 

host

{  
"jsonrpc": "2.0",  
"method": "host.get",  
"params": {  
"output": ["hostid"],  
"selectGroups": "extend",  
"filter": {  
"host": [  
"Zabbix server"  
]  
}  
},  
"auth": "038e1d7b1735c6a5436ee9eae095879e",  
"id": 2  
}  
  1. 请求API 获取serssion id auth key

zabbix server agentd之间设置一个主动模式
zabbix proxy 自动发现
通过zabbix api接口 去添加一台机器

hostid hostname
修改zabbix监控系统里面主机的名字 流程
可以使用ip来获取zabbix里面的信息

  1. 业务库当中获取所有的Ip
  2. 获取zabbix里面所有的ip
  3. 循环我们的业务库当中的ip 来获取所有的hostid

第一个步骤 获取我们的token
第二个请求API接口 来更新我们hostname

作业 先做业务库和zabbix里面库的对比 然后再更新我们的数据
脚本里面2种方法都有

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Zabbix简介 Zabbix官方网站Zabbix中文文档 本文系统环境是CentOS7x86_64, Zabbi...
    Zhang21阅读 8,121评论 0 37
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,295评论 1 23
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,985评论 6 342
  • 终于断断续续把老罗的2014年的演讲《一个理想主义者的创业故事》看完了。将近三个小时说实话挺长的,但老罗就是有这种...
    点点DDD阅读 1,706评论 8 24