Hayaletler için zabbix web senaryolarını nasıl otomatikleştirebilirim?


10

Zabbix ve kurumsal izleme konusunda yeniyim. Zabbix 2.4'ü yüklemeyi bitirdim.

Ben vhostsfarklı sunucularda tüm disloke bizim durumunu izlemeye çalışıyorum .

Şimdiye kadar bulduğum tek çözüm , izlemek istediğim Web scenarioher biri için Zabbix Sunucu ana bilgisayarına manuel olarak bir tane eklemektir vhost. Ama o kadar kullanışlı değil.

Etrafında arama Kısmi işleyen bir fikir ile bir forum iş parçacığı buldum: templateHedef sunucudan tüm okuyan vhosts(kullanarak macro) ve Web scenarioher biri için bir oluşturur vhost.

EDIT : Bu çözüm (Zabbix 2.2 tabanlı) işe yaramaz çünkü LLD (Düşük Seviye Keşif) ile birlikte kullanmak mümkün değildir Web scenarios.

14 Kasım'dan bu yana uygulanacak bir Özellik İsteğiLLD var Web scenarios.

SORU

Soru, özellik uygulamasını beklerken bu tür bir izlemeye nasıl yaklaşılacağı konusunda bir çözüm veya öneri olup olmadığı veya belki de yaklaşımımın tamamen yanlış olması.


1
El kitabına göre , 2.2'de zaten olan web senaryoları için şablon kullanabilmelisiniz.
StephenKing

Sorun, web senaryoları oluşturma şablonundan kaynaklanmıyor. Sorun LLD'yi "web senaryoları" ile kullanmanın mümkün olmamasıdır.
SharpEdge

Teşekkürler dostum, sunucu hatası çok mu kötü?
SharpEdge

Bildiğim kadarıyla kendi özel düşük seviye keşif oluşturabilirsiniz?
Navern

1
@peterh ilginç, benzer yorum çılgınlığı, çoğu iyi alınan cevapları ile iyi alınan sorular üzerinde görünüyor.
BE77Y

Yanıtlar:


1

Senaryoları oluşturmak için Zabbix API'sini kullanan bir komut dosyası kullandım.

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

ve tetikleyiciler için:

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

İşte size yardımcı olabilecek bir senaryo. Bu komut dosyası, URL içeren bir liste okur ve doğrudan zabbix veritabanında web senaryosu oluşturur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.