什么是API接口
API(Application Programming Interface,运用程序编程接口)是一些预先定义的函数,目的是供应运用程序与开拓职员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部事情机制的细节。大略的说,便是通过某一预先定义的渠道读/写数据的办法。
定义: 所有的API接口都是一个网址
把某些功能封装好,方便其他人调用。
调用的人可以很方便利用这些功能,并且可以不须要知道这些功能的详细实现过程。
API规范
去调接口的时候要不要做一个验证
为什么要做验证
合法性
我们一个接口没有做验证
安全性的问题 ip 攻击ip 破解密码 信息被透露出去 信息可以卖钱的
负载的问题 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
验证
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 }
要求API 获取serssion id auth key
zabbix server agentd之间设置一个主动模式
zabbix proxy 自动创造
通过zabbix api接口 去添加一台机器
hostid hostname
修正zabbix监控系统里面主机的名字 流程
可以利用ip来获取zabbix里面的信息
业务库当中获取所有的Ip
获取zabbix里面所有的ip
循环我们的业务库当中的ip 来获取所有的hostid
第一个步骤 获取我们的token
第二个要求API接口 来更新我们hostname
作业 先做业务库和zabbix里面库的比拟 然后再更新我们的数据
脚本里面2种方法都有