Ferramenta de monitoramento com visualizações / modelos personalizados?

1

Atualmente, estou procurando uma solução de monitoramento de código aberto, como zabbix e icinga. Embora ambos pareçam ser muito poderosos para monitorar estados genéricos de hardware e software, estou perdendo a funcionalidade importante de informações - para mim - ou não consegui descobrir como poderia funcionar apenas lendo a documentação deles.

Eu gostaria de integrar algumas filas de trabalhos nessa ferramenta de monitoramento. Por um lado, eu preciso saber informações resumidas da fila, como disponibilidade genérica, etc., o que não seria problema de integração com uma dessas ferramentas. Por outro lado, gostaria de ter mais informações detalhadas sobre o que está acontecendo nas filas.

Eu gostaria de desenvolver um plugin, que poderia retornar uma quantidade arbitrária de dados detalhados - como informações sobre cada trabalho armazenado na fila - que eu poderia preencher em uma view / template personalizada, que eu poderia integrar em um dessas ferramentas de monitoramento.

Isso é possível com zabbix, icinga ou qualquer outra solução de monitoramento de código aberto?

    
por harald 20.10.2011 / 23:23

2 respostas

2

Já considerou o Nagios? Permite escrever plugins (em qualquer idioma) e geralmente integra-los facilmente na estrutura de monitoramento. Na verdade, pode ser possível que, com todos os usuários que executam o Nagios, um plug-in esteja disponível e faça o que você deseja.

Para armazenar informações mais específicas sobre um trabalho ou conteúdo específico em uma fila, você pode considerar a construção de algum script Web CGI simples usando o agente de coleta Nagios para obter os dados necessários do servidor.

Como o Nagios é executado no Apache, essa pode ser uma abordagem possível.

    
por 20.10.2011 / 23:35
1

Como você adicionou a tag nagios , eu dou um exemplo com ela e a NRPE.

Primeiramente, escreva seu próprio plugin na linguagem favorita. Lembre-se dos códigos de retorno:

0 - OK
1 - WARNING
2 - CRITICAL
3 - UNKNOWN

Veja o trecho do script de shell para monitorar o tamanho de uma lista no Redis:

#!/bin/sh

help()
{
    echo "Usage: $0 <host> <port> <key> -w <warning> -c <critical>"
}

case "$1" in
    --help)
        help
        exit
        ;;
esac

if [ $# -eq 0 ]; then
    help
    exit 3
fi
if [ $# -ne "7" ]; then
    help
    exit 4
fi
if [ $4 !="-w" -o $6 !="-c" ]; then
    help
    exit 5
fi

REDIS_CLI="/usr/local/bin/redis-cli"
LLEN='echo "$3" | $REDIS_CLI -h $1 -p $2 llen'
if [ $LLEN -lt $5 ]; then
    echo "$3.llen:$2 OK - $LLEN | $3.llen:$2=$LLEN;$5;$7"
    exit 0
elif [ $LLEN -ge $5 -a $LLEN -lt $7 ]; then
    echo "$3.llen:$2 WARNING - $LLEN | $3.llen:$2=$LLEN;$5;$7"
    exit 1
elif [ $LLEN -ge "$7" ]; then
    echo "$3.llen:$2 CRITICAL - $LLEN | $3.llen:$2=$LLEN;$5;$7"
    exit 2
fi

Em segundo lugar, defina um comando em /etc/nagios/nrpe.cfg , algo assim:

command[check_queue]=/usr/lib64/nagios/plugins/check_queue.sh <host> <port> \
    <queue_name> -w <warning_threshold> -c <critical_threshold>

E em terceiro lugar, no servidor Nagios, este plugin pode ser chamado com:

define service{
    use                     generic-service
    host_name               <remote_server>
    service_description     <queue_name>
    check_command           check_nrpe!check_queue
    contact_groups          admin-sms
}
    
por 21.10.2011 / 12:16