कैसे vhosts के लिए zabbix वेब परिदृश्यों को स्वचालित करने के लिए?


10

मैं Zabbix और एंटरप्राइज मॉनिटरिंग के लिए नया हूं। मैंने अभी Zabbix 2.4 को इंस्टाल किया है।

मैं vhostsअलग-अलग सर्वरों पर हमारे सभी अव्यवस्थित की स्थिति की निगरानी करने की कोशिश कर रहा हूं ।

अब तक मैं एकमात्र समाधान के साथ आया था, मैं मैन्युअल रूप से मॉनिटर करने के Web scenarioलिए प्रत्येक के लिए ज़ैबिक्स सर्वर होस्ट में मैन्युअल रूप से जोड़ना vhostचाहता हूं। लेकिन यह इतना आसान नहीं है।

चारों ओर खोज करने पर मुझे एक आंशिक कार्य विचार के साथ एक फोरम थ्रेड मिला है: एक templateलक्ष्य सर्वर से पढ़ता है कि सभी का उपयोग करके vhosts(एक के माध्यम से macro) और Web scenarioप्रत्येक के लिए बनाता है vhost

EDIT : यह समाधान (Zabbix 2.2 पर आधारित) काम नहीं करता है क्योंकि LLD (लो लेवल डिस्कवरी) का उपयोग संभव नहीं है Web scenarios

वहाँ एक है फ़ीचर अनुरोध 14 नवंबर के बाद से खुला लागू करने के लिए LLDपर Web scenarios

सवाल

सवाल यह है कि सुविधा के कार्यान्वयन की प्रतीक्षा करते समय इस तरह की निगरानी के बारे में कुछ समाधान या सुझाव है या शायद मेरा दृष्टिकोण पूरी तरह से गलत है।


1
मैनुअल के अनुसार , आपको पहले से ही 2.2 में वेब परिदृश्यों के लिए टेम्पलेट का उपयोग करने में सक्षम होना चाहिए।
स्टीफनकिग

आप सही हैं समस्या वेब परिदृश्य बनाने वाले टेम्पलेट के कारण नहीं है। समस्या यह है कि "वेब परिदृश्य" के साथ एलएलडी का उपयोग करना संभव नहीं है।
शार्पडेज

शुक्रिया यार, क्या इतना खराब सर्वरफॉल्ट है?
SharpEdge

जहाँ तक मुझे पता है आप अपनी खुद की कस्टम निम्न स्तर की खोज बना सकते हैं?
नाॅवरन

1
@peterh दिलचस्प है, इसी तरह की टिप्पणियों के बावजूद, उनमें से ज्यादातर अच्छी तरह से प्राप्त उत्तरों के साथ अच्छी तरह से पूछे गए प्रश्नों पर लगते हैं।
BE77Y

जवाबों:


1

मैंने एक स्क्रिप्ट का उपयोग किया जो परिदृश्य बनाने के लिए ज़ैबिक्स एपीआई का उपयोग करता है।

#!/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 डेटाबेस में सीधे वेब परिदृश्य बनाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.