Buscar este blog

martes, 23 de julio de 2013

Instalación de Nagios plugin para Cacti (sobre CentOS)


   En entradas anteriores (aquí, aquí y aquí), hemos explicado como instalar un servidor Centos, y sobre ese mismo servidor, instalar Nagios y Cacti. Hoy voy a explicaros como instalar el plugin de Nagios para Cacti. Este plugin, lo que hace es permitir que Cacti pueda leer datos de Nagios, proveyendo un dashboard para monitorizar Nagios desde la propia web de Cacti, así como poder importar los equipos que tenemos en Nagios de forma directa en Cacti. Podéis encontrar mas información sobre este plugin en su pagina.
   Para comenzar, nos posicionaremos en el directorio root, y descargaremos y descomprimiremos las ndoutils, que son prerrequisito para la instalación de NPC:
  • cd /root/ ; web http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b7/ndoutils-1.4b7.tar.gz ; tar -xvf ndoutils-1.4b7.tar.gz
   Entramos en el directorio que se acaba de crear con la descompresión del archivo, compilamos e instalamos. Comprobad que la ruta a las librerías de sql es la correcta:
  • cd /root/ndoutils-1.4b7 ; ./configure --disable-pgsql --with-mysql-lib=/usr/lib/mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios ; make
   Una vez hecho esto, tenemos que descargar el fichero del plugin de nagios for cacti desde mediafire: aquí. Cuando hayamos descargado el archivo con la ultima versión, lo copiamos en el directorio root del servidor, para ello podemos usar una herramienta como Winscp (si estamos instalando el servidor desde Windows y no tenemos interfaz grafica desde Linux (no se puede usar el comando wget en este caso). Para copiar el archivo con Winscp, seguid los siguientes pasos:
  • Ejecutamos Winscp y nos logamos con el usuario root
image
  • Localizamos el fichero tar.gz que acabamos de descargar de mediafire y lo arrastramos a la sección derecha (carpeta root)
image
  • Pulsamos copy y comenzara la copia del archivo
image
   Cuando hayamos copiado el archivo al servidor, continuamos la instalación descomprimiendo el fichero, y copiando su contenido al directorio de plugins de cacti (Acordaos de comprobar que las rutas son las correctas):
  • cd /root ; tar -xvf npc-2.0.4.tar.gz ; cp -R /root/npc /var/www/html/cacti/plugins
   Ahora debemos mover varios ficheros de ndoutils a las ubicaciones correctas. Es importante en este paso que todas las rutas sean las correctas:
  • cp /root/ndoutils-1.4b7/src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o ; cp /root/ndoutils-1.4b7/config/ndomod.cfg /usr/local/nagios/etc/ndomod.cfg ; cp /root/ndoutils-1.4b7/src/ndo2db-3x /usr/local/nagios/bin/ndo2db ; cp /root/ndoutils-1.4b7/config/ndo2db.cfg /usr/local/nagios/etc/ndo2db.cfg
   Debemos configurar nagios para usar TCP en lugar de UDP, para ello, modificaremos el archivo ndomod.cfg que acabamos de copiar:
  • vi +/output=127.0.0.1 /usr/local/nagios/etc/ndomod.cfg
image
   Cambiamos el tipo de socket a TCP:
  • vi +/output_type=tcpsocket /usr/local/nagios/etc/ndomod.cfg
image
   También cambiaremos el tipo de socket en el fichero ndo2db.cfg:
  • vi +/socket_type=unix /usr/local/nagios/etc/ndo2db.cfg
image
   Ahora añadimos la configuración de ndomod al fichero nagios.cfg y modificamos la línea de process performance:
  • echo "broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg" >> /usr/local/nagios/etc/nagios.cfg ; sed -i 's/process_performance_data=0/process_performance_data=1/g' /usr/local/nagios/etc/nagios.cfg
   Modificamos el fichero ndo2db.cfg para adaptarlo a nuestro entorno. Si vas a copiar y pegar, acuérdate de modificar antes los datos para adaptarlos a tu entorno:
  • sed -i 's/db_host=localhost/db_host=127.0.0.1/g' /usr/local/nagios/etc/ndo2db.cfg ; sed -i 's/db_name=nagios/db_name=cacti/g' /usr/local/nagios/etc/ndo2db.cfg ; sed -i 's/db_prefix=nagios_/db_prefix=npc_/g' /usr/local/nagios/etc/ndo2db.cfg ; sed -i 's/db_user=ndouser/db_user=cacti/g' /usr/local/nagios/etc/ndo2db.cfg ; sed -i 's/db_pass=ndopassword/db_pass=Novadesk_Centos_Demo/g' /usr/local/nagios/etc/ndo2db.cfg ; chmod go+r /usr/local/nagios/etc/ndomod.cfg ; chmod go+r /usr/local/nagios/etc/ndo2db.cfg
   Ahora descargamos los plugins necesarios para Cacti, los movemos al directorio adecuado y los descomprimimos:
  • cd /var/www/html/cacti/plugins ; wget http://docs.cacti.net/_media/plugin:settings-v0.7-1.tgz ; mv plugin\:settings-v0.7-1.tgz settings-v0.7-1.tgz ; tar -xvf settings-v0.7-1.tgz ; cd /var/www/html/cacti/plugins ; wget http://docs.cacti.net/_media/plugin:monitor-v1.2-1.tgz ; mv plugin\:monitor-v1.2-1.tgz monitor-v1.2-1.tgz ; tar -xvf monitor-v1.2-1.tgz
  Una vez hecho todo esto, abrimos Cacti en el navegador, nos logamos y desde la opción Console, pulsamos en plugin management:
image
   Comprobamos que el plugin NPC es visible, pero no esta instalado. Para instalarlo, pulsamos el botón azul de la columna actions:
image
   Una vez instalado hay que habilitarlo, para lo cual tenemos que pulsar el botón verde de la columna actions:
image
   Ahora el status del plugin debería de ser “Active”
image
   Modificaremos las opciones de NPC entrando en la consola, opción settings y pestaña NPC:
image
   Ahora, vamos a cargar la base de datos con las tablas adecuadas, para ello, nos posicionamos en el directorio db de las ndoutils y las creamos usando el script installdb (modificar las opciones de acuerdo a nuestro entorno):
  • cd /root/ndoutils-1.4b7/db/ ; ./installdb -u root -p "Novadesk_Centos_Demo" -h localhost -d cacti
   Crearemos un script para que arranque la base de datos al inicio del sistema:
  • vi /etc/init.d/ndo2db
   Le copiamos el contenido de este script:
https://sites.google.com/site/ryanmelissari/home/nagios-on-centos-63/ndo2db-script
   Cambiamos los permisos del fichero que acabamos de crear:
  • chmod gou+x /etc/init.d/ndo2db
   Iniciamos el servicio de la base de datos y lo configuramos para que se inicie automáticamente con cada arranque del sistema.
  • /etc/init.d/ndo2db start ; chkconfig ndo2db on
   Si no estaba hecho ya, añadimos el usuario nagios al grupo apache
  • usermod -a -G nagios apache
   Modificamos la seguridad del directorio nagios:
  • chcon -R -t httpd_sys_content_t /usr/local/nagios
   Corregimos los permisos del directorio plugins de cacti y del directorio Nagios:
  • chown -R nagios:apache /var/www/html/cacti/plugins ; chown -R nagios:nagios /usr/local/nagios
   Si no estaba hecho ya, reiniciamos nagios y lo configuramos para que se arranque al inicio:
  • chkconfig nagios on ; service nagios restart
   Cambiamos la configuración del pooler de cacti para que se ejecute cada 60 seg. (esto es opcional):
  • crontab –e
    • */1 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
image
   Reiniciamos el servidor:
  • shutdown -r now
   Comprobamos que todo esta correcto y que desde cacti se monitoriza el localhost con NPC:
image
   En el caso de que la pestaña de NPC no sea visible (aunque debería serlo por defecto), en la consola de cacti, entramos en la opción User Management  y en la pestaña Realm Permissions comprobaremos que están marcadas las opciones NPC y NPC global commands:
image
   Por último, si NPC no dibuja correctamente el status map de Nagios, pero en Nagios si funciona, lo que hay que hacer es entrar en la opción settings de la consola de cacti, luego en la pestaña NPC y modificar la nagios URL cambiándola por algo que no sea localhost (por ejemplo, por la ip real del servidor nagios).
   Espero que este pequeño tutorial os haya sido de utilidad. Nos vemos en breve con mas tutoriales.
Un saludo a todos.

miércoles, 10 de julio de 2013

Instalación de Nagios en CentOS

   Continuando en la línea de los post anteriores en los que os indicaba como realizar la instalación de un servidor Centos y Cacti sobre ese mismo servidor, hoy os traigo un manual para realizar la instalación de Nagios en ese mismo sistema. Nagios es una herramienta de monitorización muy potente y personalizable que chequea de forma constante el estado de equipos y servicios, bien por SNMP o por medio de un agente. Podéis encontrar información sobre esta herramienta en multitud de sitios de internet, pero os recomiendo que visitéis su pagina oficial aquí.
   En primer lugar, nos logamos en el servidor y nos posicionamos en el directorio root. Una vez ahí, descargamos la última versión de Nagios, y la descomprimimos:
  • cd /root/ ; wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.4.tar.gz ; tar -xvf nagios-3.4.4.tar.gz
   Ahora, creamos el usuario nagios, el grupo nagcmd y añadimos al grupo los usuarios nagios, apache y cacti (el usuario cacti solo debemos añadirlo en caso de que estemos instalando cacti y nagios en el mismo sistema y tengamos pensado conectarlos):
  • useradd -s /bin/bash nagios ; groupadd nagcmd ; usermod -G nagcmd nagios ; usermod -G nagcmd apache ; usermod -G nagcmd cacti
      Compilamos e instalamos Nagios:
  • cd /root/nagios/ ; ./configure --with-command-group=nagcmd ; make all ; make install ; make install-init ; make install-config ; make install-commandmode ; make install-webconf
Ahora, instalamos los plugins de monitorización de servicios de Nagios. Para ello nos posicionamos en el directorio root de nuevo y descargamos y descomprimimos los plugins:
  • cd /root/ ; wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz ; tar -xvf nagios-plugins-1.4.16.tar.gz
   Entramos en el directorio de los plugins, configuramos, compilamos e instalamos:
  • cd /root/nagios-plugins-1.4.16 ; ./configure --with-nagios-user=nagios --with-nagios-group=nagios ; make ; make install
   Ahora instalamos el programa que nos permite ejecutar los plugins de Nagios en remoto en sistemas Linux, llamado NRPE. NRPE funciona en modo cliente servidor, por lo que para que todo funcione correctamente una vez instalado en nuestro servidor de Nagios, hay que instalarlo como servicio en los equipos remotos. Para instalar NRPE en nuestro servidor, nos posicionamos en el directorio root, descargamos la última versión de NRPE y la descomprimimos:
  •  cd /root ; wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz ; tar -xvf nrpe-2.13.tar.gz
   Nos posicionamos en el directorio que acabamos de descomprimir, compilamos e instalamos:
  • cd /root/nrpe-2.13 ; ./configure ; make ; make install
    Ahora, modificamos el archivo commands.cfg en nagios para habilitar los chequeos usando nrpe. Para ello modificamos el fichero:
  • vi /usr/local/nagios/etc/objects/commands.cfg
   Y añadimos las siguientes líneas:
image
   Iniciamos el servicio Nagios:
  • /etc/rc.d/init.d/nagios start
   Cambiamos la contraseña del usuario admin y del usuario nagiosadmin en nagios:
  • htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
  • htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
   Ya tenemos nuestra instalación de Nagios Lista. En los próximos días, subiré un post con la configuración básica a realizar.

lunes, 8 de julio de 2013

Instalación de Cacti en Centos

   Siguiendo con este post de la semana pasada en el que os indicaba como realizar la instalación de un servidor Centos, hoy vamos con un manual sobre la instalación de Cacti en Centos. Cacti es un sistema de monitorización de servicios basado en SNMP orientado a la generación de estadísticas gráficas. Podéis encontrar mas información sobre Cacti en su pagina oficial Aquí.

   Para comenzar la instalación, nos conectamos a nuestro servidor por SSH, nos logamos en el con el usuario Root, y comenzamos instalando los prerrequisitos del sistema:

  • yum install -y mysql-server mysql-devel php-mysql php-devel php php-snmp httpd net-snmp net-snmp-devel net-snmp-utils rrdtool rrdtool-devel ruby-rrdtool gcc make wget

   Wget no es un prerrequisito en si, pero nos hará falta mas adelante para descargar el programa. Una vez que haya finalizado la instalación de los prerrequisitos, nos colocamos en el directorio root, descargamos la última versión de cacti de la pagina web y la descomprimimos:

   Una vez hecho esto, dejamos momentáneamente el software de Cacti, y pasamos a configurar mysql. Para ello, primero arrancamos el servicio y lo configuramos para que arranque al inicio del sistema:

  • service mysqld start ; chkconfig mysqld on

   Ejecutamos el asistente de configuración inicial de SQL para cambiar la contraseña de root de SQL. En cuanto a las preguntas sobre seguridad, podemos decir a todo que si sin problemas:

  • mysql_secure_installation

   Creamos el usuario cacti en el sistema, lo configuramos para que no se pueda iniciar sesión con el y para que sea miembro del grupo Apache:

  • useradd -s /sbin/nologin -M -N -G apache cacti

   Modificamos su contraseña con el comando:

  • passwd cacti

   Creamos e importamos la base de datos de cacti en mysql, para ello, modificaremos el fichero cacti.sql con la configuración de nuestro equipo y lo importaremos en el servidor SQL. Este paso es muy importante, repasadlo bien antes de ejecutarlo y modificad lo que sea necesario, password, rutas, etc.:

  • sed -i -e '1i USE cacti;' /root/cacti-0.8.8a/cacti.sql ; sed -i -e '1i CREATE DATABASE cacti;' /root/cacti-0.8.8a/cacti.sql ; echo "CREATE USER cacti;" >> /root/cacti-0.8.8a/cacti.sql ; echo "GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'Passw0rd’;" >> /root/cacti-0.8.8a/cacti.sql ; mysql -u root -p < /root/cacti-0.8.8a/cacti.sql

   Si os equivocáis, podéis eliminar el usuario cacti de SQL y la base de datos, ejecutando los siguientes comandos (luego repasáis el fichero y lo ejecutáis otra vez):

  • mysql -u root –p
    • drop user cacti;
    • drop database cacti;
    • exit;

   Para comprobar que la base de datos se ha creado correctamente, podéis ejecutar los comandos:

  •  mysql -u root –p
    • show databases;
    • exit;

   Debería aparecer algo así:

image

   Siguiendo la misma regla, comprobamos que el usuario cacti se ha creado correctamente:

  • mysql -u root –p
    • select * from mysql.user;
    • exit;

   Una vez configurada la base de datos de cacti en mysql, vamos a mover el directorio cacti que descomprimimos antes, desde la carpeta root hasta el directorio raíz de apache y haremos owner de esta carpeta al usuario cacti y al grupo apache (en este comando, asumimos que el directorio raíz esta por defecto, si se ha modificado, cambiar este comando con la ruta correcta):

  • mkdir -p /var/www/html/cacti ; cp -R /root/cacti-0.8.8a /var/www/html/cacti ; chown -R cacti:apache /var/www/html/cacti

   Ahora, modificamos la configuración de cacti para que pueda conectarse a la base de datos. Para ello, editamos el fichero config.php que se encuentra en el directorio include de cacti y (para editar con vi, tenemos que pulsar la tecla i y una vez que hayamos terminado de modificar el fichero, pulsamos esc y después crtl+w y crtl+q. Podéis encontrar mas info sobre vi aquí):

  • vi /var/www/html/cacti/include/config.php

   Modificamos las siguientes líneas:

image

   Una vez hecho esto, y a no ser que hayáis desactivado iptables, hay que abrir el puerto 80 en el firewall para las conexiones entrantes. Para ello, primero tomaremos nota del numero de línea del comando REJECT all en nuestra lista de iptables:

  • iptables -L INPUT --line-numbers

   El comando anterior, nos mostrara una salida como esta:

image

   En nuestro caso, el comando que descarta las conexiones en nuestro equipo se encuentra en la línea 5. Nuestra regla de permitir trafico en el puerto 80, debe encontrarse con un numero de línea inferior al numero de línea del comando Reject, o este descartara la conexión antes de que nuestro comando pueda permitirla (para mas información sobre el uso de iptables, podéis buscar aquí). Nosotros introduciremos nuestra línea en la posición 4:

  • iptables -I INPUT 4 -p TCP -m state --state NEW --dport 80 -j ACCEPT

   Una vez introducida la línea anterior, podemos comprobar que todo esta correcto repitiendo el paso:

  • iptables -L INPUT --line-numbers

   Deberíamos tener algo arecido a esto:

image

   Cuando comprobemos que todo esta bien, tenemos que salvar la configuración de iptables y reiniciar el servicio. Para ello, ejecutaremos los comandos:

  • service iptables save; service iptables restart

   Ahora, arrancaremos el servicio snmpd y lo configuraremos para que se inicie con el sistema (para cambiar la comunidad SNMP o la configuración del servicio, editaremos el fichero snmp.conf):

  • service snmpd start ; chkconfig snmpd on

   A continuación, habilitamos php en apache si no estaba hecho ya editando el fichero php.conf que se encuentra en conf.d

  • vi /etc/httpd/conf.d/php.conf

   Modificamos lo siguiente:

image

   Iniciamos el servicio Apache y lo configuramos para que arranque al inicio del sistema:

  • service httpd start ; chkconfig httpd on

    Ahora pasamos a la configuración visual. Iniciamos el asistente de configuración de cacti usando un navegador y conectándonos a la ruta: http://IP_servidor/cacti y seguimos los siguientes pasos:

image

image

image

   Nos logamos en http://IP_servidor/cacti con el usuario admin y la contraseña admin y cambiamos la contraseña por otra mas segura:

image

image

And Weel Done! Hemos finalizado nuestra instalación de cacti.

viernes, 5 de julio de 2013

Instalación de servidor CentOS 6.4

  En este tutorial vamos a indicar como realizar la instalación de un servidor CentOS versión 6.4. Para ello, primero descargamos centos versión: 6.4 aquí:

http://ftp.udl.es/pub/centos/6.4/isos/x86_64/

   Arrancamos el equipo con el DVD de instalación y seleccionamos Install or upgrade:

image

Una vez comenzada la instalación, el siguiente paso, el cuál es opcional, consiste en escanear el DVD para comprobar que no contiene ningún fallo. El proceso se repetirá con todos los DVD que nos hayamos descargado:

image

Una vez que hemos finalizado el testeo de los DVDs, nos aparecerá la pantalla de bienvenida del instalador. Pulsamos en siguiente:

image

En la siguiente pantalla, seleccionaremos el idioma en el que nos van a aparecer las opciones de instalación:

image

En el siguiente paso, elegiremos el tipo de almacenamiento que vamos a usar. Normalmente, se elegirá la opción por defecto, dispositivos de almacenamiento básico. En el caso de que vayamos a hacer una instalación avanzada con tecnologías de almacenamiento no estándar como Fibra sobre Ethernet (FCoE) o iSCSI, deberemos seleccionar la opción de dispositivos de almacenamiento especializados:

 image

La instalación seleccionara automáticamente el primer hdd disponible del sistema, y nos indicara si queremos mantener los datos existentes en el disco, o descartarlos:

image

A continuación, elegimos el nombre que vamos a usar para nuestro servidor:

image

Antes de pulsar siguiente en la pantalla anterior, pulsaremos en el botón de configurar red. Se nos abrirá una pantalla donde podemos configurar las opciones de red del servidor y la posibilidad de hacer que las tarjetas se activen de forma automática después de cada reinicio. Modificaremos las opciones de IPv4 atendiendo a nuestra infraestructura de red y seleccionaremos como Método Manual o DHCP según corresponda:

image

Una vez configurada la red con las opciones que elijamos, en la siguiente pantalla elegiremos la zona horaria en la que nos encontramos:

image

Introducimos la contraseña del superusuario root de nuestro servidor:

image

A continuación elegimos el tipo de particionamiento que vamos a usar en el disco. Para una instalación nueva, lo mejor es usar la primera opción, usar todo el espacio, la cual eliminara y reparticionará el espacio existente en el disco seleccionado para la instalación:

image

Aceptamos la confirmación para escribir los cambios seleccionados en el disco:

image

A continuación seleccionamos el grupo de paquetes (tipo de instalación) que se instalara en nuestro servidor. La selección del paquete Mínimal instalara un conjunto de paquetes mínimo adicionales al Kernel del sistema, lo que nos permitirá reducir la superficie de ataque del equipo, e incrementar la seguridad de nuestro sistema aunque no dispondremos de entorno grafico:

image

En la pantalla anterior, también se pueden añadir otros repositorios desde donde descargar paquetes, así como personalizar la lista de paquetes inicial a instalar. El siguiente paso, consiste en finalizar el asistente de instalación y nuestro sistema comenzara su instalación:

image

COMPROBACIONES POST-INSTALACION

Una vez finalizada la instalación, nos logamos en el servidor con el usuario root y la contraseña que hayamos elegido durante la instalación:

image

A continuación, comprobamos que disponemos de conectividad de red realizando ping a una dirección de internet. En caso de no poder llegar a internet, se realizaran las acciones de troubleshouting necesarias para conseguirlo antes de pasar a la siguiente sección:

image

Una vez comprobado que disponemos de conectividad de red, podemos comenzar la instalación de paquetes en nuestro servidor usando Yum. Inicialmente, podemos comenzar con una serie de paquetes básicos para que el sistema sea mas manejable:

  • Wget: Realiza una petición HTML GET a un servidor web para la descarga de un fichero
  • bash-completion: autocompleta los nombres de los ficheros o directorios cuando pulsamos el tabulador en el bash
  • nano: Editor de texto similar a vi, pero mas sencillo de usar.