Como posso facilitar a leitura das informações de status dos serviços do Nagios?

5

Estou executando o Nagios em um ambiente com vários servidores, cada um com vários serviços neles. Existem algumas verificações personalizadas, mas é bom usar as verificações existentes, se possível. Estou usando o plug-in do NRPE, marque check_disk para verificar a utilização de cada sistema de arquivos montado:

command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 10% -c 5% -p / -p /var -C -u GB -w 200 -c 100 -r '^/mounts[^/]+$'

É útil ter todos estes verificados como um único serviço ("Discos"), mas quando um deles vai para o modo de aviso, é difícil ler a saída na linha de Informações de Status:

DISK WARNING - free space: / 6 GB (9% inode=92%): /var 125 GB (67% inode=99%): /mounts/vol0 1152 GB (16% inode=99%): /mounts/vol1 1096 GB (15% inode=99%): /mounts/vol2 126 GB (1% inode=99%): /mounts/vol3 228 GB (3% inode=99%): /mounts/vol4 3245 GB (44% inode=99%): /mounts/vol5 108 GB (1% inode=99%): 

No caso acima, a verificação está avisando porque /, / mounts / vol2 e / mounts / vol5 estão abaixo do limite. Um operador tem que percorrer cada valor para encontrar o valor que excede os níveis definidos. Além disso, se um no crítico e os outros estiverem advertindo, seria bom mostrá-los de maneira diferente, marcando-os ou colocando-os em linhas diferentes.

Existe uma maneira simples de fazer isso, sem criar um novo comando para cada ponto de montagem? Ou estou faltando algum outro método fundamental de magia Nagios para tornar isso amigável?

    
por Paul 10.10.2011 / 04:43

4 respostas

5

Experimente o sinalizador --errors-only que deve reduzir bastante a quantidade de texto cuspida por este plug-in.

 -e, --errors-only
 Display only devices/mountpoints with errors

Isso parece fazer o truque para mim. Observe a diferença drástica na saída:

# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10% 
DISK WARNING - free space: / 37167 MB (96% inode=98%); /dev/shm 244 MB (100% inode=99%); /boot 84 MB (18% inode=99%); /home 21253 MB (99% inode=99%);

Mas com o sinal --errors-only , agora está claro que meu problema é com /boot :

# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10% --errors-only
DISK WARNING - free space: /boot 94 MB (20% inode=99%);

Se não houver problemas no sistema, a saída é muito curta:

# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10% --errors-only
DISK OK

(Nota: eu removi tudo após o primeiro | para maior clareza. A interface da Web Nagios também reduz essa saída antes de ser exibida na tela.)

Veja também esta discussão sobre o bugtacker do Debian: nagios2: reclama de espaço em disco de uma forma incompreensível .

    
por 10.10.2011 / 17:02
3

A maneira padrão é ter tudo em uma linha. Você só tem duas opções:

  • defina uma verificação para cada disco (sei que não é o que você quer, mas ainda acho essa a melhor solução)

  • escreva seu próprio plug-in ou um wrapper em torno de check_disks que analisa a saída: você pode, por exemplo, colocar os discos abaixo do limite nas linhas de status ou encurtar a saída para incluir apenas os discos relevantes.

Você pode escrever o wrapper em qualquer idioma, mas, com a tarefa, eu sugeriria uma linguagem de script (por exemplo, Perl). Existem orientações sobre como desenvolver plugins: link

    
por 10.10.2011 / 07:36
2

Como o @Matteo mencionou, também acho que você deve definir uma verificação para cada partição. Mas aqui está um exemplo de wrapper para classificar o uso do disco em ordem decrescente:

check_disk -w 20% -c 10% -p /dev/sda1 -p /dev/sdb2 -p /dev/sdb4 | 
    awk -F"|" '{ print $1 }' | awk -F": " '{ print $2 }' | \
        tr ";" "\n" | sed 's/^ //' | sort -k4,4n

PS: Meu check_disk plugin retorna uma lista separada por ; em vez de : como você mostrou.

    
por 10.10.2011 / 13:13
1

Você pode considerar o check_multi , ele combina a capacidade de mostrar uma única linha de status, com a capacidade para ver mais detalhes, fazendo com que cada disco seja verificado independentemente. Você pode ver algumas das capturas de tela como isso funcionaria para você. No exemplo de verificações de disco, você teria uma verificação check_multi que exibe "1 aviso, 2 OK", quando você clica nesse serviço, você veria 3 verificações separadas, mostrando qual disco está em aviso com detalhes sobre esse disco em particular, enquanto ainda mostra os outros 2 claramente também.

    
por 16.10.2011 / 18:20