dorancemc.ansible_nagioscore
Nagios Core
Rol para desplegar Nagios Core
Requisitos
Ninguno
Variables del Rol
Los objetos están definidos en archivos yaml y se convierten en archivos de configuración a partir de plantillas.
Puedes ver más detalles sobre las variables en la carpeta default/main.
Las variables definidas por sistema operativo están en la carpeta vars/.
Reemplaza los valores predeterminados en el archivo vars.yaml y encripta este archivo.
Para modificar los datos de las variables, copia la carpeta nagios que se encuentra dentro de la carpeta principal a tu carpeta de inventario local, preferentemente en la carpeta group_vars/ o host_vars/.
- Hosts y Servicios
Los hosts y los servicios se pueden definir en una variable o por archivo.
En localhost.yaml encontrarás un ejemplo para definir nuevos hosts.
Copia la carpeta files/nagios en tu ubicación preferida.
Puedes crear archivos por host para definir los hosts y los servicios. Crea la carpeta
y actualiza la variable para indicar la ubicación de los archivos.# nagios_hosts_path: inventory/nagios_hosts
En la carpeta de inventario crea un archivo como este:
_host:
host_name: nombre_del_host #requerido
address: 192.168.0.1 #si no está definido, se reemplaza por el nombre
alias: Descripción del Servidor
use: template #si no está definido, nagios_host_template_default var es la plantilla predeterminada
_services:
servicename: servicecommand!arguments # se define con 'nagios_service_template_default' como plantilla de servicio
servicename-other:
use: service_template
check_command: servicecommand!arguments!arguments #sintaxis: <nombre_comando>!$ARG1$!$ARG2$
#consulta el archivo commands.yaml para validar el servicecommand y los parámetros
Define los grupos de hosts y grupos de servicios en las variables nagios_hostgroups
y nagios_servicegroups
,
luego puedes agregar si un host y un servicio pertenecen allí.
- Contactos
Consulta el archivo contacts.yaml para obtener más detalles sobre las variables.
Para asegurar que el usuario se eliminó del archivo httpasswd, agrega los datos state: absent
en la definición del contacto,
el usuario será eliminado de la definición de contactos y del archivo htpasswd.
- Grupos de Contactos
Los grupos de contactos son la mejor manera de manejar notificaciones, crear un contacto y unirse a grupos. Si se define un contact_group en el host, todos los servicios heredan el mismo grupo de contactos, o puedes definir un grupo de contactos por servicio.
Dependencias
Ninguna
Ejemplo de Playbook
Define tu grupo nagios e incluye todos tus servidores nagios allí
[nagios]
nagios.ejemplo.com ansible_host=192.168.243.220
Incluye esto en tu configuración predeterminada del playbook:
- hosts: nagios
roles:
- { role: dorancemc.ansible-nagioscore, tags: [ nagioscore ] }
Ejecuta tu playbook para aplicar este rol
ansible-playbook --limit ubuntu playbook.yaml --tags nagioscore
Si deseas aplicar solo la configuración, aplica la etiqueta nagios_config
ansible-playbook --limit ubuntu playbook.yaml --tags nagios_config
Grafana
Este despliegue admite la integración con Grafana. Después del despliegue, puedes instalar Grafana manualmente
y seguir estas instrucciones para completar la integración.
https://support.nagios.com/kb/article/nagios-core-using-grafana-with-pnp4nagios-803.html#Grafana_Config
O utiliza la receta de ansible y configura estas variables para completar la integración.
https://github.com/cloudalchemy/ansible-grafana
grafana_plugins:
- sni-pnp-datasource
grafana_datasources:
- name: PNP
type: sni-pnp-datasource
isDefault: true
access: proxy
url: 'http://127.0.0.1/pnp4nagios/'
basicAuth: false
Licencia
BSD
Información del Autor
Dorance Martinez @dorancemc
Role to install Nagios Core and run hosts configuration
ansible-galaxy install dorancemc.ansible_nagioscore