使用shell脚本通过zabbix的API批量创建主机

2018-10-12 19:54:14  浏览:4757  作者:管理员

先看一张图

blob.png

脚本实现

#!/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


评论区

共2条评论

【随机新闻】

返回顶部