Como posso executar manualmente uma verificação do nagios na linha de comando?

24

Ao definir e testar novos serviços no nagios, eu reinicio o nagios, clico no serviço e reprogramo uma verificação o mais rápido possível, aguardando até que a verificação ocorra.

Existe uma maneira mais eficiente de fazer isso? Eu gostaria de usar a linha de comando para executar essa verificação específica e obter a saída.

cwd
fonte

Respostas:

31

Às vezes, acho complicado descobrir exatamente o que um plug-in está fazendo. Para descobrir isso, defino nagios no modo de depuração com a configuração como esta. debug_level=2048 Com os nagios no modo de depuração, simplesmente arrasto o debug_logarquivo debug_file=/var/log/nagios3/nagios.debug. Force uma verificação e você verá exatamente como o comando está sendo executado. No entanto, eu não deixaria essa configuração normalmente, é muito detalhada e preenche seu arquivo de log rapidamente.

Zoredache
fonte
impressionante. isso é mais parecido com o que eu quis dizer. só porque eu já tinha procurado no arquivo commands.cfg para descobrir quais comandos estavam em execução, mas queria saber quais sinalizadores estavam sendo configurados. obrigado! :)
cwd
2
Também mencionarei para novos usuários que o uso tail -fpermitirá que você continue vendo atualizações do arquivo em tempo real e control+co cancelará.
Cwd
2
Os debug_levels são binários - 2048 ativa apenas as mensagens das macros. Para ativar tudo o que você deseja definir, debug_level = 4095. (1 + 2 + ... + 2048)
jwg 24/11/2015
18

É bem simples. Apenas faça um cd (ou não) no diretório de plug-ins (esse local de diretório varia, dependendo de como você o instalou, mas verifique / usr / local / nagios ou / usr / lib / nagios).

Encontre o plug-in que você deseja executar (se não tiver certeza, compare o que vê no diretório de plug-ins da sua caixa Linux com os plug-ins localizados aqui: http://exchange.nagios.org/directory/Plugins , ou tente executar "./plugin-name -h" para obter as informações de ajuda sobre o plug-in).

O método para usar qualquer um desses "plug-ins" na linha de comando é o mesmo que qualquer outro script do Linux: Basta executar "./plugin-name" com os sinalizadores apropriados que você deseja verificar e pronto!

David W
fonte
1
+1 ... e se isso parecer muito problemático, você sempre pode olhar os arquivos de configuração do Nagios para ver quais comandos e parâmetros precisam ser executados. Até a localização do diretório de plugins está lá.
John Gardeniers 12/12
5
E lembre-se de que sempre faça isso com o nagiosusuário su - nagios -s /bin/bash.
quanta 12/12
legais. e -carrega as variáveis ​​ambientais para esse usuário?
Cwd
Sim, assim como qualquer outra flag linux, o "-" com qualquer flag que você usar irá carregar o flag. (Se eu estava executando o df -h na CLI do linux, estou usando a flag "h" - no caso do comando df, o h significa "human readable".) Portanto, se você deseja executar a verificação check_http da CLI, você executaria ./check_http -I, onde o sinalizador I representa o endereço IP ( nagiosplugins.org/man/check_http ). nagiosplugins.org/man pode ser útil, assim como o diretório Plugins ao qual vinculei anteriormente.
David W
A opção de ajuda deve ser --help. nagios-plugins.org/doc/guidelines.html
dmourati
5

Eu tomo uma direção de força bruta um pouco mais que @Zoredache, faço logon no servidor nagios e faço "while true; faça ps awwlx | grep NAGIOS_CHECK_NAME; done", enquanto forço uma nova verificação do serviço, em que NAGIOS_CHECK_NAME é parte do nome do cheque ou do IP do servidor que estou procurando. Geralmente, em alguns segundos, o comando check completo é exibido e, em seguida, eu mato o loop while e executo o comando check.

Sim, é totalmente força bruta, mas <shrug> funciona para mim.

Sean Reifschneider
fonte
Tente "assistir" no lugar do loop while. linux.about.com/library/cmd/blcmdl1_watch.htm
dmourati
3

Você também pode tentar o plug-in 'capture'. Ele basicamente faz a mesma coisa que um nível de depuração de 2048, mas pode ser usado por plug-in. Isso produz menos saída para cavar.

http://www.waggy.at/nagios/capture_plugin.htm

Keith
fonte
1
Lutei para chegar a este trabalho, não tenho certeza o que eu estava fazendo de errado (Noob), mas o truque debug_level trabalhou para mim :)
sbditto85
2

Vá para o diretório do plugin - no meu exemplo, é

/usr/lib64/nagios/plugins/

Digite o nome do seu plug-in - no meu exemplo, é

check_tcp

agora execute o comando completo - (nome do plug-in) -H (nome do host) -p (número da porta)

/usr/lib64/nagios/plugins/check_tcp -H myservername -p 8080

saída

TCP OK - 0.004 second response time on port 8080|time=0.004146s;;;0.000000;10.000000

No entanto, neste exemplo, o número da porta é opcional

outro exemplo -

no seu arquivo de configuração, que é parecido com abaixo (myserver.cfg) e você deseja executar o check_cpu na linha de comando

define service{
  use                             generic-service
  host_name                       myserver
  servicegroups                   windows
  service_description             CPU
  contact_groups                  sysadmin_email_only
  notification_options            w,c,r
  check_command                   check_nrpe!check_cpu
}

verificar instantaneamente (sem GUI verde ou vermelho)

Tente isso - (caminho completo do plugin) - H (servername) -c (checkname)

/usr/lib64/nagios/plugins/check_nrpe -H spc7atc01 -c check_cpu

saída -

OK CPU Load ok.|'5'=4;80;90; '10'=3;80;90; '15'=3;80;90;

É isso aí

Sharia Chowdhury
fonte