Grupos de host e modelos.
Os modelos permitem definir classes para seus hosts e serviços, por exemplo, "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 Windows", com cada um definindo as informações de contato apropriadas.
Você pode usar vários modelos em um único recurso, para compor modelos ortogonais de maneira apropriada. Por exemplo, você pode ter
host foo {
use windows-host,normal-priority-host
...
}
que extrairia as informações de contato (e escalações) da equipe do Windows e as taxas e limites de pesquisa para um host "normal".
Os grupos de host permitem agrupar todas as verificações de um subconjunto de seus hosts. Tenha coisas como "baseline-linux-hosts" que verificam a carga, o espaço em disco, a ssh
capacidade e qualquer outra coisa que esteja em todos os hosts que você monitora. Adicione grupos como "https-servers" com verificações de conectividade HTTP, HTTPS e datas de validade do certificado 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 verificar se as ferramentas de acessibilidade da VM estão funcionando corretamente.
Coloque cada host e grupo de host em seu próprio arquivo. Esse arquivo deve conter primeiro a definição de host ou grupo de hosts, seguida pelas definições dos serviços que se aplicam a ele.
Se você usar a cfg_dir
diretiva em seu nagios.cfg
arquivo, o Nagios pesquisará recursivamente nesse 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/
- commands.d /
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d /
- host1.cfg
- host2.cfg
- host3.cfg
- hostgroups.d /
- hostgroup1.cfg
- hostgroup2.cfg
Costumo criar um diretório para cada tipo de recurso (comandos, grupos de contatos, contatos, escalações, grupos de hosts, hosts, grupos de serviços, períodos de tempo), exceto os serviços, que são agrupados com os hosts ou grupos de hosts que os utilizam.
A estrutura precisa pode variar de acordo com suas necessidades organizacionais. Em um trabalho anterior, usei subdiretórios abaixo hosts.d
para cada site diferente. No meu trabalho atual, a maioria das definições de host do Nagios são gerenciadas pelo Puppet, portanto, há um diretório para hosts gerenciados pelo Puppet e um diretório separado para hosts gerenciados manualmente.
Observe que o acima também divide os comandos em vários arquivos, geralmente por protocolo. Assim, o nrpe.cfg
arquivo teria os comandos check_nrpe
e check_nrpe_1arg
, ao mesmo tempo http.cfg
poderia ter check_http
, check_http_port
, check_https
, check_https_port
, e check_https_cert
. 1
Normalmente, não tenho um número enorme de modelos, por isso geralmente só tenho um hosts.d/templates.cfg
arquivo e um services.d/templates.cfg
arquivo. Se você usá-los com mais intensidade, eles podem entrar em arquivos com nome apropriado em um templates.d
diretório.
1 Eu também gosto de ter um check_http_blindly
comando, que é basicamente check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; retorna OK, mesmo que receba um código de resposta 403.