概述
application interface 支付宝: 微信支付:
第三方厂商想要,身份认证,有效期 金额 服务接口 https://zhifubao.com/zhifu.php
运维平台:jenkins,ELK,ansible,cobbler,zabbix(运维开发,dba,网络安全,大数据,云计算方向) 小:运维少,随便操作 大:误操作,引起业务宕机, centos7 Ubuntu window
api接口利用
zabbix-server服务有api接口,比如:grafana服务就是通过api接口于zabbix进行交互数据信息。如图所示:
zabbix服务api接口连接与官网执行请求链接一致。
http://192.168.111.66/zabbix/api_jsonrpc.php
根据官方上查询通过ap执行请求的方法,执行动作POST,需要带入content-tepy
执行请求的时候需要进行验证,加入json格式内容数据
从而获取token值
使用curl命令进行测试执行请求获取token值,注意登录账号、密码要正确,否则不对。
curl -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1,
"auth": null
}' http://192.168.111.66/zabbix/api_jsonrpc.php
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
如图所示:执行成功,结果返回一个token值。
官网提供创建监控主机提供的json格式内容
创建主机方法
根据上面已获取的token值,通过api接口直接创建一个监控主机
提示:分组的16和模板的10001直接在zabbix界面鼠标放在某一个分组和模板上就会直接显示数据,即可
#{"jsonrpc":"2.0","result":"1098020b1bacc8040d57d8cae39f6cde","id":1}
token='1098020b1bacc8040d57d8cae39f6cde'
curl -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "test",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "127.0.0.1",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "16"
}
],
"templates": [
{
"templateid": "10001"
}
]
},
"auth": "'$token'",
"id": 1
}' http://192.168.111.66/zabbix/api_jsonrpc.php
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
命令执行成功
zabbix界面显示创建监控主机成功,并且状态为绿色。
删除监控主机
根据官网提供的json内容删除监控主机数据内容
命令行中直接执行命令,删除监控主机。
curl -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10289"
],
"auth": "'$token'",
"id": 1
}' http://192.168.111.66/zabbix/api_jsonrpc.php
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
上面脚本中json格式内容里的10289就是如下图对应的数字,鼠标放在test上就会直接显示出来。
执行成功,如图所示:
zabbix界面上已经没有test监控主机,已经被删除,如图所示:
创建用户
官网提供json格式内容为创建用户
编辑命令进行测试,自定义用户名为yunlong.qu密码为123456
curl -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.create",
"params": {
"alias": "yunlong.qu",
"passwd": "123456",
"usrgrps": [
{
"usrgrpid": "7"
}
],
"user_medias": [
{
"mediatypeid": "1",
"sendto": [
"support@company.com"
],
"active": 0,
"severity": 63,
"period": "1-7,00:00-24:00"
}
]
},
"auth": "'$token'",
"id": 1
}' http://192.168.111.66/zabbix/api_jsonrpc.php
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
执行成功
zabbix界面显示创建用户成功
批量创建监控主机
自定义脚本
需要创建一个IP地址文件
echo 192.168.111.{1..3}|xargs -n1 >/root/list.txt
- 1
执行结果如下:
批量创建监控主机脚本如下:
#vim zabbix_host_creates.sh
#/bin/bash
#login
tok=`curl -s -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"}, "id": 1 }' http://192.168.111.66/zabbix/api_jsonrpc.php | python -m json.tool`
jsson=`echo "$tok" | grep result | awk -F '"' '{print $4}'`
#create hosts
for ip in `cat /root/list.txt`
do
curl -s -X POST -H 'Content-Type: application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": '\"$ip\"',
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": '\"$ip\"',
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"templates": [
{
"templateid": "10001"
}
]
},
"auth": '\"$jsson\"',
"id": 1
}' http://192.168.111.66/zabbix/api_jsonrpc.php |python -m json.tool
done
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
执行脚本成功
zabbix界面显示创建3台监控主机成功。