
Я новичок в Zabbix и корпоративном мониторинге. Я только что закончил установку Zabbix 2.4.
Я пытаюсь отслеживать состояние всех наших vhosts
объектов, размещенных на разных серверах.
До сих пор единственным решением, которое я придумал, было вручную добавлять Web scenario
к хосту Zabbix Server для каждого, vhost
который я хочу мониторить. Но это не так удобно.
Поискав, я нашел ветку форума с частично работающей идеей: использование , template
которое считывает с целевого сервера все vhosts
(через macro
) и создает Web scenario
для каждого vhost
.
РЕДАКТИРОВАТЬ: Это решение (основанное на Zabbix 2.2) не работает, поскольку невозможно использовать LLD (низкоуровневое обнаружение) с Web scenarios
.
EстьЗапрос функцииоткрыт с 14 ноября для LLD
реализации Web scenarios
.
ВОПРОС
Вопрос в том, есть ли какое-то решение или предложение о том, как подойти к такому виду мониторинга, ожидая реализации функции, или, может быть, мой подход совершенно неверен.
решение1
Я использовал скрипт, который использует API Zabbix для создания сценариев.
#!/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
решение2
Здесьскрипт, который, возможно, вам поможет. Этот скрипт считывает список с URL и создает веб-сценарий прямо в базе данных zabbix.