Làm cách nào để tự động hóa các kịch bản web zabbix cho vhost?


10

Tôi mới tham gia Zabbix và giám sát doanh nghiệp. Tôi vừa cài đặt xong Zabbix 2.4.

Tôi đang cố gắng theo dõi trạng thái của tất cả chúng ta vhostsbị trật khớp trên các máy chủ khác nhau.

Cho đến bây giờ, giải pháp duy nhất tôi nghĩ ra là thêm thủ công Web scenariomáy chủ Zabbix Server cho mỗi máy chủ mà vhosttôi muốn theo dõi. Nhưng nó không tiện dụng như vậy.

Tìm kiếm xung quanh tôi đã tìm thấy một chủ đề diễn đàn với một ý tưởng hoạt động một phần: Sử dụng một mục templateđọc từ máy chủ đích tất cả vhosts(thông qua a macro) và tạo một chủ đề Web scenariocho mỗi vhost.

EDIT : Giải pháp này (dựa trên Zabbix 2.2) không hoạt động vì không thể sử dụng LLD (Khám phá cấp thấp) với Web scenarios.

Có một yêu cầu tính năng mở từ 14 tháng 11 để thực hiện LLDtrên Web scenarios.

CÂU HỎI

Câu hỏi là nếu có một số giải pháp hoặc đề xuất về cách tiếp cận loại giám sát này trong khi chờ thực hiện tính năng, hoặc có thể cách tiếp cận của tôi là hoàn toàn sai.


1
Theo hướng dẫn , bạn sẽ có thể sử dụng mẫu cho các tình huống web đã có trong 2.2.
StephenKing

Bạn nói đúng vấn đề không phải do mẫu tạo kịch bản web. Vấn đề là không thể sử dụng LLD với "kịch bản web".
SharpEdge

Cảm ơn bạn, máy chủ rất tệ?
SharpEdge

Theo như tôi biết bạn có thể tạo ra khám phá cấp thấp tùy chỉnh của riêng bạn?
Navern

1
@peterh thú vị, trong số các bình luận tương tự của bạn, hầu hết trong số họ dường như là câu hỏi được đón nhận với câu trả lời được đón nhận.
BE77Y

Câu trả lời:


1

Tôi đã sử dụng tập lệnh sử dụng API Zabbix để tạo các kịch bản.

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

và cho các kích hoạt:

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

Đây là một kịch bản có thể sẽ giúp bạn. Kịch bản này đọc một danh sách với URL và tạo kịch bản web trực tiếp trong cơ sở dữ liệu zabbix.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.