使用shell脚本通过zabbix的API批量创建主机
来源:原创 更新时间:2018-10-15 09:04:05 编辑:管理员 浏览:5687
先看一张图
脚本实现
#!/usr/bin/bash ############################################################ # $Name: CreateHost.sh # $Version: v1.0 # $Function: GetToken,CreateHost,Logout # $Author: Chen guilin # $organization: blog.ct99.cn,www.linuxbaodian.com # $Create Date: 2018-10-12 # $Description: Automatically create hosts ############################################################ ZabbixAddr="http://172.16.1.71/zabbix/" TempOutFile="/tmp/session.txt" HostList="/tmp/hostlist.txt" Logs="/tmp/addhost.txt" Num=1 Id="Admin" Pwd="zabbix" echo "开始获取令牌" curl -s -X POST -H 'Content-Type:application/json' -d ' { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "'$Id'", "password": "'$Pwd'" }, "id": 1, "auth": null }' ${ZabbixAddr}api_jsonrpc.php | python -m json.tool>$TempOutFile Authid=`awk -F'"' '/result/{print $4}' $TempOutFile` echo "成功获取令牌,开始创建主机" while read -r line do echo "正在创建第${Num}台主机到zabbix监控管理中心" let Num++ data=($line) echo 'curl -s -X POST -H '"'"'Content-Type:application/json'"'"' -d '"'"'{"jsonrpc": "2.0","method": "host.create","params": {"host": "'${data[0]}'","description": "'${data[2]}'","interfaces": [{"type": 1,"main": 1,"useip": 1,"ip": "'${data[1]}'","dns": "","port": "10050"}],"groups": [{"groupid": "2"}],"templates": [{"templateid": "10001"}]},"id": 2,"auth": "'$Authid'"}'"'"'' ${ZabbixAddr}'api_jsonrpc.php | python -m json.tool'|bash &>>$Logs done < $HostList echo "断开会话" curl -s -X POST -H 'Content-Type:application/json' -d ' { "jsonrpc": "2.0", "method": "user.logout", "params": [], "id": 1, "auth": "'$Authid'" } ' ${ZabbixAddr}api_jsonrpc.php | python -m json.tool>$TempOutFile