가상 호스트에 대한 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.