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/