Como configurar um manipulador de eventos nagios para executar somente em horas não úteis?

2

Eu tenho um manipulador de eventos configurado e em execução no nagios que é acionado toda vez que um determinado serviço está em um estado CRITICAL.

O problema é que decidimos que em horários de trabalho regulares não há necessidade de executar o manipulador de eventos, pois podemos corrigir o problema manualmente e de maneira mais eficiente.

A questão é, existe alguma maneira que eu possa configurar este manipulador de eventos para executar apenas em um dado período de tempo e ainda ser normalmente notificado sobre o estado CRITICAL? Digamos que em horário não comercial?

Agradecemos antecipadamente por sua ajuda.

    
por Dan Gomez 04.08.2011 / 15:45

3 respostas

2

Dê uma olhada na macro do Nagios ISVALIDTIME .

This is a special on-demand macro that returns a 1 or 0 depending on whether or not a particular time is valid within a specified timeperiod. There are two ways of using this macro:

$ISVALIDTIME:24x7$ will be set to "1" if the current time is valid within the "24x7" timeperiod. If not, it will be set to "0".
$ISVALIDTIME:24x7:timestamp$ will be set to "1" if the time specified by the "timestamp" argument (which must be in time_t format) is valid within the "24x7" timeperiod. If not, it will be set to "0".

Não sei se isso está presente no contexto do serviço, mas você pode testá-lo. Defina um período de tempo "horas de folga" e tome ISVALIDTIME como um parâmetro para o seu script de manipulador de eventos. Quando o script é chamado durante o horário de trabalho, deixe que ele não faça nada e saia.

Quando isso não funcionar, você pode apenas verificar a hora do dia no script do manipulador de eventos.

    
por 04.08.2011 / 16:13
0

Antes de iniciar a resposta, uma pegadinha a ser observada: quando configuro nosso sistema de roteamento de chamadas de forma inteligente, em vez de manualmente, manejo 'horas de trabalho', esqueci completamente de permitir feriados, deixando urgentes o cliente liga em um escritório vazio para a metade do feriado seguinte na segunda-feira.

Tenho certeza que você será mais cuidadoso do que isso: -)

Com essa ressalva à parte, parece que os documentos querem definir alguns objetos de tempo de duração em sua configuração do Nagios, por exemplo:

define timeperiod{
    timeperiod_name workhours
    alias           "Normal" Working Hours
    monday          08:00-17:00
    tuesday         08:00-17:00
    wednesday       08:00-17:00
    thursday        08:00-17:00
    friday          08:00-17:00
}

E, em seguida, invoque-os com check_period na sua configuração de serviço:

define service{
    use                             some-service
    name                            service-name
    ...
    check_period                    24x7
    ...
}
    
por 04.08.2011 / 16:20
0

Se você realmente quiser fazer isso, eu tenho uma ideia (esta é a primeira coisa que me vem à mente):

  1. coloque a definição de serviço em um arquivo separado para facilitar
  2. escreva um script para verificar a hora atual
  3. no horário de início das horas de trabalho, você irá comentar a linha event_handler no arquivo de configuração e, no final, você irá comentar. (você pode fazer isso com sed )

Tente isso e deixe-me saber se funciona.

    
por 04.08.2011 / 16:49