
Sou novo no Zabbix e no monitoramento corporativo. Acabei de instalar o Zabbix 2.4.
Estou tentando monitorar o estado de todos os nossos vhosts
deslocamentos em servidores diferentes.
Até agora, a única solução que encontrei foi adicionar manualmente um host Web scenario
ao host do Zabbix Server para cada um vhost
que desejo monitorar. Mas não é tão útil.
Pesquisando, encontrei um tópico no fórum com uma ideia de funcionamento parcial: usar a que lê todos os (por meio de a ) template
do servidor de destino e cria um para cada .vhosts
macro
Web scenario
vhost
EDITAR: Esta solução (baseada no Zabbix 2.2) não funciona porque não é possível usar LLD (Low Level Discovery) com Web scenarios
.
Existe umSolicitação de recursoaberto desde 14 de novembro para implementação LLD
em Web scenarios
.
PERGUNTA
A questão é se existe alguma solução ou sugestão sobre como abordar esse tipo de monitoramento enquanto se espera a implementação do recurso, ou talvez minha abordagem esteja totalmente errada.
Responder1
Utilizei um script que utiliza a API Zabbix para criar os cenários.
#!/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
e para os gatilhos:
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
Responder2
Aquium script que talvez te ajude. Este script lê uma lista com URL e cria um cenário web direto no banco de dados zabbix.