通过API接口上传zabbix模板(shell)

上传模板支持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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值