Як автоматизувати веб-сценарії zabbix для vhosts?


10

Я новачок у моніторингу Zabbix та підприємств. Щойно я закінчив встановлення Zabbix 2.4.

Я намагаюся стежити за станом усіх наших vhostsдислокованих на різних серверах.

До цих пір єдине рішення, яке я придумав, - це вручну додати Web scenarioхост Zabbix Server для кожного, який vhostя хочу контролювати. Але це не так зручно.

Шукаючи навколо, я знайшов низку форуму з частково функціонуючою ідеєю: Використовуючи a, templateякий читає з цільового сервера всі vhosts(через a macro) і створює Web scenarioдля кожного vhost.

EDIT : Це рішення (засноване на Zabbix 2.2) не працює, тому що неможливо використовувати LLD (Low Level Discovery) за допомогою Web scenarios.

Існує Feature Request відкритий з 14 листопада по реалізації LLDна Web scenarios.

ПИТАННЯ

Питання в тому, чи є якесь рішення чи пропозиція щодо того, як підходити до такого типу моніторингу під час очікування реалізації функції, чи, можливо, мій підхід абсолютно невірний.


1
Згідно з посібником , ви повинні мати можливість використовувати шаблон для веб-сценаріїв, які вже в 2.2.
StephenKing

Ви праві, проблема полягає не в тому, що шаблон створює веб-сценарії. Проблема в тому, що неможливо використовувати LLD з "веб-сценаріями".
SharpEdge

Дякую, чоловіче, так погано серверно?
SharpEdge

Наскільки я знаю, ви можете створити власне власне відкриття низького рівня?
Наверн

1
@peterh Цікаво, що з ваших спір подібних коментарів більшість з них, здається, на добре отримані запитання з добре отриманими відповідями.
BE77Y

Відповіді:


1

Я використовував сценарій, який використовує API Zabbix для створення сценаріїв.

#!/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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.