什么是API接口
API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。簡單的說,就是通過某一預(yù)先定義的渠道讀/寫數(shù)據(jù)的方式。
定義: 所有的API接口都是一個網(wǎng)址
把某些功能封裝好,方便其他人調(diào)用。
調(diào)用的人可以很方便使用這些功能,并且可以不需要知道這些功能的具體實(shí)現(xiàn)過程。
API規(guī)范
去調(diào)接口的時候要不要做一個驗證
為什么要做驗證
合法性
我們一個接口沒有做驗證
- 安全性的問題 ip 攻擊ip 破解密碼 信息被泄露出去 信息可以賣錢的
- 負(fù)載的問題 ddos強(qiáng)度 要低幾倍的情況下面 www.baidu.com nginx靜態(tài)頁面處理 retrun index.html api返回一個 去數(shù)據(jù)庫里面查詢 處理 json 處理的字典 返回給用戶 字典 轉(zhuǎn)換成json html 字典 htmljson 高很多倍
驗證碼的處理
早前的API接口 每次去請求的時候 請帶上你的user password
賬號密碼是不是會泄露
最流行的API接口請求方式
第一次請求的時候 user password
return key
以后每次請求用這個key 驗證
之前CMDB 一個key只能使用30s
api接口調(diào)用
第一步 獲取我們的身份證令牌
第二步 參考官方文檔 來創(chuàng)建我們的用戶
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
自動化監(jiān)控的三種方式
zabbix agent 自動注冊
自動添加到監(jiān)控里面
vim /etc/zabbix/zabbix_agentd
需要改的地方
ServerActive=10.0.0.1
端口10051
hostname=linux-nde2.example.com 唯一
hostMetadata=模板 自動注冊需要添加的模板
HostMetadataItem=監(jiān)控項目 system.uname 167行 zabbix_get -s 10.0.0.1 system.uname
我這個metadata可以通過監(jiān)控項目來設(shè)定
設(shè)置一個動作來觸發(fā)條件
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 自動發(fā)現(xiàn)
discovery 自動發(fā)現(xiàn)
在server 端修改
一般的接口都是這樣的 發(fā)送賬號密碼請求一個key 通過這個key去進(jìn)行其他的請求
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之間設(shè)置一個主動模式
zabbix proxy 自動發(fā)現(xiàn)
通過zabbix api接口 去添加一臺機(jī)器
hostid hostname
修改zabbix監(jiān)控系統(tǒng)里面主機(jī)的名字 流程
可以使用ip來獲取zabbix里面的信息
- 業(yè)務(wù)庫當(dāng)中獲取所有的Ip
- 獲取zabbix里面所有的ip
- 循環(huán)我們的業(yè)務(wù)庫當(dāng)中的ip 來獲取所有的hostid
第一個步驟 獲取我們的token
第二個請求API接口 來更新我們hostname
作業(yè) 先做業(yè)務(wù)庫和zabbix里面庫的對比 然后再更新我們的數(shù)據(jù)
腳本里面2種方法都有