วิธีทำให้ zabbix web สถานการณ์อัตโนมัติสำหรับ vhosts เป็นอย่างไร?


10

ฉันใหม่สำหรับ Zabbix และการตรวจสอบองค์กร ฉันเพิ่งติดตั้ง Zabbix 2.4 เสร็จแล้ว

ฉันพยายามตรวจสอบสถานะของการvhostsจัดสรรทั้งหมดของเราบนเซิร์ฟเวอร์ที่แตกต่างกัน

จนถึงตอนนี้ทางออกเดียวที่ฉันใช้คือเพิ่มWeb scenarioโฮสต์ Zabbix Server ด้วยตนเองสำหรับแต่ละรายการที่vhostฉันต้องการตรวจสอบ แต่มันก็ไม่สะดวก

ค้นหารอบฉันได้พบฟอรั่มที่มีความคิดการทำงานบางส่วน: การใช้templateที่อ่านจากเซิร์ฟเวอร์เป้าหมายทั้งหมดvhosts(ผ่านmacro) และสร้างสำหรับแต่ละWeb scenariovhost

แก้ไข : การแก้ปัญหานี้ (ขึ้นอยู่กับ Zabbix 2.2) ไม่ได้เพราะเป็นไปไม่ได้ที่จะใช้แนวหน้า (ค้นพบระดับต่ำ) Web scenariosด้วย

มีความเป็นคำขอคุณลักษณะการเปิดตั้งแต่ 14 พฤศจิกายนที่จะใช้ในการLLDWeb scenarios

คำถาม

คำถามคือหากมีวิธีแก้ปัญหาหรือข้อเสนอแนะบางอย่างเกี่ยวกับวิธีการตรวจสอบแบบนี้ในขณะที่รอการใช้งานคุณสมบัติหรือวิธีการของฉันอาจผิดทั้งหมด


1
ตามคู่มือคุณควรจะสามารถใช้เทมเพลตสำหรับสถานการณ์เว็บใน 2.2 ได้แล้ว
StephenKing

คุณถูกต้องปัญหาไม่ได้เกิดจากแม่แบบการสร้างสถานการณ์เว็บ ปัญหาคือไม่สามารถใช้ LLD กับ "สถานการณ์เว็บ"
SharpEdge

ขอบคุณผู้ชายเซิร์ฟเวอร์ผิดพลาดมาก ๆ
SharpEdge

เท่าที่ฉันรู้ว่าคุณสามารถสร้างการค้นพบระดับต่ำที่กำหนดเองของคุณเอง?
Navern

1
@ peterh ที่น่าสนใจจากความคิดเห็นที่คล้ายกันของคุณส่วนใหญ่ดูเหมือนจะเป็นคำถามที่ได้รับการตอบรับที่ดี
BE77Y

คำตอบ:


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.