Wie automatisiere ich zabbix Web-Szenarien für vhosts?

10

Ich bin neu in Zabbix und Unternehmensüberwachung. Ich habe gerade die Installation von Zabbix 2.4 abgeschlossen.

Ich versuche, den Status aller vhostsauf verschiedenen Servern ausgelagerten Server zu überwachen .

Bisher war die einzige Lösung, die ich gefunden habe, das manuelle Hinzufügen eines Web scenarioHosts zum Zabbix Server-Host für jeden Host, den vhostich überwachen möchte. Aber es ist nicht so praktisch.

Beim Durchsuchen habe ich einen Forenthread mit einer teilweise funktionierenden Idee gefunden: Mit einem template, der vom Zielserver alle vhosts(bis a macro) liest und Web scenariofür jeden einen erstellt vhost.

BEARBEITEN : Diese Lösung (basierend auf Zabbix 2.2) funktioniert nicht, da LLD (Low Level Discovery) nicht verwendet werden kann Web scenarios.

Seit dem 14. November ist eine Funktionsanforderung geöffnet, die LLDam implementiert werden kann Web scenarios.

FRAGE

Die Frage ist, ob es eine Lösung oder einen Vorschlag gibt, wie diese Art der Überwachung angegangen werden soll, während auf die Implementierung der Funktion gewartet wird, oder ob mein Ansatz möglicherweise völlig falsch ist.

Scharfe Kante
quelle
1
Laut Handbuch sollten Sie in der Lage sein, Vorlagen für Web-Szenarien bereits in 2.2 zu verwenden.
StephenKing
Sie haben Recht, das Problem liegt nicht an der Vorlage, die Webszenarien erstellt. Das Problem ist, dass es nicht möglich ist, LLD mit "Web-Szenarien" zu verwenden.
SharpEdge
Danke Mann, ist so ein schlechter Serverfehler?
SharpEdge
Soweit ich weiß, können Sie Ihre eigene Low-Level-Entdeckung erstellen?
Navern
1
@peterh Interessanterweise scheinen sich die meisten Ihrer Kommentare zu gut aufgenommenen Fragen mit gut aufgenommenen Antworten zu befassen.
BE77Y

Antworten:

1

Ich habe ein Skript verwendet, das die Zabbix-API verwendet, um die Szenarien zu erstellen.

#!/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

und für die Auslöser:

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
The_Pingu
quelle
0

Hier ein Skript, das Ihnen vielleicht helfen wird. Dieses Skript liest eine Liste mit URL und erstellt ein Web-Szenario direkt in der zabbix-Datenbank.

Joao Vitorino
quelle