Gesti´ on de Redes con Nagios Robert Marcelo Tabango Goyes 22 de Noviembre de 2013
´Indice 1. Introducci´ on
2
2. Marco Teorico 2.1. Nagios, una herramienta para el an´alisis de redes 2.2. Objetivo y funcionalidades de Nagios . . . . . . . 2.3. Estructura archivos de configuraci´on de Nagios . . 2.4. Nagios Plugins . . . . . . . . . . . . . . . . . . . 2.5. Vautour Style para Nagios . . . . . . . . . . . . . 2.6. NSClient++ para Windows . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
3. Objetivo del Trabajo
3 3 3 6 6 6 7 8
4. Desarrollo Paso a Paso 4.1. Instalaci´on de Nagios Core 4 . . . . . . . 4.2. Instalaci´on de Nagios Plugins . . . . . . 4.3. Configuraci´on del demonio Nagios . . . . 4.4. Instalaci´on de Vautour Style . . . . . . . 4.5. Instalaci´on de NSClient++ en Windows 4.6. Configuraci´on de NSClient++ en Ubuntu
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
9 9 10 10 11 13 16
5. Recomendaciones e Inconvenientes
20
6. Conclusiones
21
1
1.
Introducci´ on
Actualmente, en la mayoria de las organizaciones, las redes de computo se vuelven cada vez mas complejas y la exigencia su operaci´on es cada vez mas demandante, as´ı mismo, estas soportan aplicaciones y servicios estrat´egicos que juegan un papel muy importante. Por esto el an´alisis y el monitoreo de las redes se ha convertido en una labor cada vez mas importante y de car´acter pro-activo para evitar problemas. As´ı pues, para prevenir errores en un sistema podemos utilizar una m´aquina que se pueda ocupar de estar controlando y observando el correcto funcionamiento de la red.
Figura 1 . Logo Nagios Para poder lograr este objetivo, se presenta la alternativa de un software de gesti´on de redes llamado NAGIOS, el cual vamos a analizar con detalle en el presente documento con el fin de dar una vision mas clara sobre el monitoreo de redes bajo el entorno Linux, asi como tambien una alternativa de software libre para este fin.
2
2. 2.1.
Marco Teorico Nagios, una herramienta para el an´ alisis de redes
Nagios es un sistema de motorizaci´on de redes de c´odigo abierto ampliamente utilizado, que vigila los equipos (hardware) y servicios (software) que se especifiquen, alertando cuando el comportamiento de los mismos no sea el deseado. Entre sus caracter´ısticas principales figuran la motorizaci´on de servicios de red (SMTP, POP3, HTTP, SNMP...), la motorizaci´on de los recursos de sistemas hardware (carga del procesador, uso de los discos, memoria, estado de los puertos...), independencia de sistemas operativos, posibilidad de motorizaci´on remota mediante t´ uneles SSL cifrados o SSH, y la posibilidad de programar plugins espec´ıficos para nuevos sistemas. Se trata de un software que proporciona una gran versatilidad para consultar pr´acticamente cualquier par´ametro de inter´es de un sistema, y que genera alertas que pueden ser recibidas por los responsables correspondientes mediante (entre otros medios) correo electr´onico y mensajes SMS, cuando estos par´ametros exceden de los m´argenes definidos por el administrador de red. Llamado originalmente Netsaint, nombre que se debi´o cambiar por coincidencia con otra marca comercial, fue creado y es actualmente mantenido por Ethan Galstad, junto con un grupo de desarrolladores de software que mantienen tambi´en varios complementos. Nagios fue originalmente dise˜ nado para ser ejecutado en GNU/Linux, pero tambi´en se ejecuta bien en variantes de Unix. Nagios est´a licenciado bajo la GNU General Public License Version 2 publicada por la Free Software Fundation.
2.2.
Objetivo y funcionalidades de Nagios
El objetivo primordial que tiene Nagios es conocer el estado de diferentes servicios brindados por equipos como servidores corriendo diferentes sistemas operativos, routers de los cuales dependen varios equipos. Obtener informaci´on de los mismos como estado en red, tiempo arriba, puertos abiertos, servicios y procesos corriendo, carga de CPU, carga de memoria f´ısica, carga de memoria virtual, espacio en disco, interfaces de red activas. Es posible conocer los estados y datos de estos diferentes equipos para una posterior elaboraci´on de reportes elaborando una configuraci´on personalizada de Nagios para cada caso en particular, por medio de testeo de paquetes de red, o haciendo uso de diferentes funciones que provee el protocolo SNMP (Simple Network Management Protocol) que nos permite gestionar y/o supervisar datos de diferentes elementos y componentes de la red como routers, switches, servidores y al ser un protocolo standard es posible monitorizar una amplia variedad de casos en escenarios con sistemas o´ equipos diferentes.
3
Con lo cual podremos concluir si el sistema: Lleva a cabo eficazmente su finalidad. Utiliza eficientemente los recursos. Ya que podr´ıamos : Detectar de forma sistem´atica el uso de los recursos y los flujos de informaci´on dentro de una organizaci´on. Determinar qu´e informaci´on es cr´ıtica para el cumplimiento de su misi´on y objetivos, identificando necesidades, duplicidades, costos, valor y barreras, que obstaculizan flujos de informaci´on eficientes. Analizar de eficiencia del sistema. Verificar el cumplimiento de normativas. Revisi´on de la gesti´on de recursos. Quien va a usar Nagios? Administradores de redes con alto conocimiento tecnico. Operadores con minimo conocimiento tecnico de la situacion, o conocimiento puntual de algun servicio pudiendo avisar y ayudar a determinar posibles causas de efectos producidos. Equipos de desarrollo. Coordinadores de mesas de ayuda. Areas relacionadas con redes y sistemas. Funcionalidades espec´ıficas de Nagios Las funcionalidades espec´ıficas de Nagios se describen a continuaci´on: Monitorizaci´on de servicios de red (SMTP, POP3, HTTP, NNTP, ICMP, SNMP). Monitorizaci´on de los recursos de equipos hardware (carga del procesador, uso de los discos, logs del sistema) en varios sistemas operativos, incluso Microsoft Windows con los plugins NRPE-NT ´o NSClient ++. Monitorizaci´on remota, a trav´es de t´ uneles SSL cifrados o SSH. Dise˜ no simple de plugins, que permiten a los usuarios desarrollar sus propios chequeos de servicios dependiendo de sus necesidades, usando sus herramientas preferidas (Bash, C++, Perl, Ruby, Python, PHP, C). 4
Chequeo de servicios paralizados. Posibilidad de definir la jerarqu´ıa de la red, permitiendo distinguir entre host cay host inaccesibles. Notificaciones a los contactos cuando ocurren problemas en servicios o hosts, as´ı como cuando son resueltos (a trav´es del correo electr´onico, buscapersonas, Jabber, SMS, o cualquier m´etodo definido por el usuario junto con su correspondiente complemento). Posibilidad de definir manejadores de eventos que ejecuten al ocurrir un evento de un servicio o host para resoluciones de problemas proactivas. Rotaci´on autom´atica del archivo de registro. Soporte para implementar hosts de monitores redundantes. Visualizaci´on del estado de la red en tiempo real a trav´es de interfaz web, con la posibilidad de generar informes y gr´aficas de comportamiento de los sistemas monitorizados, y visualizaci´on del listado de notificaciones enviadas, historial de problemas, archivos de registros.
Figura 2 . Diagrama funcionalidad de Nagios
5
2.3.
Estructura archivos de configuraci´ on de Nagios
La estructura de archivos que posee Nagios en un sistema linux es la siguiente: Carpeta bin: Aqui se almacenan los binarios ejecutables. Carpeta etc: Este directorio guarda la configuraci´on de Nagios, sus componentes, hosts/servicios a chequear, comandos de ejecuci´on, contactos de notificaci´on, intervalos de chequeos. Dentro de el hay diferentes subdirectorios y archivos. Carpeta libexec: Se almacenan los plugins que efectuaran los chequeos a monitorear. Carpeta sbin: Dentro de este directorio se mantienen los ejecutables CGI de la interfaz web. Carpeta share: Organiza el contenido web a mostrar, iconos, html, php. Carpeta var: Guarda los datos de ejecucion del monitoreo, estado de servicios, hosts, y logs.
2.4.
Nagios Plugins
Un plugin es una herramienta de l´ınea de comandos independiente que ofrece un tipo espec´ıfico de control. Normalmente, el software de monitoreo se ayuda en estos plugins para determinar el estado actual de los servicios de la red. Los plugins, se deben instalar en cada uno de los equipos que vamos a monitorizar con el fin de que se entiendan entre el servidor y cada uno de los clientes. En este caso usaremos NSClient++ para Windows.
2.5.
Vautour Style para Nagios
Es simplemente un skin para la interfaz web de Nagios. Cambia y estiliza un poco dicha interfaz para un buen desempe˜ no y un mejor entendimiento a la hora de usar el software.
Figura 3. Logo Vautour 6
2.6.
NSClient++ para Windows
Network Secure Monitoring Daemon, NSClient ++ es un flexible y moderno agente de monitoreo para sistemas operativos Windows que trabaja en conjunto con Nagios.
Figura 4. Esquema funcionamiento de NSClient++ Es software libre, y tiene multiples funcionalidades entre las que se destacan: Permitir que una m´aquina remota (servidor de supervisi´on) ejecute comandos en la m´aquina supervisada, que devuelven por ejemplo el estado de dicha m´aquina. Enviar el estado de un servicio consultado a un (servidor de monitorizaci´on remota). Tomar medidas y realizar tareas de mantenimiento.
Figura 5. Logo NSClient++
7
3.
Objetivo del Trabajo
El objetivo de este trabajo es lograr demostrar en un entorno de red virtualizado la monitorizaci´on y la supervision de un servidor por medio del software Nagios. Para esto utilizar´e 2 sistemas operativos en este modo: Maquina 1 : Ser´a el servidor que estar´a monitoreando al cliente(servidor en Windows 7). Usar´e Ubuntu 13 corriendo en una m´aquina virtual (VirtualBox) con una direccion IP: 192.168.1.2. Ah´ı se instalar´a Nagios Core 4, Nagios Plugins 1.5 y Vautour Style. Maquina 2 : Ser´a el servidor monitoreado por Nagios. Usar´e Windows 7 Proffesional de 64 Bits y ser´a el sistema residente que estar´a albergando el programa VirtualBox que tiene corriendo a Ubuntu 13. Contar´a con una direccion IP: 192.168.1.3. Ah´ı se instalar´a el software NSClient++ de 64 bits configurado para Nagios. Ambos sistemas operativos tendr´an conectividad IP mediante el VirtualBox Host Adapter para poder realizar la practica.
8
4.
Desarrollo Paso a Paso
4.1.
Instalaci´ on de Nagios Core 4
Para que Nagios se puede instalar correctamente, lo primero que necesitamos es instalar unas dependencias de las cuales Nagios hace uso. Estando en la m´aquina 1: Vamos a una terminal, entramos como super usuario e instalamos: $ # # #
sudo su apt-get install wget apt-get install build-essential apache2 php5-gd libgd2-xpm apt-get install libgd2-xpm-dev libapache2-mod-php5
Luego, procedemos a descargar los archivos tarballs (.tar) del core y de los plugins del core de Nagios. # cd /tmp # wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.0.tar.gz # wget https://www.nagios-plugins.org/download/nagios-plugins-1.4.15.tar.gz Creamos el usuario nagios con su respectivo grupo: # # # #
useradd nagios groupadd nagcmd usermod -a -G nagcmd nagios /usr/sbin/usermod -a -G nagcmd www-data Descomprimimos los archivos .tar descargados anteriormente:
# tar zxvf nagios-4.0.0.tar.gz # tar zxvf nagios-plugins-1.4.15.tar.gz Nos cambiamos al directorio donde quedo descomprimido Nagios Core 4 (Nagios) y configuramos el script de instalaci´on: # cd nagios # ./configure --with-command-group=nagcmd
9
Compilamos e instalamos el software: # # # # # #
make make make make make make
all install install-init install-config install-commandmode install-webconf
Definimos usuario y contrase˜ na de acceso para la interfaz web de Nagios, esta contrase˜ na tambien se usar´a posteriormente en la instalacion de NSClient++. # htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin Enter Password: nagiosadmin Reiniciamos el servidor web apache para que los cambios realizados surgan efecto: # /etc/init.d/apache2 reload
4.2.
Instalaci´ on de Nagios Plugins
El siguiente paso es instalar los plugins de Nagios, vamos a una terminal y como superusuario: # cd /tmp/nagios-plugins-1.4.15 Configuramos el script de instalaci´on con los siguientes par´ametros: # ./configure --with-nagios-user=nagios --with-nagios-group=nagios Compilamos e instalamos los plugins: # make # make install
4.3.
Configuraci´ on del demonio Nagios
A partir de la version 12 de la distribucion de Ubuntu, es necesario descargar un script que se debe ejecutar cada vez que se quiera iniciar el demonio de nagios. Lo descargamos de este link y lo renombramos como nagiosfix : http://eldespistado.com/?wpdmact=process&did=NS5ob3RsaW5r Cambiamos permisos de ejecuci´on al archivo que acabamos de descargar: # chmod 777 nagiosfix Y cuando se desee iniciar Nagios ejecutamos el script de la siguiente manera: # ./nagiosfix start Funciona de la misma manera para detener (stop), reiniciar (restart) y ver el status (status). 10
4.4.
Instalaci´ on de Vautour Style
La interfaz web que trae por defecto Nagios (ver figura 6), no es muy intuitiva por lo que se recomienda instalar un skin que mejore la comprension y el rendimiento a la hora de manipular el software.
Figura 6 . Interfaz web por defecto de Nagios Desde una terminal como superusuario, instalamos Unzip, descargamos el Vautour Style y extraemos su contenido asi: # # # #
cd /tmp apt-get install unzip wget http://www.be-root.com/downloads/nagios/vautour/vautour_style.zip unzip vautour_style.zip -d /usr/local/nagios/share/
Nota: Si al descomprimir el archivo vautour-style.zip, Unzip pregunta que si desea reemplazar contenido digitamos la letra A para reemplazar todos los archivos. Si todos los pasos estan correctos reiniciamos el servidor web apache y el demonio Nagios: # /etc/init.d/apache2 # ./nagiosfix restart Abrimos un navegador web e ingresamos a la siguiente direcci´on: http://localhost/nagios 11
Nos aparecera esta ventana de login en donde deberemos ingresar con nuestro usuario nagiosadmin y su respectiva contrase˜ na:
Figura 7 . Login de Nagios Asi pues, la nueva interfaz web de Nagios (ver figura 8), quedar´ıa con el siguiente aspecto:
Figura 8 . Interfaz web de Nagios con Vautour Style 12
4.5.
Instalaci´ on de NSClient++ en Windows
Estando en nuestra maquina 2 con sistema operativo Windows, entramos con nuestro navegador a esta pagina web: http://nsclient.org/nscp/downloads Y descargamos el instalador de NSClient++, para realizar esta practica, descargaremos el instalador de 64 bits.
Figura 9 . Sitio de descarga oficial de NSClient++ Ejecutamos el archivo con permisos de administrador, aceptamos terminos de licencia y procedemos a realizar la siguiente configuraci´on: En el campo Allowed hosts , digitamos la direccion IP de la maquina 1 (Ubuntu 13 donde reside Nagios). En el campo NSClient Password, digitamos la contrase˜ na de nuestro usuario nagiosadmin, en este caso es nagiosadmin. En la misma ventana, checkeamos las siguientes opciones: Enable common check plugins. Enable nsclient server (check-nt). Enable VMI checks.
13
De tal manera que la primera ventana de configuraci´on nos quede asi:
Figura 10 . Primera ventana de configuraci´on de NSClient++. Luego damos click en Instalar y esperamos unos minutos a que la instalaci´on termine. Ahora procederemos a realizar una configuraci´on de inicio de sesion para el servicio de NSClient++:
Figura 11 . Servicio de NSClient++. 14
Abrimos las propiedades de este servicio y en la pesta˜ na de Iniciar Sesion, checkeamos: Permitir que el servicio interact´ ue con el escritorio. Asi nos debe de quedar esta pesta˜ na:
Figura 12 . Inicio de sesion - Servicio NSClient++.
15
Damos click en aplicar y luego en aceptar. Finalmente, procederemos a reiniciar el servicio para que los cambios sean aplicados exitosamente.
Figura 13 . Reinicio del Servicio NSClient++.
4.6.
Configuraci´ on de NSClient++ en Ubuntu
Para que nuestro servidor principal en donde esta Nagios pueda conectarse con el NSClient++ de Windows, es necesario hacer unas modificaciones en los archivos de configuraci´on que trae este por defecto. Primero abrimos el archivo de configuraci´on de Nagios: # sudo gedit /usr/local/nagios/etc/nagios.cfg En este archivo, buscamos y descomentamos la siguiente l´ınea (le borramos el numeral) para habilitar la configuraci´on del plugin para NSClient++: cfg_file=/usr/local/nagios/etc/objects/windows.cfg Luego abrimos el archivo de configuraci´on de contrase˜ nas: # gedit /usr/local/nagios/etc/objects/commands.cfg Buscamos la sentencia check nt y agregamos la contrase˜ na de nuestro usuario nagiosadmin asi (ver figura 14): 16
Figura 14 . Archivo de configuraci´on de contrase˜ nas Luego, debemos agregar la direccion IP del servidor que queremos monitorear con NSClient++. Abrimos el archivo windows.cfg: # gedit /usr/local/nagios/etc/objects/windows.cfg De tal manera que nos quede asi:
Figura 15 . Archivo de configuraci´on del servidor NSClient++ de Windows 17
Y reemplazamos la palabra winserver por el nombre del equipo que queremos monitorear, esto se puede realizar mediante la opci´on buscar y reemplazar (ver figura 16) que trae el editor gedit:
Figura 16 . Archivo de configuraci´on del servidor NSClient++ de Windows Finalmente y luego de seguir al pie de la letra esta gu´ıa, comprobamos que ya podemos monitorear nuestro servidor Windows. Reiniciamos el demonio Nagios: # .\nagiosfix restart Abrimos nuestro navegador y observamos que el servidor CyberValley-PC de Windows ya aparece en la pagina principal de Nagios (ver figura 17):
18
Figura 17 . P´agina principal de Nagios Asi como el estado de los servicios del servidor Windows (ver figura 18):
Figura 18 . P´agina principal de Nagios
19
5.
Recomendaciones e Inconvenientes El script de inicio que venia en el manual no funciono en ubuntu 13 por lo que se opt´o en usar uno encontrado en la web el cual fue un aporte de un bloggero de la pagina de eldespistado.com. Se recomienda buscar manuales dependendiendo de la distribuci´on de linux que se vaya a usar. A veces, cuando reiniciaba el demonio de nagios no hacia el refresco correspondiente, esto debido al script de inicio del demonio de nagios que fue adaptado de redhat a ubuntu. La interfaz que presentaba por default Nagios no era muy intuitiva por lo que se opto en buscar una nueva interfaz que diera mas entendimiento para su uso, aunque existen muchas mas interfaces, personalmente la recomiendo por que me facilit´o la usabilidad del software. Vautour Style fue publicado por un bloggero en el foro de ayuda de nagios. La escasa documentacion de la instalacion en espa˜ nol y sobre todo para las nueva versi´on de ubuntu es un aspecto importante para tener en cuenta. Asi mismo como la informaci´on de la instalaci´on estaba en ingles, los manuales de usuario tampoco estaban traducidos por lo que a la hora de leerlos se debe de tener un buen nivel de ingles. Cuando instal´e apache2 me genero conflicto con una configuraci´on que habia hecho previamente, asi que recomiendo hacer copia de seguridad de los archivos de configuraci´on de apache2.
20
6.
Conclusiones Nagios es una buena alternativa para principiantes en la gestion de redes. Nagios permite reducir costos de administracion y gestion de redes al ser software libre. Nagios brinda una muy buena adaptabilidad a las necesidades que presenta la red. Nagios es flexible y eficiente para el uso en redes existentes. Nagios permite utilizar diversos plugins que abundan en la web. Nagios permite chequeo en paralelo (usando Forking).
21