A única maneira que eu acredito que você pode conseguir isso é fazendo um novo grupo de host composto pelos hosts em questão (usando um caractere curinga) e excluindo esse novo host.
Estou com dificuldades para encontrar uma boa documentação para curingas e expressões regulares (especialmente quando elas funcionam com exclusões) no Nagios. Aqui está um exemplo do que estou tentando fazer:
Em nagios.cfg
, os seguintes itens estão definidos, supostamente ativando *
e ?
como curingas:
use_regexp_matching=1
use_true_regexp_matching=0
Em services.cfg
, temos um serviço que gostaríamos de aplicar a todos, exceto alguns objetos; isso é tudo hosts Linux, mas não balanceadores de carga. Trabalhos de exclusão explícita:
define service {
use generic-service
service_description Puppet check
hostgroup_name prod, staging, !prod-site_a-lbs
check_command check_puppet_alive_nrpe
}
Mas, temos muitos sites, cada um com balanceadores de carga em seus próprios grupos de host (para que as notificações possam ser facilmente gerenciadas pelo site). Em vez de ter uma longa lista de !prod-site_a-lbs
, !staging-site_a-lbs
, !prod-site_b-lbs
. Eu esperava poder modificar a linha hostgroup_name
para:
hostgroup_name prod, staging, !*-lbs
Eu tentei isso e, embora não recebamos um erro, essa verificação de serviço ainda está sendo aplicada aos nossos balanceadores de carga. Para verificar novamente, também tentei:
hostgroup_name prod, staging, !.*-lbs
Mas, isso falha, como esperado (já que use_true_regexp_matching
não está definido), ao executar checkconfig-noprecache
:
Error: Could not find any hostgroup matching '!.*lbs' ...
No teste, .*
é aceito por checkconfig-noprecache
se !
for removido.
O que estamos tentando é possível? Podemos usar curingas para excluir grupos de host correspondentes? Ou existe uma alternativa que seria tão limpa?
Atualização (2015-09-21): Depois de testar a resposta de Keith, esta configuração está funcionando:
Em services.cfg
:
define service {
use generic-service
service_description Puppet check
hostgroup_name prod, staging, !lbs
check_command check_puppet_alive_nrpe
}
E em hostgroups.cfg
, defini um novo hostgroup usando uma expressão regular na diretiva 'members':
define hostgroup {
hostgroup_name lbs
alias Load Balancers
members ^lb.*
}
Tags monitoring nagios