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
}