ÍNDICE MEMORIA Índice memoria ..........................................................................................1 Capítulo 1: PREÁMBULO........................................................................ 3 Capítulo 2: INSTALACIÓN DEL SISTEMA OPERATIVO ........................... 4 2.1. Configuración IP fija.....................................................................5 2.2. Añadir DNS.................................................................................6 Capítulo 3: INSTALACIÓN DE NAGIOS .................................................. 7 3.1. Preinstalación..............................................................................7 3.2. Creación de cuentas de usuario .....................................................8 3.3. Descarga e instalación de Nagios ...................................................9 3.4. Iniciar Nagios automáticamente .................................................. 11 Capítulo 4: INSTALACIÓN DEL NPN4NAGIOS...................................... 13 Capítulo 5: NAGVIS............................................................................. 19 5.1. Iniciar automáticamente NagVis .................................................. 23 -1- CAPÍTULO 1: PREÁMBULO En este documento se recogen todos los pasos necesarios para la instalación y configuración de todos los programas y addons descritos en la memoria. También se recogen las configuraciones hechas de cara al servidor para las necesidades del sistema descrito. Seguidamente se exponen una serie de aclaraciones de cara al lector para entender mejor la estructura seguida para la creación de este archivo. • Se diferenciarán las líneas de código escritas dentro de un archivo de los comandos ejecutados en la consola del servidor mediante recuadros de diferente color. De color azul se representarán las líneas de código referidas a algún archivo y en color rojo los comandos utilizados en la consola. Esto es un ejemplo de línea de código Esto es un ejemplo de comando • Se ha utilizado siempre el programa nano provisto por el sistema operativo del servidor para abrir y modificar archivos de texto. También se puede usar otros programas como el vi. • Las barras abiertas “\” separan dos opciones posibles para un mismo fin, las barras cerradas “/” nos indican el camino de algún archivo, carpeta por carpeta o en una dirección web. • En la mayoría de comandos que se verán se ejecutan con el comienzo “sudo” que significa “superuser do”, depende del tiempo de inactividad del servidor pedirá contraseña para verificar la autenticidad del usuario. Sin el “sudo” delante muchos comandos no se ejecutan por seguridad. -3- Ares Gandul Soto CAPÍTULO 2: INSTALACIÓN DEL SISTEMA OPERATIVO Primeramente se ha de descargar el instalador de la página web oficial de Ubuntu Server. La versión instalada en su momento fue la 9.10. Seguidamente de ha de grabar en un CD para la posterior instalación, priorizando desde la bios el acceso de la CD-ROM al reiniciar el PC. Si se posee conexión a Internet, conectar el PC a la red y permitir la configuración mediante DHCP en el paso especifico. El sistema necesita la creación de tres particiones en el disco duro durante la instalación: • Partición de intercambio de archivos (partición lógica del 5% de la capacidad total del disco duro). • Partición para el sistema (partición del 10% de la capacidad restante del disco duro). • Partición para datos (partición lógica del resto del disco duro) -4- Sistema de monitorización y control de un proceso de programación de vehículos Instalación de programas auxiliares para Ubuntu Server: • PHP Hypertext Pre-processor. • OpenSSH server. • Samba file server. • Apache HTTP server 2. • MySQL database. • Postfix 2.1. Configuración IP fija Como se ha comentado antes si se posee conexión a Internet, conectar el PC a la red y permitir la configuración automática mediante DHCP en el paso especifico. Si no se dispone de conexión a Internet o se quiere disponer de una IP fija en cualquier modo, seguir los siguientes pasos: Utilizar el siguiente comando en la consola del servidor Ubuntu: $ sudo nano /etc/network/interfaces De esta manera accedemos al archivo de configuración de red y substituimos: auto eth0 iface eth0 inet dhcp Por: auto eth0 iface eth0 inet static address #insertar la ip (inet addr) la que se desee (es la opción más # lógica para un ip estática perteneciente a una red local) netmask #insertar mascara de sub red network #misma ip introducida en address cambiando la ultima cifra por # 0 -> *.*.*.0 broadcast #Insertar direccón de broadcast getway #Insertar puerta de enlace del router -5- Ares Gandul Soto 2.2. Añadir DNS En caso de querer una IP fija pero con conexión a Internet se necesitará la configuración de las DNS. Para añadir las DNS debemos editar el archivo /etc/resolv.conf de la siguiente manera: search com name server 64.125.134.133 name server 64.125.134.132 NOTA: Añadir las DNS según compañía contratada, esas DNS pertenecen a la compañía Jazztel. La línea “search com” añade “.com” al final del comando en caso de omitirlo. Ej. ping Google ping Google.com Una vez añadido todo esto debemos reiniciar la configuración de red de la siguiente manera: $ sudo /etc/init.d/networking restart -6- Sistema de monitorización y control de un proceso de programación de vehículos CAPÍTULO 3: INSTALACIÓN DE NAGIOS 3.1. Preinstalación Antes de proseguir con la instalación del programa principal del sistema, se deben instalar una serie de paquetes, ubicados en el servidor por defecto, necesarios para el correcto funcionamiento de Nagios. En la consola del servidor aplicamos los siguientes comandos para la instalación de los paquetes y librerías necesarios: $ sudo apt-get install make $ sudo apt-get install php5-gd $ sudo apt-get install gcc $ sudo apt-get install build-essential $ sudo apt-get install libgd2-xpm $ sudo apt-get install apache2 $ sudo apt-get install php5 $ sudo apt-get install libapache2-mod-php5 -7- Ares Gandul Soto Si se produjera algún error por la falta de algún paquete, intentar una actualización del sistema si es accesible la conexión a Internet, mediante el comando: $ sudo apt-get update Si tampoco es accesible Internet por parte del servidor, buscar los paquetes extraviados mediante una búsqueda en Internet por medio de otro PC y traspasarlos después al servidor, mediante CD o pendrive. 3.2. Creación de cuentas de usuario Para la identificación del personal autorizado para acceder al servidor, se deben crear cuentas de usuario con sus respectivas contraseñas. Primero se crea una cuenta principal de usuario (por ejemplo usuario nagios): $ sudo /usr/sbin/useradd -m nagios Seguidamente se crea la contraseña para este usuario (por ejemplo contraseña nagios): $ sudo passwd nagios Se crea también un grupo de seguridad llamado, por ejemplo nagios: $ sudo /usr/sbin/groupadd nagios Se añadirá el usuario "nagios" a este grupo con el comando: $ sudo /usr/sbin/usermod -G nagios nagios Se creará otro grupo de seguridad para permitirle la ejecución de comandos externos a través de la interfaz web, con nombre "nagcmd": $ sudo /usr/sbin/groupadd nagcmd -8- Sistema de monitorización y control de un proceso de programación de vehículos También se añadirá al grupo creado anteriormente el usuario "nagios": $ sudo /usr/sbin/usermod -G nagcmd nagios Por último también agregaremos a este grupo el usuario de Apache "www-data": $ sudo /usr/sbin/usermod -G nagcmd www-data 3.3. Descarga e instalación de Nagios Una vez instalados los paquetes necesarios y creados los usuarios se procederá a descargar la última version de Nagios. Primero se crea una carpeta para alojar la descarga, dentro del directorio principal del usuario “/home/usuario” $ sudo mkdir decargas_nagios Accedemos al directorio creado mediante: $ cd descargas_nagios Descargamos el programa Nagios desde la web, si se dispone de acceso a Internet: $ sudo wget 2.3.1.tar.gz?download http://prdownloads.sourceforge.net/nagios/nagios- O $ sudo wget 3.0.5.tar.gz http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios- Descargaremos también los Plugins de Nagios, con el comando: $ sudo wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagiosplugins-1.4.13.tar.gz -9- Ares Gandul Soto En caso de no poder acceder desde el servidor, buscar otro PC con conexión a Internet, descargar el programa, los plugins y grabarlo en un CD o pendrive. Si se procede mediante la copia en un CD, insertar el CD en la CD-ROM del servidor y aplicar los siguientes comandos. Se monta la CD-ROM: $ sudo mount /dev/scd0 Se entra en la CD-ROM: $ cd /media/cdrom0 Finalmente se copia “descargas_nagios”: el archivo descargado del Nagios en la carpeta $ cp nagios-version.tar.gz /home/usuario/descargas_nagios La palabra “version” se encuentra en cursiva para indicar que allí se especificará la versión del archivo. Si se procede mediante el uso de un dispositivo pendrive, insertar el pendrive en el puerto USB del servidor y aplicar los siguientes comandos. Se monta el pendrive: $ sudo mount –t vfat /dev/sdb1 /media/external Se entra en el pendrive: $ cd /media/external Finalmente se copia “descargas_nagios”: el archivo descargado del Nagios en la $ cp nagios-version.tar.gz /home/usuario/descargas_nagios El último paso es descomprimir en archivo para su posterior instalación: $ sudo tar xvzf nagios-version.tar.gz - 10 - carpeta Sistema de monitorización y control de un proceso de programación de vehículos Una vez descomprimido el archivo se puede proceder a su instalación. Se entra en la carpeta donde reside el instalador: $ cd /home/usuario/descargas_nagios Se ejecutan los siguientes comandos para la instalación de Nagios: $ sudo ./configure --sysconfdir=/etc/nagios --with-command-group=nagmd --localstatedir=/var/nagios $ make all $ make install $ make install-init $ make install-commandmode $ make install-config 3.4. Iniciar Nagios automáticamente Si se necesita que Nagios arranque al encender el servidor o cada vez que se reinicie sin necesidad de identificar al usuario ni pedir contraseña. Recomendación: Detener Nagios antes de utilizar el comando si está ejecutándose, mediante el comando: $ sudo /etc/init.d/nagios stop Con el siguiente comando Nagios se añade a la lista de programas iniciados automáticamente. $ sudo update-rc.d nagios defaults 99 Si todo es correcto debería aparecer en pantalla algo parecido a esto: - 11 - Ares Gandul Soto $ /etc/init.d/nagios /etc/rc0.d/K99nagios $ /etc/init.d/nagios /etc/rc1.d/K99nagios $ /etc/init.d/nagios /etc/rc6.d/K99nagios $ /etc/init.d/nagios /etc/rc2.d/S99nagios $ /etc/init.d/nagios /etc/rc3.d/S99nagios $ /etc/init.d/nagios /etc/rc4.d/S99nagios $ /etc/init.d/nagios /etc/rc5.d/S99nagios Reiniciamos el servidor y antes de poner ningún usuario o contraseña comprobamos por web si Nagios se inicia. $ sudo reboot - 12 - Sistema de monitorización y control de un proceso de programación de vehículos CAPÍTULO 4: INSTALACIÓN DEL NPN4NAGIOS Se empieza descargando el addon pnp4nagios de la web oficial www.pnp4nagios.org, la versión utilizada en el sistema fue la 0.4.14. Después se copia en un CD o pendrive y se copia en el disco duro (ver punto 3.3). Se aconseja copiarlo y descomprimirlo en /usr/local/src mediante: - 13 - Ares Gandul Soto $ sudo cp (donde se encuentre el paquete)/pnp-0.4.14.tar.gz $ cd /usr/local/src $ sudo tar xvzf pnp-0.4.14.tar.gz Se entra en el directorio: $ cd /usr/local/src/pnp-0.4.14 Se configuran los archivos: $ sudo ./configure --sysconfdir=/etc/pnp (--sysconfdir=/etc/pnp ubica el directorio de configuración en /etc/pnp al contrario que el resto como se puede comprobar al final del extracto del comando. /configure , se ubican allí para el correcto funcionamiento del addon al seguir la nomenclatura y distribución de archivos propuesto en este documento) (para ver la distribución de directorios en el sistema, tal como se puede ver al final del ./configure, ir a la pagina www.pnp4nagios.org en el apartado de la guía de instalación) Se compilan los programas necesarios: $ sudo make all Se instalan los programas necesarios: $ sudo make install Después pide la ejecución del comando: $ make install-config De esta forma los ficheros de configuración para process_perfdata.pl y npcd se copian a etc/pnp. - 14 - Sistema de monitorización y control de un proceso de programación de vehículos Para instalar el init script de NPCD se debe ejecutar tambien: $ make install-init Una vez instalado todo comprobar la ubicación correcta de los directorios de la base de datos Entrar en el archivo de configuración: $ sudo nano /etc/pnp/config.php Buscar las direcciones: … $conf[‘rrdtool’] = “/usr/bin/rrdtool” $conf[‘rrdbase’] = “/usr/local/nagios/share/perfdata” …. Y comprobar que existen esos directorios. Si no están comprobar la instalación del rrdtool o reinstalarlo. Después renombrar los archivos de configuración process_perfdata y rra de la siguiente manera: $ cd /etc/pnp $ sudo mv process_perfdata.cfg-sample process_perfdata.cfg $ sudo mv rra.cfg-sample rra.cfg Modificar el archivo process_perfdata.cfg: $ sudo nano process_perfdata.cfg - 15 - Ares Gandul Soto TMEOUT=5 USE_RRDs=1 RRDPATH=/usr/local/nagios/share/perfdata RRDTOOL=/usr/bin/rrdtool CFG_DIR=/etc/pnp RRD_HEARTBEAT=8460 RRA_CFG=/etc/pnp/rra.cfg RRA_STEP=60 LOG_FILE=/usr/local/nagios/var/pnp-perfdata.log LOG_LEVEL=0 XML_ENC=UTF-8 Modificar el archivo de configuración de Nagios: $ sudo nano nagios.cfg … illegal_macro_output_chars=`~$&|”<> process_performance_data=1 service_perfdata_command=service-perfdata-pnp … - 16 - Sistema de monitorización y control de un proceso de programación de vehículos En illegal_macro_output_chars se elimina el apostrofe dado que será un símbolo a utilizar. Las otras dos configuraciones se cambian tal como se muestra. Se crear un comando en commands.cfg $ sudo nano commands.cfg … define command{ command_name service-perfdata-pnp command_line /usr/bin/perl $USER1$/process_perfdata.pl } Ya esta listo el programa para ver el resultado abrir el explorador e ir a la siguiente dirección: http://servidor/nagios/pnp/index.php Si se quiere añadir un icono en un servicio de un host de Nagios para ir directamente a la web de estadísticas, por ejemplo del host “maquina” en su servicio “hola”, abrimos el archivo de configuración de servicios: $ sudo nano /usr/local/nagios/etc/objects/services.cfg - 17 - Ares Gandul Soto define service{ …. Hostname maquina … service_description hola … action_url http://servidor/nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDE SC$ } Al reiniciar Nagios: $ sudo /etc/init.d/nagios restart Podremos ver un icono al lado del nombre del servicio que al seleccionarlo con el ratón nos enviará hacia la página web de estadísticas. - 18 - Sistema de monitorización y control de un proceso de programación de vehículos CAPÍTULO 5: NAGVIS En este capitulo se procederá a la instalación del addon NagVis. Se procederá a descarga del addon desde la página web oficial http://www.nagvis.org/downloads, se copiará en un CD o pendrive y se pasará al servidor (ver punto 3.3). Una vez en el directorio pertinente se descomprimirá y se seguirán los siguientes pasos. Primero se determinarán los usuarios para los permisos del servidor web. $ sudo grep “Ûser” /etc/apache2/apache2.conf $ id www-data Después se designan los permisos mediante: - 19 - Ares Gandul Soto $ chown www-data.www-data –R /usr/local/nagios/share/nagvis $ chmod 664 /usr/local/nagios/share/nagvis/etc/nagvis.ini.php $ chmod 775 /usr/local/nagios/share/nagvis/nagvis/images/maps $ chmod 664 /usr/local/nagios/share/nagvis/nagvis/images/maps/* $ chmod 775 /usr/local/nagios/share/nagvis/nagvis/etc/maps $ chmod 664 /usr/local/nagios/share/nagvis/nagvis/etc/maps/* $ chmod 775 /usr/local/nagios/share/nagvis/var $ chmod 664 /usr/local/nagios/share/nagvis/var/* Se modifica el nombre del archivo de configuración de NagVis para su correcto funcionamiento: $ cd /usr/local/nagios/share/nagvis/etc $ sudo cp config.ini.php.dist config.ini.php $ chown www-data.www-data config.ini.php $ chmod 664 config.ini.php Se abre y modifica el archivo tal como sigue para su configuración final. $ sudo nano config.ini.php - 20 - Sistema de monitorización y control de un proceso de programación de vehículos [global] language=”german” refreshtime=60 [defaults] Backend= “ndomy_1” Icons=”std_medium” Recognizeservice=1 Onlyhardstate=1 [wui] Autoupdatefreq=25 Maplocktime=5 - 21 - Ares Gandul Soto [paths] Base=” /usr/local/nagios/share/nagvis” Htmlbase=” /nagios/nagvis/” Htmlcgi=” /nagios/cgi-bin” [Backend_ndomy_1] Backendtype=”ndomy1” Dbhost=”localhost” Dbport=3306 Debename=”nagios” Debeuser=”nagios” Dbpass=”verysecret” Dbprefix=”nagios_nagios” Por último reiniciar el servidor para completar la configuración. $ sudo reboot - 22 - Sistema de monitorización y control de un proceso de programación de vehículos 5.1. Iniciar automáticamente NagVis Como en el caso de Nagios si es necesario el arranque automático de NagVis junto al de Nagios sin necesidad de acceder al servidor debemos configurar su inicio de la siguiente manera: Buscamos el archivo rc.local debe encontrarse dentro de la carpeta init.d/ (carpeta donde se encuentran los archivos con las secuencias y los programas de arranque): Recomendación: Detener Nagios y NagVis antes de todo. $ sudo locate rc.local Una de las opciones mostradas debería ser: /etc/init.d/rc.local Se edita el archivo: $ sudo nano /etc/init.d/rc.local Bajamos hasta el final del documento y después de la última línea de código dejamos un espacio y añadimos: if [ -x /usr/local/nagios/bin/ndo2db-3x ]; then echo -n ' ndo2db-3x' /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg chmod 770 /usr/local/nagios/var/ndo.sock fi Una vez hecho esto se guarda el documento y reiniciamos el servidor: $ sudo reboot Antes de poner ningún usuario o contraseña comprobamos por web si NagVis se inicia. (Para que funcione correctamente Nagios también se debe iniciar automáticamente en el arranque del servidor, la descripción de ese proceso se encuentra en el punto 3.4.) - 23 -