zabbix API笔记

python简单demo

输出id为111主机的主机群组信息

import requests
import json
request_headers = {"Content-Type": "application/json"}
zabbix_url = "http://xxx.xxx.xxx.xxx:8080/zabbix/api_jsonrpc.php"
get_hostgroup_from_host_data = {"jsonrpc": "2.0", "method": "hostgroup.get", "params": { "output": "extend", "hostids": "111" },"auth": "xxx","id": 1}
response = requests.post(zabbix_url, data=json.dumps(get_hostgroup_from_host_data), headers=request_headers).json()
print(response["result"])

案例

导出以windows和linux开头的模板

使用output筛选字段,使用search筛选结果

get_template_request_data = {"jsonrpc": "2.0", "method": "template.get", "params": { "output": [ "templateid", "host" ], "search": { "host": ["windows", "linux"] }, "searchByAny": True, "startSearch": True }, "auth": "xxx", "id": 1}

导出id为10111的主机群组

{"jsonrpc": "2.0", "method": "configuration.export", "params": { "options": { "groups": [ "10111" ]}, "format": "xml", "prettyprint": True }, "auth": "xxx", "id": 1}

查询所有用户sendto信息(手机号)

{ "jsonrpc": "2.0", "method": "user.get", "params": { "output": ["name"], "selectMedias": ["mediatypeid", "sendto", "active"]}, "auth": "xxx", "id": 1}

为群组中主机名称增加前缀

为群组中所有名称以“HOST”开头的主机增加前缀“PREFIX”

import requests
import json

request_headers = {"Content-Type": "application/json"}
zabbix_url = "http://192.168.106.205:8080/api_jsonrpc.php"
get_hostgroup_from_host_data = {"jsonrpc": "2.0", "method": "host.get", "params": { "output": ["hostid", "host", "name"], "groupids": "null" },"auth": "xxxxxxxxxxxxxxxx","id": 1}
update_host_data = {"jsonrpc": "2.0", "method": "host.update", "params": { "hostid": "null", "host": "null", "name": "null" },"auth": "xxxxxxxxxxxxxxxx","id": 1}

get_hostgroup_from_host_data["params"]["groupids"] = ["24"]
hosts_in_group = requests.post(zabbix_url, data=json.dumps(get_hostgroup_from_host_data), headers=request_headers).json()["result"]

for host in hosts_in_group:
    if host["host"].startswith("HOST"):
        newname = "PREFIX-" + host["host"]
        #print("old name:" + host["host"] + "; new nema:" + newname)
        update_host_data["params"]["hostid"] = host["hostid"]
        update_host_data["params"]["host"] = newname
        update_host_data["params"]["name"] = host["name"]
        result = requests.post(zabbix_url, data=json.dumps(update_host_data), headers=request_headers).json()
        print(result)

注意:如果不指定主机的可见名称(即[“params”][“name”]),则会默认设置为主机名称,假如不想可见名称发生变化,则必须同步修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值