가상 호스트에 대한 zabbix 웹 시나리오를 자동화하는 방법은 무엇입니까? 모든 탈퇴 상태를 모니터링하려고

Zabbix와 엔터프라이즈 모니터링을 처음 사용합니다. Zabbix 2.4 설치를 마쳤습니다.

vhosts다른 서버에있는 우리의 모든 탈퇴 상태를 모니터링하려고 합니다.

지금까지 내가 Web scenario찾은 유일한 솔루션은 vhost모니터링하려는 각 서버에 대해 Zabbix 서버 호스트에 수동으로 추가하는 것 입니다. 그러나 그렇게 편리하지 않습니다.

나는 부분적인 기능의 아이디어 포럼 스레드를 발견 한 주변 검색 : 사용하여 template모든 대상 서버에서 읽습니다 vhosts(스루 macro)과를 만들어 Web scenario각각에 대해 vhost.

편집 :이 솔루션 (Zabbie 2.2 기반)은 LLD (Low Level Discovery)와 함께 사용할 수 없기 때문에 작동하지 않습니다 Web scenarios.

기능 요청 구현하기 11월 14일 이후 개방 LLD에가 Web scenarios.

질문

문제는 기능 구현을 기다리는 동안 이러한 종류의 모니터링에 접근하는 방법에 대한 해결책이나 제안이 있는지, 아니면 내 접근 방식이 완전히 잘못된 것입니다.



답변

Zabbix API를 사용하여 시나리오를 작성하는 스크립트를 사용했습니다.

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


답변

여기 도움이 될만한 스크립트가 있습니다. 이 스크립트는 URL이 포함 된 목록을 읽고 zabbix 데이터베이스에서 직접 웹 시나리오를 작성합니다.


답변