什么是API接口

API(Application Programming Interface,运用程序编程接口)是一些预先定义的函数,目的是供应运用程序与开拓职员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部事情机制的细节。
大略的说,便是通过某一预先定义的渠道读/写数据的办法。

定义: 所有的API接口都是一个网址

zabbixphpapi运维笔记之zabbixAPI接口简略介绍 SQL

把某些功能封装好,方便其他人调用。

调用的人可以很方便利用这些功能,并且可以不须要知道这些功能的详细实现过程。

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种方法都有