上传模板支持xml json yaml等格式
模板放在./zabbix_templates/目录下
#!/bin/bash
#定义变量ip、port、用户名、密码等
zabbix_ip={{zabbix_server}}
zabbix_port={{zabbix_http_port}}
zabbix_user=Admin
zabbix_password=zabbix
#获取zabbix的token
login(){
curl http://$zabbix_ip:$zabbix_port/api_jsonrpc.php -H 'Content-Type:application/json-rpc' -d '{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "'"$zabbix_user"'",
"password": "'"$zabbix_password"'"
},
"id": 1
}'|python -m json.tool|grep result|awk -F '"' '{print $4}'
}
login_token=$(login)
#导入模板
import_template() {
curl http://$zabbix_ip:$zabbix_port/api_jsonrpc.php -H 'Content-Type:application/json-rpc' -d '{
"jsonrpc": "2.0",
"method": "configuration.import",
"params": {
"format": "'"$ext"'",
"rules": {
"templates": {
"createMissing": true,
"updateExisting": true
},
"valueMaps": {
"createMissing": true,
"updateExisting": true
},
"graphs": {
"createMissing": true,
"updateExisting": true
},
"items": {
"createMissing": true,
"updateExisting": true,
"deleteMissing": true
},
"httptests": {
"createMissing": true,
"updateExisting": true,
"deleteMissing": true
},
"triggers": {
"createMissing": true,
"updateExisting": true,
"deleteMissing": true
},
"mediaTypes": {
"createMissing": true,
"updateExisting": true
},
"maps": {
"createMissing": true,
"updateExisting": true
},
"templateDashboards": {
"createMissing": true,
"updateExisting": true,
"deleteMissing": true
},
"discoveryRules": {
"createMissing": true,
"updateExisting": true,
"deleteMissing": true
}
},
"source": "'"$template_data"'"
},
"auth": "'"$login_token"'",
"id": 1
}'
}
#查询在zabbix_templates目录下的模板文件
for i in $(ls ./zabbix_templates/*);
do
filename=$(basename $i)
ext="${filename##*.}"
template_data=$(cat $i|awk BEGIN{RS=EOF}'{gsub(/\\n/,"\\\\n");print}'|awk BEGIN{RS=EOF}'{gsub(/\"/,"\\\"");print}'|awk BEGIN{RS=EOF}'{gsub(/\n/,"\\n");print}')
import_template $template_data $ext
done