Cómo configurar la herramienta de monitoreo LibreNMS con Nginx en Ubuntu 16.04 LTS
LibreNMS es una herramienta de monitoreo de código abierto basada en PHP/MYSQL/SNMP. Es un sistema de monitoreo de red destacado que brinda soporte para una amplia gama de hardware de red y sistemas operativos, incluidos FreeBSD, Cisco, Linux, HP, etc.
En este tutorial, le mostraré cómo instalar y configurar la herramienta de monitoreo de código abierto LibreNMS usando Nginx como servidor web, MariaDB como base de datos y el servidor Ubuntu 16.04 como nuestro servidor principal. Lo guiaremos paso a paso sobre cómo instalar y configurar LibreNMS en el servidor Ubuntu 16.04 Xenial Xerus.
Qué haremos
- Instalar paquetes
- Instalar servidor web Nginx
- Instalar y configurar PHP-FPM
- Instalar y configurar MariaDB
- Descargar y configurar LibreNMS
- Instalador web de LibreNMS
- Configuración final
Requisitos previos
- Servidor Ubuntu 16.04
- Privilegios de raíz
Paso 1 - Instalar paquetes
El primer paso que debemos hacer para instalar las herramientas de monitoreo de LibreNMS es instalar algunos paquetes necesarios en el servidor. Conéctese a su servidor y actualice el repositorio.
ssh
sudo apt update
Instale todos los paquetes necesarios para LibreNMS desde el repositorio de Ubuntu usando el siguiente comando.
apt install fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd rrdtool git snmp graphviz
Una vez completada la instalación, vaya al siguiente paso.
Paso 2: instale el servidor web Nginx
En este tutorial, ejecutaremos LibreNMS en el servidor web Nginx. Nginx es un potente servidor web que está disponible en los repositorios de Ubuntu.
Instale nginx usando el comando apt del repositorio de la siguiente manera.
apt install nginx
Cuando haya terminado, inicie el servicio y permita que se ejecute automáticamente cada vez que se inicie el sistema.
systemctl start nginx
systemctl enable nginx
El servidor web Nginx se ejecuta en el puerto predeterminado 80. Podemos verificar el puerto usando el comando netstat y verificar Nginx usando el comando curl para obtener el código de estado HTTP, como se muestra a continuación.
netstat -plntu | grep 80
curl -I localhost
La instalación de Nginx se ha completado.
Paso 3: instalar y configurar PHP-FPM
LibreNMS es una herramienta de monitoreo de aplicaciones web basada en PHP. Ofrece soporte para la nueva versión de PHP 7.0 y la usaremos para esta guía.
Instale PHP, PHP-FPM y todas las extensiones/módulos necesarios para la instalación de LibreNMS usando el comando apt a continuación.
apt install php7.0-cli php7.0-mysql php7.0-gd php7.0-snmp php-pear php7.0-curl php7.0-fpm php7.0-mcrypt php7.0-json php-net-ipv4 php-net-ipv6
A continuación, debemos agregar alguna configuración a los archivos php.ini. Necesitamos definir la zona horaria predeterminada en el archivo php.ini y asegurarnos de que la zona horaria coincida con la zona horaria actual utilizada por el sistema.
Verifique la zona horaria utilizada actualmente por el sistema con el siguiente comando.
timedatectl
Debería obtener un resultado similar al siguiente.
Puede ver que el servidor está usando la zona horaria de Europa/París.
Ahora vaya al directorio de configuración de PHP y edite los archivos php.ini para la configuración cli y fpm.
cd /etc/php/7.0/
vim fpm/php.ini
vim cli/php.ini
Descomente la línea fecha.hora y cambie el valor con la zona horaria de nuestro sistema Europa/París.
date.time = Europe/Paris
Descomente la configuración de cgi a continuación, cambie el valor a 0.
cgi.fix_pathinfo = 0
Guardar y Salir.
Toda la configuración está completa. Ahora inicie el servicio y permita que se inicie cada vez que se inicia el sistema utilizando los siguientes comandos systemctl.
systemctl start php7.0-fpm
systemctl enable php7.0-fpm
PHP-FPM ahora se ejecuta en el servidor ubuntu, se ejecuta en el archivo sock. Compruébalo con el comando netstat.
netstat -pl | grep php
Paso 4 - Instalar y configurar MariaDB
En este paso, instalaremos el servidor mariadb para la base de datos LibreNMS. Instalaremos, configuraremos y crearemos una nueva base de datos y un nuevo usuario para la instalación de LibreNMS.
Instale mariadb-server desde el repositorio de ubuntu usando el comando apt a continuación.
apt install mariadb-server mariadb-client mariadb
Cuando haya terminado, inicie el servicio y habilítelo para que se ejecute automáticamente al iniciar el sistema, algo que puede hacer con los siguientes comandos systemctl.
systemctl start mysql
systemctl enable mysql
El servidor de base de datos mariadb ahora se está ejecutando. A continuación, debemos configurar la contraseña de root para mariadb. Podemos usar el siguiente comando mysql_secure_installation para configurar la contraseña de root.
mysql_secure_installation
Se le preguntará acerca de la nueva contraseña de root: escriba su contraseña y presione Entrar para continuar.
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
La contraseña raíz para mariadb ha sido configurada.
A continuación, debemos crear una nueva base de datos y un usuario para LibreNMS. Crearemos una nueva base de datos llamada librenms, un nuevo usuario llamado librenms con contraseña hakase-labs123.
Inicie sesión en el shell de mariadb con el siguiente comando.
mysql -u root -p
Type the ROOT Password:
Ejecute las consultas de mariadb a continuación para crear una nueva base de datos y un nuevo usuario, y otorgue todos los privilegios en la base de datos al nuevo usuario.
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
Se ha creado una nueva base de datos y usuario para LibreNMS.
Para la instalación de LibreNMS, necesitamos agregar alguna configuración al archivo de configuración. Vaya al directorio /etc/mysql/ y edite el archivo de configuración de mariadb.
cd /etc/mysql/
vim mariadb.conf.d/50-server.cnf
Pegue la configuración a continuación en la sección [mysqld].
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Guardar y Salir.
Ahora aplique la nueva configuración reiniciando el servicio.
systemctl restart mysql
La configuración de la base de datos mariadb se ha completado.
Paso 5: descarga y configura LibreNMS
En este paso, configuraremos el sistema para la instalación de LibreNMS.
- Agregar nuevo usuario y descargar LibreNMS
Cree un nuevo usuario del sistema llamado librenms, defina /opt/librenms como el directorio de inicio predeterminado para el usuario y asigne el nuevo usuario de librenms al grupo www-data.
Ejecute el siguiente comando para hacerlo todo.
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms www-data
Ahora vaya al directorio /opt/ y descargue el código fuente de LibreNMS usando el comando git.
cd /opt/
git clone https://github.com/librenms/librenms.git librenms
A continuación, cree un nuevo directorio para los archivos de registro de libreNMS y los archivos rrd.
mkdir -p /opt/librenms/{logs,rrd}
Cambie los permisos de propiedad para el directorio rrd a 775 y cambie el propietario del directorio librenms al usuario y grupo librenms.
chmod -R 775 /opt/librenms/rrd/
chown -R librenms:librenms /opt/librenms/
Se ha creado un nuevo librenms y se ha descargado el código fuente de LibreNMS.
- Configurar servidor virtual LibreNMS
Vaya al directorio de configuración de nginx y cree un nuevo archivo de host virtual librenms con vim
cd /etc/nginx/
vim sites-available/librenms
Pegue la siguiente configuración de host virtual de LibreNMS allí.
server {
# Add your own domain name
listen 80;
server_name librenms.irsyadf.me;
# LibreNMS Webroot directory
root /opt/librenms/html;
index index.php;
# LibreNMS logs
access_log /opt/librenms/logs/access_log;
error_log /opt/librenms/logs/error_log;
# Enabling Gzip compression on Nginx
charset utf-8;
gzip on;
gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /api/v0 {
try_files $uri $uri/ /api_v0.php?$query_string;
}
# PHP-FPM handle all .php files requests
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Guardar y Salir. Ahora, active el host virtual.
ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
Pruebe la configuración de nginx y asegúrese de que no haya ningún error. Luego reinicie el servicio.
nginx -t
systemctl restart nginx
- Configurar cortafuegos UFW
Agregue nuevos puertos al firewall. Agregue nuevos ssh, http, https y el puerto utilizado por snmpd 161 tipo udp al firewall ufw.
Ejecute los siguientes comandos ufw.
ufw allow ssh
ufw allow http
ufw allow https
ufw allow 161/udp
Inicie el firewall ufw con el comando ufw enable como se muestra a continuación.
ufw enable
Escriba y y presione Entrar para confirmar. Inicie y permita que se inicie cada vez que se inicia el sistema.
Si desea ver el estado del firewall, ejecute el comando ufw status.
ufw status
Obtendrá el estado del firewall (activo o inactivo) y la lista de puertos y servicios agregados al firewall.
Paso 6 - Instalador web LibreNMS
Después de completar todos los pasos anteriores, debemos instalar LibreNMS a través del navegador web. Abra su navegador web, escriba el nombre de dominio LibreNMS librenms.hakase-labs.co en la barra de direcciones y presione Entrar.
- Comprobación de módulos PHP
Será redirigido a la página install.php que muestra el resultado de las comprobaciones de soporte del módulo PHP. Asegúrese de que todo el estado sea verde como se muestra a continuación.
Haga clic en Siguiente etapa para continuar.
- Configuración de la base de datos
Complete toda la información de la base de datos con su propia base de datos.
- Usuario de base de datos: librenms
- Pase de base de datos: hakase-labs123
- Nombre de la base de datos: librenms
Y haga clic en Siguiente etapa.
- Importación de la base de datos MySQL
Espere a que la secuencia de comandos del instalador importe una muestra de la base de datos a nuestra base de datos; no cierre la pestaña del navegador durante este proceso.
Después de importar toda la base de datos, haga clic en Ir a Agregar usuario.
- Añadir usuario administrador
Aquí, escriba su usuario administrador, correo electrónico y contraseña.
Haga clic en Añadir usuario.
- Generar configuración de LibreNMS
Haga clic en el botón Generar configuración.
Y obtendrá un archivo de configuración similar al que se muestra a continuación.
Copie el script de configuración de php y regrese a su sesión de ssh. Vaya al directorio /opt/librenms y cree el archivo config.php manualmente usando vim.
cd /etc/librenms/
vim config.php
Pegue la configuración allí y cambie la propiedad del archivo a usuario y grupo librenms.
chown librenms:librenms config.php
Vuelva a su navegador web y haga clic en el botón Finalizar instalación.
Ahora llega a la última página del instalador web de librenms ; consulte a continuación.
Paso 7 - Configuración final
Una vez completada la instalación a través del navegador web, debemos realizar algunos otros pasos.
- Configurar SNMP
Realice una copia de seguridad del archivo de configuración predeterminado y copie la configuración de muestra en el directorio /etc/snmp/.
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.aseli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Edite la nueva configuración con vim.
vim /etc/snmp/snmpd.conf
Reemplace la línea RANDOMSTRINGGOESHERE con su propio nombre de comunidad hakaselabs, como se muestra a continuación.
com2sec readonly default hakaselabs
Guardar y Salir.
A continuación, necesitamos descargar el script de detección de distribución. Descárguelo usando curl, luego haga que el script sea ejecutable y, finalmente, reinicie el servicio snmp.
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd
- Configuración de Crontab y Logrotate
Vaya al directorio librenms y copie la configuración de muestra para Crontab y Logrotate.
cd /opt/librenms/
Copie la configuración.
cp librenms.nonroot.cron /etc/cron.d/librenms
cp misc/librenms.logrotate /etc/logrotate.d/librenms
Ahora reinicie el servicio cron y vuelva a cargar la configuración de logrotate.
systemctl restart cron
logrotate -f /etc/logrotate.conf
- Validar configuración
Espere un tiempo hasta que el script cron se ejecute en el sistema. Una vez hecho esto, valide con el script validate.php.
Vaya al directorio librenms y ejecute el script de validación.
cd /opt/librenms/
./validate.php
Si su instalación es correcta, obtendrá el resultado como se muestra a continuación.
La instalación de LibreNMS con el servidor web Nginx en Ubuntu 16.04 está completa.
Referencia
- http://docs.librenms.org