Estou tentando configurar o Nagios para monitorar minhas várias máquinas usando grupos de hosts para definir 'funções de máquinas', contra as quais eu executo serviços para verificar as máquinas por função. No entanto, eu gostaria de usar operadores condicionais que me permitiriam executar a verificação de serviço em relação a uma interseção de dois grupos de hosts, em vez de suas uniões ... ou seja, usando os operadores & amp ;, || ou (). / p>
Por exemplo, imagine que tenho os seguintes servidores:
-
www-eu : servidor Linux WWW (Apache), na UE
-
www-us : servidor Windows WWW (IIS), nos EUA (costa oeste)
-
ftp-eu : servidor FTP do Linux, na UE
-
ftp-us : servidor FTP do Windows, nos EUA
Eu gostaria de criar os seguintes grupos de hosts:
-
Servidores dos EUA : www-us, ftp-us
-
Servidores da UE : www-eu, ftp-eu
-
Servidores da WWW : www-us, www-eu
-
Servidores FTP : ftp-us, ftp-eu
Agora diga que estou interessado em verificar o tempo de resposta HTTP dos meus servidores da web. Então vamos dizer que este serviço Nagios específico está sendo executado nos EUA (Costa Oeste), e que eu tenho um comando chamado check_http_response_time . Este comando irá verificar a capacidade de resposta do servidor HTTP, que eu posso fornecer um argumento que define o tempo máximo de resposta antes de aumentar a crítica.
Meu comando pode se parecer com: check_http_response_time $HOSTNAME$ 50
Agora, tradicionalmente, posso executar minhas verificações especificando uma lista de host ou grupos de hosts.
define service{
use local-service
hostgroup_name WWW-Servers # Servers = www-us, www-eu
servicegroups WWW Checks
service_description Check HTTP Response Time
check_command check_http_response_time!50
}
No entanto, com a definição de serviço acima, considerando que meu serviço Nagios está no oeste dos EUA, eu poderia razoavelmente esperar que meu servidor da UE retornasse como crítico. Realmente, quero limiares diferentes para cada região (50 para o oeste dos EUA, 200 para a UE).
Para conseguir isso, eu teria que permutar meu serviço para cada host e definir um limite personalizado para cada um ou alternativamente permutar meus grupos de serviço por função & região (ou seja, WWW-Servers-EU), e executar limiares específicos contra esses. Embora o último seja melhor, ambos são muito mais confusos do que eu gostaria ...
O que eu adoraria e o que esta postagem está pedindo é uma maneira de usar grupos de host para realizar uma interseção usando lógica condicional, em vez de uma simples união. Pode parecer:
define service{
use local-service
hostgroup_name WWW-Servers && US-Servers
servicegroups WWW Checks
service_description Check HTTP Response Time
check_command check_http_response_time!50
}
Em seguida, ele executaria a verificação somente nos servidores que estão nos grupos de host Servidores e dos Servidores WWW: no meu exemplo, apenas www-us. Os benefícios de tal recurso seriam significativos para os serviços do Nagios configurados para grande escala.
Este recurso está disponível? Se não for, estará disponível no futuro? Existe uma maneira alternativa de realizar isso, dada a versão mais recente do Nagios?
Quaisquer sugestões / sugestões são mais apreciadas!