• No se han encontrado resultados

NagiosQL

N/A
N/A
Protected

Academic year: 2021

Share "NagiosQL"

Copied!
7
0
0

Texto completo

(1)

NagiosQL. Introducción e instalación en

Nagios 3.x / 4.x en Centos 6 (Redhat)

6 Replies

Introducción.

Una de las características que más se echan de menos cuando comienzas con Nagios es que la configuración de objetos hay que realizarla con ficheros de texto. Esto supone un problema añadido por la dificultad inicial de entrada del mundo de los objetos de Nagios y la sintaxis para definirlos. Para paliar esta “ausencia” existe software de terceros que nos proporciona un interface gráfico para la definición de objetos. Dos posibilidades interesantes son Nconf y NagiosQL. Vamos a ver el segundo ya que a día de hoy es el que permanece más activo.

En cualquier caso debemos preguntarnos previamente si realmente lo necesitamos. El software es bueno y muy manejable pero debemos tener en cuenta que pasaremos a realizar definiciones sobre listbox, checkbox,… en lugar de copy / pastes tradicionales. A lo mejor si manejas solo una instalación “tuya” prefieres los ficheros de texto pero si instalas Nagios para clientes puede ser más interesante para que el cliente pueda añadir sus propios objetos de forma “sencilla”.

Otro asunto a tener en cuenta es que si usamos check_mk que tiene su propia sintaxis de definición de objetos ya no podremos usar NagiosQL. En mi caso que me encanta check_mk lo tengo claro pero…

¿Como funciona? Sencillo. Básicamente lo que hacen tanto NagiosQL como Nconf es

que la configuración de objetos de Nagios se realiza y guarda en una BBDD para posteriormente generar desde la información en esta los ficheros de configuración de Nagios. Esto supone que no debemos editar nunca dichos ficheros ya que cambiarán en posteriores modificaciones a través del GUI. Aunque bien es cierto que podríamos tener unos ficheros a mano por un lado y el resto los generados por NagiosQL.

¿Nos evita tener conocer la compleja relación entre objetos de Nagios? No

realmente, pero si la simplifica. Para poder crear los objetos, aunque sea usando formularios de colorines, necesitaremos conocer cómo se relacionas estos para saber que estamos haciendo. Bien es cierto que el software nos guía bastante bien y tiene controles para no dejarnos meter la pata y que creemos los objetos adecuadamente.

Instalación de NagiosQL

La instalación se realizará siguiendo el PDF bastante bien documentado que podemos encontrar en la página de documentación de NagiosQL. Este artículo refleja la

instalación en Centos / Redhat pero para es perfectamente válido para cualquier otra distribución excepto en los paquetes que se instalan previamente que tendrán

(2)

Requisitos de software

Los requisitos que necesitamos para la instalación según la documentación serían los siguientes:

Webserver like Apache 2.x MySQL 5.x or greater

Nagios 2.x/3.x (local or remote) or a Nagios compatible monitoring system PHP 5.2.0 or greater including: PHP Module: Session PHP Module: MySQL PHP Module: gettext PHP Module: filter PHP Module: FTP (optional) PECL Extension: SSH (optional) Javascript activated in Webbrowser Multilanguage Support

En nuestro caso lo instalaremos sobre Nagios 3 y Nagios 4 para probarlo sobre esta versión pero realmente no está soportada y no recomiendo usarlo sobre esta. De hecho hay al menos un par de detalles que no funcionan y por supuesto no soportará las nuevas funcionalidades de Nagios Core 4 (p.e. los nuevos parámetros en host / servicios). La instalación la realizamos sobre un Centos 6.4. Imagino que será idéntica con Redhat aunque con este a lo mejor necesitamos suscribirnos a algún repositorio adicional por algún paquete (lo que puede requerir tener una suscripción activa)

Partimos de la instalación de Nagios 3 realizada en un artículo previo y también la probamos sobre una de Nagios 4. . Tenemos ya varios de los requisitos instalados solo nos quedarían algunos que instalamos con:

yum install mysql-server php-pecl-ssh2 php-mysql

Configuramos mysql para arrancar en el inicio y le asignamos un password a root

service mysqld start chkconfig mysqld on

mysqladmin -u root password PASSWORD

Directorios de configuración

NagiosQL usa sus propios directorios de configuración donde ubica sus ficheros. Los creamos. mkdir -p /etc/nagiosql/hosts mkdir /etc/nagiosql/services mkdir -p /etc/nagiosql/backup/hosts mkdir /etc/nagiosql/backup/services Modificación de permisos.

(3)

Necesitamos darle a nuestro directorios permisos para que tanto el usuario de nagios como el de apache puedan acceder a este. En nuestro caso según realizamos la instalación previa podíamos haber usado un grupo común a ambos usuarios (nagioscmd) pero lo realizaremos según la documentación de NagiosQL, usando usuario de apache y grupo de nagios.

