Grupos de host e modelos.
Os modelos permitem-lhe definir turmas para os seus anfitriões e serviços, por ex. "serviço normal", "serviço crítico", "host de baixa prioridade". Eles também servem como uma maneira útil de dividir responsabilidades se você tiver várias equipes com responsabilidades diferentes, para que você possa ter um modelo "host Linux" e um modelo "host do Windows", com cada um definindo as informações de contato apropriadas. p>
Você pode usar vários modelos em um único recurso, para poder compor modelos ortogonais apropriados. Por exemplo, você pode ter
host foo {
use windows-host,normal-priority-host
...
}
que extrairia as informações de contato (e escalações) para a equipe do Windows e as taxas de pesquisa e os limites para um host "normal".
Hostgroups permitem agrupar todas as verificações de um subconjunto de seus hosts. Tenha coisas como "baseline-linux-hosts" que verificam carga, espaço em disco, ssh
capacidade e quaisquer outras coisas que devem estar em todos os hosts que você monitora. Adicione grupos como "https-servers" com verificações de conectividade HTTP, conectividade HTTPS e datas de expiração de certificados SSL; "servidores de arquivos" com verificações de acessibilidade NFS e SMB e talvez verificações de disco mais agressivas; ou "máquinas virtuais" com verificações para saber se as ferramentas de acessibilidade da VM estão funcionando corretamente.
Coloque cada host e host em seu próprio arquivo. Esse arquivo deve conter primeiro a definição do host ou do grupo de hosts, seguida pelas definições dos serviços que se aplicam a ele.
Se você usar a diretiva cfg_dir
no seu arquivo nagios.cfg
, o Nagios pesquisará recursivamente por esse diretório. Faça uso disso. Para uma configuração de cfg_dir=/etc/nagios/conf.d
, você pode ter uma árvore de diretórios como a seguinte:
- /etc/nagios/conf.d/
- comandos.d /
- link
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d /
- host1.cfg
- host2.cfg
- host3.cfg
- hostgroups.d /
- hostgroup1.cfg
- hostgroup2.cfg
- comandos.d /
Eu costumo criar um diretório para cada tipo de recurso (comandos, grupos de contatos, contatos, escalações, grupos de hosts, hosts, servicegroups, timeperiods), exceto para serviços, que são agrupados com os hosts ou grupos de host que os utilizam.
A estrutura precisa pode variar de acordo com suas necessidades organizacionais. Em um trabalho anterior, usei subdiretórios em hosts.d
para cada site diferente. No meu trabalho atual, a maioria das definições do host do Nagios é gerenciada pelo Puppet, então há um diretório para os hosts gerenciados pelo Puppet e um para os hosts gerenciados manualmente.
Observe que o acima também divide os comandos em vários arquivos, geralmente por protocolo. Assim, o arquivo nrpe.cfg
teria os comandos check_nrpe
e check_nrpe_1arg
, enquanto http.cfg
poderia ter check_http
, check_http_port
, check_https
, check_https_port
e check_https_cert
. 1
Normalmente, não tenho um grande número de modelos, por isso, normalmente, só tenho um arquivo hosts.d/templates.cfg
e um arquivo services.d/templates.cfg
. Se você usá-los com mais intensidade, eles poderão entrar em arquivos com nomes apropriados em um diretório templates.d
.
1 Eu também gosto de ter um comando check_http_blindly
, que é basicamente check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; ele retorna OK mesmo se receber um código de resposta 403.