
Ich bin neu bei Zabbix und Enterprise Monitoring. Ich habe gerade die Installation von Zabbix 2.4 abgeschlossen.
Ich versuche, den Status aller unserer vhosts
auf verschiedenen Servern verteilten Server zu überwachen.
Bis jetzt ist die einzige Lösung, die mir eingefallen ist, für jeden Host , den ich überwachen möchte, manuell einen Web scenario
zum Zabbix-Server-Host hinzuzufügen. Aber das ist nicht so praktisch.vhost
Beim Suchen habe ich einen Forenthread mit einer teilweise funktionierenden Idee gefunden: Die Verwendung eines , das alle (über ein ) template
vom Zielserver liest und für jedes ein erstellt .vhosts
macro
Web scenario
vhost
BEARBEITEN: Diese Lösung (basierend auf Zabbix 2.2) funktioniert nicht, da die Verwendung von LLD (Low Level Discovery) damit nicht möglich ist Web scenarios
.
Da ist einFeatureanfrageseit 14. Nov. zur Umsetzung LLD
geöffnet Web scenarios
.
FRAGE
Die Frage ist, ob es eine Lösung oder einen Vorschlag gibt, wie man diese Art der Überwachung angehen kann, während man auf die Implementierung der Funktion wartet, oder ob mein Ansatz vielleicht völlig falsch ist.
Antwort1
Ich habe zum Erstellen der Szenarien ein Skript verwendet, das die Zabbix-API nutzt.
#!/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
Antwort2
Hierein Skript, das Ihnen vielleicht hilft. Dieses Skript liest eine Liste mit URL und erstellt ein Web-Szenario direkt in der Zabbix-Datenbank.