zabbix_api使用

批量创建监控主机

# coding: utf-8
import requests
import json
import sys


headers = {'Content-Type': 'application/json'}
api_url = 'http://<zabbix_web_ip>/api_jsonrpc.php'

def token():
    #在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。
    login ={
            "jsonrpc": "2.0",
            "method": "user.login",
            "params": {
                "user": "<user>",
                "password": "<password>"
            },
            "id": 1,
    }
    response_data = requests.post(api_url,json.dumps(login),headers=headers).json()
    return response_data["result"]

def create(token):
    #批量创建agent主机
    for i in range(63,100):
        create_host = {
        "jsonrpc": "2.0",
        "method": "host.create", #调用方法
        "params": {
            "host": f"agent{i}", #主机在server唯一标识,需要和agent配置文件中的保持一致
            "name": f"test-172.26.123.{i}",    #主机可见名
            "proxy_hostid": "10275", #关联proxy-active
            "interfaces": [ #接口信息
                {
                    "type": 1, #表示使用agent客户端
                    "main": 1,  #作为默认接口
                    "useip": 1, #使用该主机接口的主机IP地址进行连接
                    "ip": f"172.26.123.{i}",
                    "dns": "",
                    "port": "10050"
                }
            ],
            "groups": [
                {
                    "groupid": "15" #添加到wt组
                }
            ],
            "templates": [
                {
                    "templateid": "10001" #关联Template OS Linux模板
                }
            ],
        },
        "auth": f"{token()}",
        "id": 1
        }

        create_response = requests.post(api_url,json.dumps(create_host),headers=headers).json()
        print(create_response)

if __name__ == '__main__':
    create(token)

批量删除监控主机

import requests
import json

headers = {'Content-Type': 'application/json'}
api_url = 'http://<zabbix_web_ip>/api_jsonrpc.php'

def token():
   #在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。
   login ={
           "jsonrpc": "2.0",
           "method": "user.login",
           "params": {
               "user": "<user>",
               "password": "<password>"
           },
           "id": 1,
   }
   response_data = requests.post(api_url,json.dumps(login),headers=headers).json()
   return response_data["result"]

def get_hostgroup(*args):
   hostgroup = []
   #获取主机组中的主机
   group = {
   "jsonrpc": "2.0",
   "method": "host.get",
   "params": {
       "groupids": 15, #拿出指定主机组id中的主机
   },
   "auth": f"{token()}",
   "id": 1
   }
   group_data = requests.post(api_url,json.dumps(group),headers=headers).json()
   for i in group_data['result']:
       hostgroup.append(i)

   return hostgroup

def delete_host(group):
   #删除组中的主机
   host_l = []
   for i in group:
       hid = i['hostid']
       #跳过以下主机id
       if int(hid) == 10280:
           continue
       elif int(hid) == 10289:
           continue
       else:
           host_l.append(hid)

   delete_host = {
         "jsonrpc": "2.0",
         "method": "host.delete",
         "params": host_l,
         "auth": f"{t}",
         "id": 1
       }
   txt = requests.post(api_url,json.dumps(delete_host),headers=headers).text
   print(txt)

if __name__ == '__main__':
   t = token()
   g = get_hostgroup(t)
   d = delete_host(g)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值