# Instalar LibreNMS - puesta a punto

## Metas

- Mejore el desempeño de LibreNMS ajustando MySQL e instalando rrdcached

## Notas

- Los comandos precedidos por el signo de pesos “$”, deben ser ejecutados como un usuario general - y no como superusuario (root).

- Los comandos precedidos por el signo de número “#”, Implica que debe estar trabajando como root.

- Los comandos precedidos por lineas de comando más específicas (e.g. “rtrX>” or “mysql>”) implica que deben ser ejecutados en equipos remotos, o dentro de otras aplicaciones.

- Estas instrucciones suponen que usted es el usuario root. Si no lo es, anteponga ‘’sudo’’ a los comandos shell (los que no están en ‘’mysql’‘) o invoque temporalmente privilegios de root con’‘sudo -s’’.

## Instalar soporte de rrdcache para LibreNMS

Rrdcache permite a LibreNMS escribir información sobre los dispositivos en la memoria en lugar de directamente en el disco. LibreNMS es una herramienta de uso intensivo de recursos y la adición de soporte de caché de memoria a LibreNMS disminuirá la carga en su servidor.

Para ello, haga lo siguiente:

    $ sudo bash

Entonces instale el paquete para hacer caching rrdcached

    # apt install rrdcached
    # mv /etc/default/rrdcached /etc/default/rrdcached.dist
    # editor /etc/default/rrdcached

Copia lo siguiente en el archivo nuevo de rrdcached:

    # /etc/default file for RRD cache daemon

    # Full path to daemon
    DAEMON=/usr/bin/rrdcached

    # Optional override flush interval, in seconds.
    WRITE_TIMEOUT=1800

    # Optional override maximum write delay, in seconds.
    WRITE_JITTER=1800

    # Optional override number of write_threads
    WRITE_THREADS=4

    # Where database files are placed.  If left unset, the default /tmp will
    # be used.  NB: The daemon will reject a directory that has symlinks as
    # components.  NB: You may want to have -B in BASE_OPTS.
    BASE_PATH=/opt/librenms/rrd/

    # Where journal files are placed.  If left unset, journaling will
    # be disabled.
    JOURNAL_PATH=/var/tmp/

    # FHS standard placement for process ID file.
    PIDFILE=/var/run/rrdcached.pid

    # FHS standard placement for local control socket.
    SOCKFILE=/var/run/rrdcached.sock

    # Optional override group that should own/access the local control
    # socket
    SOCKGROUP=librenms

    # Optional override access mode of local control socket.
    #SOCKMODE=0660

    # Optional unprivileged group to run under when daemon.  If unset
    # retains invocation group privileges.
    DAEMON_GROUP=librenms

    # Optional unprivileged user to run under when daemon.  If unset
    # retains invocation user privileges.
    DAEMON_USER=librenms

    # Any other options not specifically supported by the script (-P, -f,
    # -F, -B).
    BASE_OPTIONS="-F -B"

Guarde el archivo, salga y luego:

    # systemctl restart rrdcached

Luego edite el archivo ’‘/opt/librenms/config.php’’ y cambie una linea:

    # cd /opt/librenms
    # editor config.php

Encuentre la línea:

    #$config['rrdcached']    = "unix:/var/run/rrdcached.sock";

Y cambielo por:

    $config['rrdcached']    = "unix:/var/run/rrdcached.sock";

Y, encuentre la línea:

    $config['rrdtool_version'] = ;

and be sure it matched the version of rrdtool you are using. In our case 1.5.5, or:

    $config['rrdtool_version'] = '1.5.5';

NOTA: Si no encuentras esta line, agregalo justamente debajo de la línea que acabamos de cambiar.

Ahora podemos reiniciar el servidor Apache para recoger todos los cambios que se han hecho

    # systemctl restart apache2

## Fino ajuste de MySQL

Hay unas pocas ajuestes del servidor de MySQL que, tal vez, queremos agregar para optimizar como usa LibreNMS el servidor de base de datos.

Primera, cambia al directorio correcto de configuración de MySQL:

    # cd /etc/mysql/conf.d

Crear el archivo librenms.cnf:

    # editor librenms.cnf

Agrega las siguiente lineas:

    [mysqld]

    # From installation instructions
    # http://docs.librenms.org/Installation/Installation-Ubuntu-1604-Apache/

    innodb_file_per_table=1

    # Required to prevent corruption of database with mysql 5.7+
    # https://github.com/librenms/librenms/issues/3647
    # https://git.nsrc.org/nsrc/netmgmt/issues/3

    sql-mode=""

    # Required for decent performance
    # http://docs.librenms.org/Support/Performance/
    # http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit
    innodb_flush_log_at_trx_commit=0

Ahora, graba el archivo y reinicializa el servidor MySQL

    # systemctl restart mysql

Si está interesado en los detalles sobre este cambio, puede leerlo en http://dev.mysql.com/doc/refman/5.7/en/innodb-multiple-tablespaces.html

=> AHORA PUEDE SEGUIR CON LOS EJERCICIOS USANDO LIBRENMS! <=