1 Instalar y configurar LIbreNMS

1.1 Metas

1.2 Notas

2 Crear base de datos

NOTA: Estas instrucciones estan basadas en Instrucciones oficial de LibreNMS y fueron probadas con una instalación nueva de Ubuntu 14.04.

Vamos a trabajar como el usuario root:

    $ sudo bash

Ahora instala mysql y configurarlo:

    # apt-get install mysql-server mysql-client
    # mysql -uroot -p

Si te pide una contraseña por el usuario root de mysql elige que quieres, pero tiene que estar 100% seguro que se la recuerdas. Si ya tiene una contraseña de usuario root de mysql usala ahora.

Crear el base de datos:

CREATE DATABASE librenms;
GRANT ALL PRIVILEGES ON librenms.*
  TO 'librenms'@'localhost'
  IDENTIFIED BY '<CLASS_PASSWORD>'
;
FLUSH PRIVILEGES;
exit

POR FAVOR NOTA

Estamos usando <CLASS PASSWORD> como la contraseña para LibreNMS para darlo acceso MySQL. Por favor reemplaze <CLASS PASSWORD> con la contraseña del taller.

3 Instalar LibreNMS

Instalar todo el software requerido para que LibreNMS puede correr:

    apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-snmp \
        php-pear php5-curl snmp graphviz php5-mcrypt php5-json apache2 fping \
        imagemagick whois mtr-tiny nmap python-mysqldb snmpd mysql-client \
        php-net-ipv4 php-net-ipv6 rrdtool git

Aquí tenemos el comando arriba en una solo línea que puede ser mas facíl para copiar y pegar en su terminal.


apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-snmp php-pear php5-curl snmp graphviz php5-mcrypt php5-json apache2 fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd mysql-client php-net-ipv4 php-net-ipv6 rrdtool git


Tiene que tener snmpd configurado so no ha hecho este antes. Una configuración minima por snmpd es:

    rocommunity NetManage 127.0.0.1

Se puede poner esta línea en el archivo /etc/snmp/snmpd.conf y ejecutando el comando service snmpd restart para activar la configuración, pero por favor "NO haz esto si ya tiene configurado SNMP!

3.1 Fijar la Zona Horaria

# editor /etc/php5/apache2/php.ini

Busqua la línea que dice date.timezone y se ajusta a su zona horaria preferida. Puede ver http://php.net/manual/en/timezones.php o los archivos debajo /usr/share/zoneinfo por una lista de zonas horarias permitidas. Por este taller todo tiene que estar en la misma zona horaria, así vamos a usar UTC - POR FAVOR no elige otra zona horaria, porque causará problemas mas adelante.

En el archivo encontrar la linea:

;date.timezone =

Y cambiala a:

date.timezone = Etc/UTC

Graba y salga del archivo.

Después que cambia la zona horaria graba el archivo y abre:

# editor /etc/php5/cli/php.ini

y hacer el mismo cambio.

3.2 Clonación del código fuente LibreNMS con git

Instalamos LibreNMS usando el software git. Si Ud. no conoce git, puede leer el libro git o las pistas a git ready (estan en Inglés). La instalación inicial se lo hace usando el comando git clone. Las proxímas actualizaciones de LibreNMS se lo hace usando el comando git pull.

El git clone inicial puede demorar bastane, así tenmos una copia de repositorio git de LibreNMS en nuestra maquína local de noc.ws.nsrc.org.

Para instalar LibreNMS ejecuta el siguiente:

    # cd /opt
    # git clone http://noc.ws.nsrc.org/git/librenms.git librenms

3.3 Interfaz Web

Para prepara el interfaz web tiene que crear y cambiar los privilegios de dos directorios y, tambien, crear una definición de una host virtual por el servidor de Web Apache.

Primero creamos y cambianos los privilegios de los directorios:

    # cd /opt/librenms
    # mkdir rrd logs
    # chown www-data:www-data logs/ rrd/

Ahora creamos un archivo de configuración:

     # editor /etc/apache2/sites-available/librenms.conf

añadir las siguientes líneas:

<VirtualHost *:80>
  DocumentRoot /opt/librenms/html/
  ServerName  librenmsN.ws.nsrc.org
  CustomLog /opt/librenms/logs/access_log combined
  ErrorLog /opt/librenms/logs/error_log
  AllowEncodedSlashes NoDecode
  <Directory "/opt/librenms/html/">
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
  </Directory>
