vhostsのzabbix Webシナリオを自動化する方法は?


10

Zabbixとエンタープライズモニタリングは初めてです。Zabbix 2.4のインストールが完了しました。

vhostsさまざまなサーバー上にあるすべてのディスロケーションの状態を監視しようとしています。

これまでのところ、私が思いついた唯一の解決策は、監視したいWeb scenarioものごとにZabbixサーバーホストに手動でを追加するvhostことです。しかし、それはそれほど便利ではありません。

周りを検索すると、部分的に機能するアイデアを持つフォーラムスレッドが見つかりました。templateターゲットサーバーからすべてvhosts(を介してmacro)を読み取りWeb scenario、それぞれにを作成するa を使用しますvhost

編集:(Zabbix 2.2に基づく)このソリューションは、でLLD(低レベル検出)を使用できないため機能しませんWeb scenarios

11月14日以降に実装する機能リクエストが公開さLLDれていWeb scenariosます。

質問

問題は、機能の実装を待つ間にこの種の監視に取り組む方法に関する解決策または提案があるかどうか、または私のアプローチが完全に間違っているかどうかです。


1
マニュアルによると、すでに2.2にあるWebシナリオのテンプレートを使用できるはずです。
StephenKing 2015年

問題は、テンプレートがWebシナリオを作成していることが原因ではありません。問題は、「Webシナリオ」でLLDを使用できないことです。
SharpEdge 2015年

ありがとうございます、サーバーフォールトはひどいですか?
SharpEdge 2015年

私が知る限り、独自の低レベルのカスタム検出を作成できますか?
Navern、2015年

1
興味深いことに、@ peterhは、同様のコメントがたくさん寄せられていますが、その多くは、よく寄せられる質問とよく寄せられる回答に基づいているようです。
BE77Y 2015年

回答:


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

0

ここでは、おそらくあなたに役立つスクリプトを紹介します。このスクリプトは、URLを含むリストを読み取り、zabbixデータベースに直接Webシナリオを作成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.