Escapando caracteres no Nagios para NC_Net

2

Estou tentando monitorar um contador de filas do MSMQ usando o Nagios (3.0.1). O servidor remoto está executando o NC_Net. A configuração check_command é assim:

check_command check_nt!COUNTER!-l "\MSMQ Queue(servername\private$\queuename)\Messages in Queue","%.f messages in MSMQ queue" -w 5 -c 10

Isso não funciona. Eu acredito que o símbolo do dólar precisa ser escapado e estou tendo problemas para descobrir como.

Este artigo sugere "$$", ou seja,

check_command check_nt!COUNTER!-l "\MSMQ Queue(servername\private"$$"\queuename)\Messages in Queue","%.f messages in MSMQ queue" -w 5 -c 10

mas isso não funciona. Eu tentei alguns outros métodos (barra invertida, aspas simples, etc).

Alguma sugestão?

EDITAR:

Eu tenho feito alguns testes através da linha de comando, que é uma das razões pelas quais acredito que é o $ causando o problema. Os seguintes trabalhos:

./check_nt -H hostip -v COUNTER -l "\MSMQ Queue(Computer Queues)\Messages in Queue","%.f messages in MSMQ queue" -w 5 -c 10

mas isso não acontece:

./check_nt -H hostip -v COUNTER -l "\MSMQ Queue(servername\private$\queuename)\Messages in Queue","%.f messages in MSMQ queue" -w 5 -c 10

Eu também usei o ECHO para ver como esses comandos se expandem, mas isso não me ajudou.

EDITAR:

Acontece que não era o símbolo do dólar. Veja abaixo.

    
por Robin M 29.07.2009 / 13:59

3 respostas

0

Eu descobri que o NC_Net no servidor remoto registra no log de eventos do Windows. Olhando para os erros, começo a pensar que não é um problema com o símbolo do dólar:

Eu executei alguns testes (que espero falhar). Para o primeiro, eu especifiquei o nome do contador como "\ MSMQ Queue (servername) \ Messages in Queue"

O erro resultante foi:

Exeption occured during Counter check :Instance 'servername' does not exist in the specified Category.::>\MSMQ Queue(servername)\Messages in Queue

Nesse caso, não é possível encontrar a instância do contador. Para o segundo, eu especifiquei "\ MSMQ Queue (servername \ test1) \ Mensagens na fila"

Exeption occured during Counter check :Could not locate Performance Counter with specified category name 'MSMQ Queue', counter name 'test1)\Messages in Queue'.::>\MSMQ Queue(servername\test1)\Messages in Queue

Nesse caso, não é possível encontrar o contador.

Parece-me que NC_Net está analisando os nomes dos contadores de maneira diferente por causa do \ in "servername \ test1".

EDITAR:

O problema foi devido ao \ no nome da instância do contador. Descobri que existe uma sintaxe alternativa para especificar o nome do contador, de modo que o seguinte funcione:

^MSMQ Queue^servername\private\$\queuename^Messages in Queue
    
por 29.07.2009 / 14:56
3

Você pode habilitar a depuração completa no nagios.cfg para ver o que o comando realmente expande, isso mostrará se o cifrão é realmente o problema. Para fazer isso, defina o seguinte:

debug_level=-1
debug_verbosity=2
# DEBUG FILE
debug_file=/usr/local/nagios/var/nagios.debug
max_debug_file_size=1000000

Se você tem muitas verificações, é necessário definir o tamanho máximo do arquivo de depuração, porque a essa verbosidade e ao nível, o log é preenchido rapidamente.

E talvez eles (exemplo):

sudo /etc/init.d/nagios reload

Você precisará então executar o check, enquanto segue o log. Você também pode querer redirecionar a cauda para o grep com algo como 'check_nt' para diminuir o ruído.

    
por 29.07.2009 / 14:03
0

Eu acredito que você precisa usar \ para escapar do personagem, mas o seguinte link mostra que você pode precisar de dois \

espero que isso ajude - > Link < -

    
por 29.07.2009 / 14:40