zabbix-API接口

什么是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)接口的時候要不要做一個驗證
為什么要做驗證
合法性
我們一個接口沒有做驗證

  1. 安全性的問題 ip 攻擊ip 破解密碼 信息被泄露出去 信息可以賣錢的
  2. 負(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

  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之間設(shè)置一個主動模式
zabbix proxy 自動發(fā)現(xiàn)
通過zabbix api接口 去添加一臺機(jī)器

hostid hostname
修改zabbix監(jiān)控系統(tǒng)里面主機(jī)的名字 流程
可以使用ip來獲取zabbix里面的信息

  1. 業(yè)務(wù)庫當(dāng)中獲取所有的Ip
  2. 獲取zabbix里面所有的ip
  3. 循環(huán)我們的業(yè)務(wù)庫當(dāng)中的ip 來獲取所有的hostid

第一個步驟 獲取我們的token
第二個請求API接口 來更新我們hostname

作業(yè) 先做業(yè)務(wù)庫和zabbix里面庫的對比 然后再更新我們的數(shù)據(jù)
腳本里面2種方法都有

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Zabbix簡介 Zabbix官方網(wǎng)站Zabbix中文文檔 本文系統(tǒng)環(huán)境是CentOS7x86_64, Zabbi...
    Zhang21閱讀 8,086評論 0 37
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • iOS網(wǎng)絡(luò)架構(gòu)討論梳理整理中。。。 其實(shí)如果沒有APIManager這一層是沒法使用delegate的,畢竟多個單...
    yhtang閱讀 5,259評論 1 23
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,973評論 6 342
  • 終于斷斷續(xù)續(xù)把老羅的2014年的演講《一個理想主義者的創(chuàng)業(yè)故事》看完了。將近三個小時說實(shí)話挺長的,但老羅就是有這種...
    點(diǎn)點(diǎn)DDD閱讀 1,706評論 8 24