LibreNMS: Herramienta de monitorización

LibreNMS, es un fork de Observium, un sistema de monitorización muy fácil de instalar y de configurar. Orientado a la monitorización de infraestructuras no muy grandes. Es capaz de monitorizar por SNMP los hosts y se pueden monitorizar los servicios nagios style. También es capaz de pintar el mapa de red según las conexiones y se pueden crear alertas personalizadas para generar avisos mediante diferentes herramientas como telegram.

Es una alternativa perfectamente valida a sistemas como centreon que aun que son muy completos, el configurarlo lleva mucho trabajo.

Servidor

Instalación

MariaDB

Instalar mariaDB

apt -y install mariadb-server mariadb-client

Crear la tabla de librenms

mysql -u root -p

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
exit

Apache2

Instalar apache2

apt -y install apache2

PHP7

Añadir los repositorios de PHP7

echo "deb http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list

Añadir clave

wget https://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg

Actualizar los repositorios

apt update

Instalar los paquetes de php necesarios

apt -y install libapache2-mod-php7.0 php7.0-cli php7.0-mysql php7.0-gd php7.0-snmp php-pear php7.0-curl php7.0-mcrypt php7.0-json php-net-ipv4 php-net-ipv6 

Configurar timezone

vim /etc/php/7.0/apache2/php.ini
  date.timezone = "Europe/Madrid"

vim /etc/php/7.0/cli/php.ini
  date.timezone = "Europe/Madrid"

Activar módulos de apache y php

a2enmod php7.0
a2dismod mpm_event
a2enmod mpm_prefork
phpenmod mcrypt
a2enmod rewrite

Extras

Instalar

apt -y install snmp graphviz fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd rrdtool git

Configuración

Crear usuario librenms

useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms www-data

Clonar el repositorio de librenms

cd /opt && git clone https://github.com/librenms/librenms.git librenms
chown -R librenms:librenms /opt/librenms
cd /opt/librenms
mkdir rrd logs
chmod 775 rrd
ln -s /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
ln -s /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
chown -R librenms:librenms /opt/librenms/.git/index
chmod u+s /usr/bin/fping6
chmod u+s /usr/bin/fping
vim /etc/apache2/sites-available/librenms.conf

<VirtualHost *:80>
  DocumentRoot /opt/librenms/html/
  ServerName  monitorizacion.ichasco.com
  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>

Habilitar el site de librenms y deshabilitar el de default de apache

a2ensite librenms.conf
a2dissite 000-default

Reiniciar apache

systemctl restart apache2

Configurar web

Ir a la web

http://monitorizacion.ichasco.com

Como librenms no tiene permisos de root, nos dirá lo siguiente, para esto hay que añadir la conf que nos pone en /opt/librenms/config.php

Comprobación de que todo está bien

cd /opt/librenms
./validate.php

AutoDiscovery

El autodiscovery viene muy bien cuando tienes varios hosts en la red y no quieres añadirlos de uno en uno. Para configurar esto, hay que hacerlo de la siguiente manera

Editar el archivo de configuración

vim /opt/librenms/config.php

#Configurar la default community
$config['snmp']['community'] = array("ichasco_community");

#Configurar la red
$config['nets'][] = "192.168.0.0/24";

Lanzar el escáner SNMP

cd /opt/librenms/
./snmp-scan.php -r 192.168.0.0/24

Mapa de Red

El mapa de red, pinta un mapa con todos los dispositivos de la red. Actualmente las corelaciones las puede hacer mediante la MAC o mediante XDP

Para empezar editar el archivo de configuración y añadir lo siguiente

vim /opt/librenms/config.php

$config['network_map_items'] = array('mac','xdp');
$config['network_map_vis_options'] = '{
  layout:{
      randomSeed:2
  },
  "edges": {
    "smooth": {
        enabled: false
    },
    font: {
        size: 12,
        color: "red",
        face: "sans",
        background: "white",
        strokeWidth:3,
        align: "middle",
        strokeWidth: 2
    }
  },
  "physics": {
    "forceAtlas2Based": {
      "gravitationalConstant": -800,
      "centralGravity": 0.03,
      "springLength": 50,
      "springConstant": 0,
      "damping": 1,
      "avoidOverlap": 1
    },
    "maxVelocity": 50,
    "minVelocity": 0.01,
    "solver": "forceAtlas2Based",
    "timestep": 0.30
  }
}';

Fuente:

http://docs.librenms.org/Installation/Installation-Ubuntu-1604-Apache/

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *