23.zabbix-api使用_zabbix api

概述

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台监控主机成功。
在这里插入图片描述