chown -R apache.nagios /etc/nagiosql

Además necesitamos darle permisos al usuario de apache (nagiosql es una app que corre sobre apache) a algunos ficheros de configuración de Nagios. Lo realizaremos según la documentación de NagiosQL. Para un fácil copy / paste un par de ejemplos:

En una instalación compilada de Nagios sería habitualmente con las siguientes rutas:

chown -R apache.nagios /usr/local/nagios/etc/nagios.cfg chown -R apache.nagios /usr/local/nagios/etc/resource.cfg chown -R apache.nagios /usr/local/nagios/etc/cgi.cfg

chown -R apache.nagios /usr/local/nagios/var/rw/nagios.cmd chown -R apache.nagios /usr/local/nagios/var/nagios.log

chown -R apache.nagios /usr/local/nagios/var/spool/checkresults chmod 660 /usr/local/nagios/etc/resource.cfg chmod 660 /usr/local/nagios/etc/nagios.cfg chmod 660 /usr/local/nagios/etc/cgi.cfg chmod 660 /usr/local/nagios/var/rw/nagios.cmd chmod 660 /usr/local/nagios/var/nagios.log chmod 770 /usr/local/nagios/var/spool/checkresults

En una instalación por paquetes en Redhat / CentOS deberían ser las siguientes:

chown -R apache.nagios /etc/nagios/nagios.cfg chown -R apache.nagios /etc/nagios/resource.cfg chown -R apache.nagios /etc/nagios/cgi.cfg

chown -R apache.nagios /var/log/nagios/nagios.log

chown -R apache.nagios /var/spool/nagios/cmd/nagios.cmd

chown -R apache.nagios /usr/local/nagios/var/spool/checkresults chmod 660 /etc/nagios/nagios.cfg chmod 660 /etc/nagios/resource.cfg chmod 660 /etc/nagios/cgi.cfg chmod 660 /var/spool/nagios/cmd/nagios.cmd chmod 660 /var/log/nagios/nagios.log chmod 770 /usr/local/nagios/var/spool/checkresults

Configuración de Servidor Apache

Preparamos un directorio donde se alojará nuestra página de NagiosQL.

mkdir /opt/nagiosql

chown apache /opt/nagiosql/

Localizamos nuestro fichero de configuración php.ini (p.e. con “locate php.ini). En Centos/Redhat está en /etc/php.ini. Verificamos que los parámetros siguientes tengan este valor:

file_uploads = On session.auto_start = 0

(4)

date.timezone = "Europe/Madrid"

El valor de date.timezone por supuesto variará según donde estés…

“America/Buenos_Aires”, “America/Bogota”, “America/Mexico_City”, … En el php.ini nos indica una página del manual de PHP donde ver las configuraciones de zona.

Creación del fichero de configuración de apache. Crearemos en nuestro servidor web un fichero de configuración de apache para NagiosQL. En Centos / Redhat será:

/etc/httpd/conf.d/nagiosql.conf

Podemos configurarlo de forma básica la autentificación (usará autentificación de acceso a la BBDD mysql)

Alias /nagiosql "/opt/nagiosql" <Directory "/opt/nagiosql"> Options None

AllowOverride None Order allow,deny Allow from all </Directory>

Reiniciamos nuestro servidor de apache.

Instalación de NagiosQL

Debemos descomprimir el sofware en la carpeta para apache que creamos para alojar este y darle los permisos adecuados para nuestro usuario de apache. p.e.

descomprimimos inicialmente en nuestro home y movemos los archivos:

