如何为虚拟主机自动化zabbix Web方案?


10

我是Zabbix和企业监控的新手。我刚完成安装Zabbix 2.4。

我正在尝试监视所有vhosts在不同服务器上错位的状态。

到目前为止Web scenariovhost我想到的唯一解决方案是为要监视的每个主机手动添加一个到Zabbix服务器主机。但这不是那么方便。

到处搜索时,我发现了一个论坛线程,它具有部分起作用的思想:使用a template从目标服务器读取所有vhosts(通过macro)并Web scenario为每个创建一个vhost

编辑:此解决方案(基于Zabbix 2.2)不起作用,因为无法将LLD(低级发现)与一起使用Web scenarios

有一个功能请求,因为11月14日开放来实现LLDWeb scenarios

问题是在等待功能实现时是否有解决方案或建议,或者我的方法是完全错误的。


1
根据手册,您应该能够将模板用于2.2中已经存在的Web场景。
StephenKing 2015年

没错,问题不是由于模板创建了Web场景。问题在于,无法将LLD与“网络场景”一起使用。
SharpEdge 2015年

谢谢男人,服务器故障是如此严重吗?
SharpEdge

据我所知,您可以创建自己的自定义低级发现?
Navern 2015年

1
有趣的是,@ peterh在您的类似评论中,大多数似乎都在受到欢迎的问题上得到了很好的回答。
BE77Y

Answers:


1

我使用了一个脚本,该脚本使用Zabbix API创建场景。

#!/bin/bash

read -s -p "Enter AdminAPI password: " password

response=$(curl "http://192.168.0.5:10052/api_jsonrpc.php" -H "Content-Type: application/json-rpc" --data @<(cat <<EOF
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "AdminAPI",
        "password": "$password"
    },
    "id": 1,
    "auth": null
}
EOF
))


read token id <<<$(echo $response | jq -r '.result, .id')

while read -p "enter quit or an url for a new web scenario" url && [ $url != "quit" ]

do

shorturl=$(echo $url | sed 's:.*//::')

echo ---------
echo $token
echo $url
echo $shorturl
echo ---------

# the hostid is visible when you are on the host page on the zabbix interface
#le hostid est visible dans l'url de de la page du host sur zabbix ici bunsrv
curl "http://192.168.0.5:10052/api_jsonrpc.php" -H "Content-Type: application/json-rpc" --data @<(cat <<EOF
{
    "jsonrpc": "2.0",
    "method": "httptest.create",
    "params": {
        "name": "$shorturl",
        "hostid": "10120",
        "steps": [
            {
                "name": "Homepage",
                "url": "$url",
                "status_codes": 200,
                "no": 1
            }
        ]
    },
    "auth": "$token",
    "id": $id
}
EOF
)

done

对于触发器:

curl "http://192.168.0.5:10052/api_jsonrpc.php" -H "Content-Type: application/json-rpc" --data @<(cat <<EOF
{
    "jsonrpc": "2.0",
    "method": "trigger.create",
    "params": [
        {
            "description": "Web scenario $shorturl failed: {ITEM.VALUE} from {HOST.NAME}",
            "expression": "{BUNSRV:web.test.fail[$shorturl].last()}<>0 and {BUNSRV:web.test.error[$shorturl].strlen()}>0",
            "priority": "2"

        }
    ],
    "auth": "$token",
    "id": $id
}
EOF
)

done

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.