</VirtualHost>

OJO! - Cambia el "N" en librenmsN.ws.nsrc.org al número de su PC.

En Ubuntu 14.04 necesitamos un programa de php llamada mcrypt. Haz lo siguiente:

    # php5enmod mcrypt

Ahora habilitar el host virtual y reinicializar el servidor web Apache:

    # a2ensite librenms
    # a2enmod rewrite
    # service apache2 restart

3.4 Instalador Web

Se puede elegir de instalar a través la Web o en forma manual usando la línea de comandos. Vamos a usar el instalador web, que es mas facíl.

Para hacer la instalación mas facíl damos acceso al usuario www-data (que usa el servidor Web Apache) para que se puede escribir en el directorio /opt/librenms para crear el archivo de configuración.

Ejecute el siguiente comando

    # chown www-data /opt/librenms

Cambiaremos esta al usuario root mas adelante cuando terminamos (es más seguro).

Ahora puede empezar con el instalador Web llendo a:

http://librenmsN.ws.nsrc.org/install.php

Sigue las instrucciones en la pantalla (en Inglés):

Sugerimos que usa sysadm, y la contraseña del taller y su propio dirección de correo electrónico.

Nota: SI programa de instalación le dice que no se puede escribir al archivo de configuración puede ser que Ud. olvdio de correr chown www-data /opt/librenms.

Intenta de reparar el problema y recarga: http://librenmsX.ws.nsrc.org/install.php.

Si todavía no funciona va a necesitar copiar la configuración generada desde la ventana de su navegador de web a un archivo nuevo /opt/librenms/config.php.

Ahora podemos asegurar el directorio /opt/librenms de nuevo:

    # chown root /opt/librenms

3.5 Configuración Básica

Ahora haremos algunos cambios al archivo de configuración:

3.5.1 Configurando la comunidad de SNMP

Cambiamos la comunidad que LibreNMS intenta de usar cuando se descubre dispositivos nuevos.

Editar el archivo /opt/librenms/config.php, y encontrar la línea:

    $config['snmp']['community'] = array("public");

Y cambiarla a:

    $config['snmp']['community'] = array("NetManage");

3.5.2 Habilitando detección automática de xDP

Todavía en el archivo /opt/librenms/config.php, y debajo la línea:

        $config['snmp']['community'] = array("NetManage");

... añadir el siguiente:

    $config['autodiscovery']['xdp']            = TRUE;

Esto dice a LibreNMS usar CDP y LLDP para encontrar y descubri dispositivos vecinos automáticamente.

Tenemos un cambio más...

3.5.3 Decirle a LibreNMS cuales subredes se puede escanear automáticamente.

Para ser seguro y no escanear el Internet por error, LibreNMS necesitar saber cuales subredes se puede escanear por dispositivos nuevos.

Todavía en el archivo /opt/librenms/config.php, encuentra la línea:

    #$config['nets'][] = "10.0.0.0/8";

... y remover el # al principo de la línea para que se vea así:

    $config['nets'][] = "10.0.0.0/8";

Graba el archivo y sale - casí terminamos!

3.5.4 Agrega un host

Agregamos localhost (su servidor virtual) usando los siguientes comandos. Más tarde lo haremos usando el interfax web:

    # cd /opt/librenms
    # php addhost.php localhost NetManage v2c

Notar que explícitamente decimos a LibreNMS cual comunidad de SNMP uar. Además asumimo que es SNMP versión v2c. Si tiene sus dispositivos configurado con snmp versión 3 hay pasos adicionales que no hemos incluido.

3.6 Configuración Final

3.6.1 Prueba el poller

Tenemos que decir a LibreNMS descubrir a localhost y "poll" (preguntalo) por la primera vez. Puede hacer esto en la línea de comando para ver si esta funcionando bien.

        # cd /opt/librenms
        # php discovery.php -h all && php poller.php -h all

3.6.2 Crear el cronjob

Crear el cronjob que va a correr las tareas periódicas que son requeridos por LibreNMS:

    # cd /opt/librenms
    # cp librenms.cron /etc/cron.d/librenms

3.7 Instalación completada

Esto es todo! Ahora puede ir a http://librenmsN.ws.nsrc.org/ y hacer un login. Por favor, nota que no hemos hablado de configuración de HTTPS - así su instalación de LibreNMS no es seguro. Por favor que no lo expone al Internet público hasta que configura HTTPS y tiene su servidor configurado en forma segura.