tar zxfv nagiosql_320.tar.gz mv nagiosql32/* /opt/nagiosql/ chown -R apache /opt/nagiosql chmod 750 /opt/nagiosql/config

Reiniciamos apache y ya podemos acceder a nuestra página web: http://server_nagios/nagiosql

(5)

Empezamos la instalación donde chequeará que cumplimos todas las dependencias y si no es así nos indicará lo que no cumplimos. Podemos solucionarlo instalado los

necesario y refrescando la página inicial de configuración y pinchando de nuevo “Start Installation”.

Posteriormente nos aparecerán los datos necesarios para crear la BBDD. El asistente hace bien su trabajo y solo es necesario añadir

 Administrative Database Password (Password de administración de nuestro mysql)

 NagiosQL User Setup: La pass que tendrá nuesrtousuario admin de Nagiosql en mysql.

El resto lo dejamos por defecto. Podemos marcar también la casilla de “Import Nagios sample config” si queremos partir de una BBDD con algunos ejemplos de objetos Nagios.

Nos creará la BBDD y nos dará un aviso “Please delete the install directory to continue!”

rm -rf /opt/nagiosql/install

Cargamos la app de nagiosql y ya la tenemos funcionando (accedemos con el usuario admin que creamos en el asistente previo): http://servidor/nagiosql/

Instalación de Servicepacks de NagiosQL

Nagiosql publica periódicamente servicepacks que básicamente consisten en la

colección de archivos que han cambiado desde la publicación de la versión de versión a la que aplican. Para aplicarlos hay que bajar el zip, descomprimir y copiar encima de nuestra instalación.

Realizamos primero una copia de nuestro directorio por si acaso, p.e.:

(6)

Descomprimimos y copiamos cada uno de los parches sobre los archivos originales:

unzip nagiosql_3.2.0_sp1.zip

cp NagiosQL_3.2.0_SP1/* /opt/nagiosql/ -R unzip nagiosql_320_sp2.zip

cp NagiosQL_3.2.0_SP2/* /opt/nagiosql/ -R

Reiniciamos / recargamos Apache.

Configuración de Nagios

Por último nos falta lo más importante. Modificar la configuración de Nagios para que use los ficheros generados por NagiosQL. Modificamos nuestro fichero nagios.cfg.

Primero: debemos comentar cualquier referencia cgf_file y cfg_dir, Segundo:

añadimos las siguientes líneas:

cfg_file=/etc/nagiosql/contacttemplates.cfg cfg_file=/etc/nagiosql/contactgroups.cfg cfg_file=/etc/nagiosql/contacts.cfg cfg_file=/etc/nagiosql/timeperiods.cfg cfg_file=/etc/nagiosql/commands.cfg cfg_file=/etc/nagiosql/hostgroups.cfg cfg_file=/etc/nagiosql/servicegroups.cfg cfg_file=/etc/nagiosql/hosttemplates.cfg cfg_file=/etc/nagiosql/servicetemplates.cfg #cfg_file=/etc/nagiosql/serviceescalation.cfg cfg_file=/etc/nagiosql/servicedependencies.cfg cfg_file=/etc/nagiosql/hostdependencies.cfg cfg_file=/etc/nagiosql/hostescalations.cfg cfg_file=/etc/nagiosql/hostextinfo.cfg cfg_file=/etc/nagiosql/serviceextinfo.cfg cfg_dir=/etc/nagiosql/hosts cfg_dir=/etc/nagiosql/services

Debemos asegurarnos también que el siguiente valor para que NagiosQL pueda reiniciar Nagios:

check_external_commands=1

En este momento nos hemos quedado sin datos en Nagios hasta que configuremos objetos desde NagiosQL así que si reiniciamos Nagios no arrancará. Se quejará de que no tiene objetos.

Configuración Inicial mínima de NagiosQL

Accedemos a NagiosQL y los primero que haremos para tener un funcionamiento mínimo será:

 Menú Administration / Config Targets / localhost / editar (el icono de herramientas).

(7)

Nagios base directory: /usr/local/nagios/etc/ Import directory: /usr/local/nagios/etc/

Nagios command file: /usr/local/nagios/var/rw/nagios.cmd Nagios binary file: /usr/local/nagios/bin/nagios

Nagios process file: /usr/local/nagios/var/nagios.lock Nagios config file: /usr/local/nagios/etc/nagios.cfg

Para una instalación de Nagios instalado por paquetes p.e. (Redhat, CentOS):

Nagios base directory: /etc/nagios/ Import directory: /etc/nagios/objects/

Nagios command file: /var/spool/nagios/cmd/nagios.cmd Nagios binary file: /usr/sbin/nagios

Nagios process file: /var/run/nagios.pid Nagios config file: /etc/nagios/nagios.cfg

En general, da igual como esté instalado, busca cuidadosamente los ficheros que tienes que configurarle a NagiosQL ya que la mayoría de los posibles errores que puedan surgir están en esta configuración y en los permisos.

Generar objetos a partir de los ejemplos que trae instalados.

NagiosQL trae configurados algunos objetos (hosts, servicios,…). A no ser que no marcáramos durante la instalación la opción “Import Nagios sample config”. Para empezar a analizarlo nos valen esos objetos pero debemos decirle que genere los ficheros de configuración a partir de estos. Lo haremos desde Menú Tools / Nagios

control . Vamos ejecutando todas las opciones:

 Write monitoring data

 Write additional data

 Check configuration files

 Restart Nagios.

Sobre Nagios 3 todo debería ir ya perfecto. Si somos intrépidos y a día de hoy hemos instalado NagiosQL sobre Nagios 4… no se realizará el restart desde esta opción de NagiosQL (aunque diga que si). Debemos realizar un pequeño cambio en un fichero PHP detallado en este artículo. Algún otro problema con Nagios 4 también

documentado.

Referencias

Documento similar