Grupos de host y plantillas.
Las plantillas le permiten definir clases para sus hosts y servicios, por ejemplo, "servicio normal", "servicio crítico", "host de baja prioridad". También sirven como una forma útil de dividir las responsabilidades si tiene varios equipos con diferentes responsabilidades, por lo que puede tener una plantilla de "host de Linux" y una plantilla de "host de Windows", donde cada uno define la información de contacto adecuada.
Puede usar varias plantillas en un solo recurso, por lo que puede componer plantillas ortogonales apropiadas. Por ejemplo, puedes tener
host foo {
use windows-host,normal-priority-host
...
}
que extraería la información de contacto (y las escaladas) para el equipo de Windows y las tasas de votación y los umbrales para un host "normal".
Los grupos de host le permiten agrupar todas las comprobaciones de un subconjunto de sus hosts. Tenga cosas como "baseline-linux-hosts" que verifican la carga, el espacio en disco, la ssh
capacidad y cualquier otra cosa que deba estar en cada host que supervise. Agregue grupos como "servidores https" con comprobaciones de conectividad HTTP, conectividad HTTPS y fechas de vencimiento de certificados SSL; "servidores de archivos" con comprobaciones de accesibilidad NFS y SMB y quizás comprobaciones de disco más agresivas; o "máquinas virtuales" con comprobaciones de si las herramientas de accesibilidad de VM se están ejecutando correctamente.
Coloque cada host y grupo de hosts en su propio archivo. Ese archivo debe contener primero la definición de host o grupo de hosts, seguida de las definiciones de los servicios que se le aplican.
Si usa la cfg_dir
directiva en su nagios.cfg
archivo, Nagios buscará recursivamente a través de ese directorio. Haz uso de eso. Para una configuración de cfg_dir=/etc/nagios/conf.d
, puede tener un árbol de directorios como el siguiente:
- /etc/nagios/conf.d/
- comandos.d /
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d /
- host1.cfg
- host2.cfg
- host3.cfg
- hostgroups.d /
- hostgroup1.cfg
- hostgroup2.cfg
Tiendo a crear un directorio para cada tipo de recurso (comandos, grupos de contacto, contactos, escalamientos, grupos de hosts, hosts, grupos de servicios, períodos de tiempo), excepto los servicios, que se agrupan con los hosts o grupos de hosts que los usan.
La estructura precisa puede variar según las necesidades de su organización. En un trabajo anterior, utilicé subdirectorios hosts.d
para cada sitio diferente. En mi trabajo actual, la mayoría de las definiciones de host de Nagios están gestionadas por Puppet, por lo que hay un directorio para hosts gestionados por Puppet y otro por separado para hosts gestionados a mano.
Tenga en cuenta que lo anterior también divide los comandos en varios archivos, generalmente por protocolo. De este modo, la nrpe.cfg
imagen tendrá los comandos check_nrpe
y check_nrpe_1arg
, si bien http.cfg
podría tener check_http
, check_http_port
, check_https
, check_https_port
, y check_https_cert
. 1
Por lo general, no tengo una gran cantidad de plantillas, por lo que generalmente solo tengo un hosts.d/templates.cfg
archivo y un services.d/templates.cfg
archivo. Si los usa más, pueden ir a archivos con el nombre apropiado en un templates.d
directorio.
1 Me gusta tener también un check_http_blindly
comando, que es básicamente check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; devuelve OK incluso si obtiene un código de respuesta 403.