由于公司有大量主机和网络设备需要添加,记录此脚本用于后续部署
1. 批量添加主机脚本
- add_host.sh
#!/bin/bash
url="http://zabbix-server/zabbix/api_jsonrpc.php"
filename=$1
groupid=$2
templateid=$3
proxyid=$4
[[ -z "$1" ]] || [[ -z "$2" ]] || [[ -z "$3" ]] &&{
echo '''
请先修改proxyid和community
并且参数不能为空
第一个参数filename
第二个参数groupid
第三个参数模板id,这个id可以点击zabbix模板查看
第四个参数proxyid
'''
exit 1
}
token=$( curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params":
{
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' "$url" | awk -F 'result' '{print $2}'| awk -F ':"' '{print $2}'| cut -d ',' -f 1 | cut -d '"' -f 1)
echo $token
cat ${filename} | while read ipline
do
name=$(echo $ipline | awk '{print $1}')
ip=$(echo $ipline | awk '{print $2}')
curl -s -X POST -H 'Content-Type:application/json' -d '{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "'$ip'",
"name": "'${name}' '${ip}'",
"proxy_hostid": "'$proxyid'",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "'$ip'",
"dns": "",
"port": "10051"
}
],
"groups": [
{
"groupid": "'$groupid'"
}
],
"templates": [
{
"templateid": "'$templateid'"
}
]
},
"auth": "'$token'",
"id": 1
}' $url
done
- filename
Linux主机1 192.168.1.1
Windows主机1 192.168.1.2
。。。
。。。
2. 批量添加网络设备脚本
- add_snmp_host.sh
#!/bin/bash
url="http://zabbix-server/zabbix/api_jsonrpc.php"
filename=$1
groupid=$2
templateid=$3
proxyid=$4
[[ -z "$1" ]] || [[ -z "$2" ]] || [[ -z "$3" ]] &&{
echo '''
请先修改proxyid和community
并且参数不能为空
第一个参数filename
第二个参数groupid
第三个参数模板id,根据模板查询id
第四个参数proxyid
'''
exit 1
}
token=$( curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params":
{
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' "$url" | awk -F 'result' '{print $2}'| awk -F ':"' '{print $2}'| cut -d ',' -f 1 | cut -d '"' -f 1)
echo $token
cat ${filename} | while read ipline
do
name=$(echo $ipline | awk '{print $1}')
ip=$(echo $ipline | awk '{print $2}')
curl -s -X POST -H 'Content-Type:application/json' -d '{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "'$ip'",
"name": "'${name}' '${ip}'",
"proxy_hostid": "'$proxyid'",
"interfaces": [
{
"type": 2,
"main": 1,
"useip": 1,
"ip": "'$ip'",
"dns": "",
"port": "161",
"details": {
"version": 2,
"bulk": 0,
"community": "{$SNMP_COMMUNY}"
}
}
],
"groups": [
{
"groupid": "'$groupid'"
}
],
"templates": [
{
"templateid": "'$templateid'"
}
]
},
"auth": "'$token'",
"id": 1
}' $url
done
- filename.txt
网络设备1 192.168.1.1
网络设备2 192.168.1.2
。。。
。。。


被折叠的 条评论
为什么被折叠?



