가상 호스트에 대한 zabbix 웹 시나리오를 자동화하는 방법은 무엇입니까?


10

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.

질문

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


1
매뉴얼 에 따르면 2.2에서 이미 웹 시나리오에 템플릿을 사용할 수 있어야합니다.
StephenKing

웹 시나리오를 생성하는 템플릿으로 인해 문제가 발생하는 것은 아닙니다. 문제는 "웹 시나리오"에서 LLD를 사용할 수 없다는 것입니다.
SharpEdge

고마워요, 서버 오류가 너무 심합니까?
SharpEdge

내가 아는 한 자신만의 맞춤형 저수준 발견을 만들 수 있습니까?
Navern

1
@peterh 흥미롭게도 비슷한 의견에 대한 당신의 말투의 대부분은 잘 수신 된 답변으로 잘 수신 된 질문에있는 것처럼 보입니다.
BE77Y 2016 년

답변:


1

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

0

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.