查看“Zabbix 调用API 批量添加主机”的源代码
←
Zabbix 调用API 批量添加主机
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
[[category:ops]] [[category:zabbix]] =pre= 已有 salt [[Salt yum安装]] 可以见 批量添加 salt Salt-ssh批量自动安装被控端minion =批量添加zabbix agent= ==直接用cmd.run== salt 'prod-mq03' cmd.run 'yum install -y zabbix-agent' #systemctl restart zabbix-agent systemctl enable zabbix-agent ==zabbix state.sls == 有空要试一下 [https://www.cnblogs.com/LYCong/p/7879805.html salt 使用state文件来配置zabbix客户端文件] [https://blog.csdn.net/u011075143/article/details/78615691 salt 使用state文件来配置zabbix客户端文件] [https://www.cnblogs.com/Jackie-Chen/articles/10795003.html SaltStack批量安装zabbix-agent(yum安装)] [https://www.cnblogs.com/xiewenming/p/7713660.html SaltStack安装zabbix-agent-第九篇] [https://www.cnblogs.com/python-study/p/5504501.html SaltStack 使用pillar安装配置管理zabbix] [https://blog.csdn.net/reblue520/article/details/76286843 saltstack自动化运维系列⑦SaltStack实践配置管理安装zabbix] [https://www.cnblogs.com/LYCong/p/7879805.html salt 使用state文件来源码安装和配置zabbix客户端文件] =批量修改zabbix agent配置= <pre> Server=148.66.11.55 ServerActive=148.66.11.55 Hostname=prod-sns-mq01 sed -i '/^Hostname/ s/.*/Hostname=zabbix_hk/' /etc/zabbix/zabbix_agentd.conf #zbx hostname salt 'prod-mq03' cmd.run 'hostname' prod-mq03: prod-mq03 #这里可以取出 hostname 作变量 和作循环 Server=148.66.01.05 ServerActive=148.66.01.05 myhost=`salt 'prod-mq03' cmd.run 'hostname' |sed -n '2p' |awk '{print $1}'` salt 'prod-sns-mq02' cmd.run "sed -i '/^Hostname/ s/.*/Hostname=$myhost/' /etc/zabbix/zabbix_agentd.conf" #这个替换太多了 不太好写匹配 要如下添加 = or 直接 inser 就是了 salt 'prod-mq03' cmd.run "sed -i '/^Server=/ s/.*/Server=$Server/' /etc/zabbix/zabbix_agentd.conf" salt 'prod-mq03' cmd.run "sed -i '/^ServerActive=/ s/.*/ServerActive=$ServerActive/' /etc/zabbix/zabbix_agentd.conf" 注意 "" 结果不太对的 salt 'prod-sns-mq02' cmd.run "hostname |sed -n '2p' |awk '{print $1}'" prod-sns-mq02: </pre> =利用api批量添加主机 = zbx_server version 4.0 == get token 获得自己的token == <pre> cat aip.sh # -*- coding:utf-8 -*- import urllib2 import json #u zbx server ip or domain url = 'http://myzabbix.com/api_jsonrpc.php' header = {'Content-Type': 'application/json'} req = json.dumps( { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", "password": "123456" }, "id": 0, } ) def auth(): r = urllib2.Request(url=url, headers=header, data=req) response = urllib2.urlopen(r) token = json.loads(response.read()) print(token) if __name__ == '__main__': auth() #token {u'jsonrpc': u'2.0', u'result': u'1794bcbe6d818069bff5aa499a07a960', u'id': 0} </pre> [https://blog.51cto.com/freshair/2132748 Python调用Zabbix api之从入门到放弃——登录并获取身份验证令牌] [https://www.jianshu.com/p/7a014f316e35 zabbix api token获取] == 我们获取必要的相关信息 ,eg所有主机list信息== ===获得 groupid === <pre> cat getgroupid #获取指定groupid curl -s -X POST -H 'Content-Type:application/json' -d ' { "jsonrpc": "2.0", "method": "hostgroup.get", "params": { "output": "extend", "filter": { "name": [ "Zabbix servers", "Linux servers", "sns servers" ] } }, "auth": "1794bcbe6d818069bff5aa423a07a960", "id": 1 }' http://myzabbix.com//api_jsonrpc.php | python3 -m json.tool #这里的id一定是1 </pre> [https://www.cnblogs.com/zdoubly/p/9777122.html zabbix--api学习之路--get_hostgroup获取] https://www.zabbix.com/documentation/4.0/zh/manual/api/reference/hostgroup/get === templateid=== <pre> #!/bin/bash #跑在我的freebsd12 #获取指定groupid curl -s -X POST -H 'Content-Type:application/json' -d ' { "jsonrpc": "2.0", "method": "hostgroup.get", "params": { "output": "extend", "filter": { "name": [ "Zabbix servers", "Linux servers" ] } }, "auth": "1794bcbe6d818069bff5aa423a07a960", "id": 1 }' http://148.66.11.55/zabbix/api_jsonrpc.php | python3 -m json.tool #output "result": [ { "groupid": "2", "name": "Linux servers", "internal": "0", "flags": "0" }, { "groupid": "4", "name": "Zabbix servers", </pre> === hostadd=== https://www.zabbix.com/documentation/4.0/manual/api/reference/host/create <pre> 批量添加版 用法 分别添加 ip and hostname #!/bin/bash #注释中文导致不成功 #"host": "'prod-sns-mq02'", #这里一般改为你要的hostname IP=( 40.243.52 41.102.111 40.218.197 40.216.19 ) HOSTNAME=( prod-sns-php01 prod-sns-php02 prod-sns-mq01 prod-sns-mq03 ) myend=`expr ${#IP[@]} - 1` for no in `seq 0 ${myend}` #for no in `seq 2 3` #这个是手工决定 数量 do curl -s -X POST -H 'Content-Type:application/json' -d ' { "jsonrpc": "2.0", "method": "host.create", "params": { "host": "'${HOSTNAME[$no]}'", "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "'${IP[$no]}'", "dns": "", "port": "10050" } ], "groups": [ { "groupid": "2", "groupid": "16" } ], "templates": [ { "templateid": "10001" } ] }, "auth": "1794bcbe6d818069bff5aa4207a960", "id": 1 }' http://zbx.com/zabbix/api_jsonrpc.php | python -m json.tool done #要添加多一个群组 #!/bin/bash #注释中文导致不成功 #"host": "'prod-sns-mq02'", #这里一般改为你要的hostname IP=" 121.41.103.113 " for node_ip in ${IP}; do curl -s -X POST -H 'Content-Type:application/json' -d ' { "jsonrpc": "2.0", "method": "host.create", "params": { "host": "'prod-sns-es01'", "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "'${node_ip}'", "dns": "", "port": "10050" } ], "groups": [ { "groupid": "2", "groupid": "16" } ], "templates": [ { "templateid": "10001" } ] }, "auth": "1794bcbe6d818069bff5aa423a07a960", "id": 1 }' http://148.66.11.55/zabbix/api_jsonrpc.php | python -m json.tool done #要添加多一个群组 </pre> ==批量改 agent 配置== ===ssh 方式 === <pre> IP=( 172.31.27.83 172.31.25.239 172.31.16.171 172.31.26.183 172.31.31.249 172.31.25.199 172.31.22.218 172.31.24.104 172.31.19.164 ) myend=`expr ${#IP[@]} - 1` for no in `seq 0 ${myend}` do ssh -i id_rsa -o "StrictHostKeyChecking no" root@${IP[$no]} "sed -i 's!Server=148.66.11.55!Server=8.210.125.2!' /etc/zabbix/zabbix_agentd.conf && systemctl restart zabbix-agent" done </pre> =进阶= 写成通用的py脚本 ? [https://www.jianshu.com/p/e087cace8ddf 利用zabbix API(python)批量查询主机、模板、添加删除主机] [https://www.cnblogs.com/reblue520/p/7614347.html 通过zabbix自带api进行主机的批量添加操作信息填写成列表] [http://aishad.top/wordpress/?p=460 zabbix高级使用五:通过zabbix API添加监控主机has used] [https://blog.51cto.com/13120271/2163782 Zabbix 调用API 批量添加主机等] [https://blog.csdn.net/qq_34355232/article/details/83823680 zabbix api获取指定组中的主机的名字并将其修改] [https://blog.csdn.net/weixin_42290927/article/details/88292931 zabbix 添加主机 API基础 ] [https://blog.csdn.net/weixin_34107955/article/details/89821524 Zabbix 调用API 批量添加主机 (读取Excel)] [https://blog.csdn.net/weixin_34242509/article/details/92306225 zabbix调用api接口批量添加主机] =see also= [https://www.cnblogs.com/ssgeek/p/9279775.html zabbix api的使用] [https://blog.51cto.com/zengestudy/1850578 通过Zabbix API 添加host]
返回至
Zabbix 调用API 批量添加主机
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
我的导航
关于我
shell
python
ops
linuxchina.net
blog.linuxchina
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息