Cómo instalar la herramienta de monitoreo LibreNMS con Nginx en CentOS 7
En esta página
- Qué haremos
- Requisito previo
- Paso 1: instale los paquetes necesarios
- Paso 2: instalar el servidor web Nginx
- Paso 3: instalar y configurar PHP-FPM
- Paso 4: instalar y configurar MariaDB
- Paso 5: descarga y configura LibreNMS
- Paso 6: instalación basada en web de LibreNMS
- Paso 7: configuración final
- Referencia
LibreNMS es una herramienta de monitoreo de código abierto basada en PHP/MYSQL/SNMP. Es un sistema de monitoreo de red con todas las funciones que brinda soporte para una amplia gama de hardware de red y sistemas operativos, incluidos FreeBSD, Cisco, Linux, HP y más.
En este tutorial, le mostraremos cómo instalar y configurar LibreNMS utilizando Nginx como servidor web y MariaDB como base de datos. Usaremos el servidor CentOS 7 como nuestro servidor principal.
Lo que haremos
- Instalar los paquetes necesarios
- Instalar servidor web Nginx
- Instalar y configurar PHP-FPM
- Instalar y configurar MariaDB
- Descargar y configurar LibreNMS
- Instalación basada en web de LibreNMS
- Configuración final
Requisito previo
- Servidor CentOS 7
- Privilegios de raíz
Paso 1: instale los paquetes necesarios
Antes de instalar LibreNMS en el servidor, necesitamos instalar algunos paquetes, incluidos ImageMagick, rrdtool, SNMP, git , y más. El siguiente comando debería hacer lo necesario:
yum -y install net-snmp ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie fping git
Si todo va bien, continúe con el siguiente paso.
Paso 2: instale el servidor web Nginx
En este paso, instalaremos epel-repository para la instalación del servidor web nginx. El repositorio EPEL (Extra Packages for Enterprise Linux) es un repositorio adicional para sistemas operativos basados en rpm, incluido CentOS 7.
Instale el repositorio EPEL usando el comando yum a continuación.
yum -y install epel-release
Ahora instale nginx.
yum -y install nginx
Después de la instalación de nginx, inicie el servicio y habilítelo para que se ejecute automáticamente en el momento del arranque mediante los siguientes comandos systemctl.
systemctl start nginx
systemctl enable nginx
Entonces, el servidor web Nginx se instaló en el sistema desde el repositorio de EPEL.
Paso 3 - Instalar y configurar PHP-FPM
Antes de continuar, aquí hay información que vale la pena compartir:
Usaremos PHP-FPM versión 7 para la instalación de LibreNMS. Todos los paquetes de PHP 7 para CentOS 7 están disponibles en un repositorio de terceros y utilizaremos la versión de PHP 7 del repositorio webtatic.
Vamos a empezar.
Agregue el repositorio webtatic de PHP 7 al sistema usando el siguiente comando rpm.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Instale PHP 7 y todas las extensiones necesarias desde el repositorio de wetatic usando yum.
yum -y install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common php70w-fpm php70w-mcrypt
Ahora actualice el repositorio de PEAR e instale algunas extensiones de PEAR (repositorio de aplicaciones y extensiones de PHP) usando el comando pear.
pear channel-update pear.php.net
pear install Net_IPv4-1.3.4
pear install Net_IPv6-1.2.2b2
Entonces, de esta manera, puede instalar todos los paquetes PHP necesarios.
A continuación, configure PHP-FPM para la instalación de LibreNMS. 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. Puede verificar la zona horaria actual utilizada por su sistema a través del siguiente comando.
timedatectl
La siguiente captura de pantalla muestra el comando anterior en acción:
También usamos la zona horaria de Europa/París.
Ahora, edite el archivo /etc/php.ini usando vim.
vim /etc/php.ini
A continuación, elimine el comentario de la línea date.timezone y proporcione un valor con la zona horaria del servidor Europa/París.
data.timezone = Europe/Paris
Del mismo modo, elimine el comentario de la línea cgi y cambie el valor a 0.
cgi.fix_pathinfo=0
Eso es todo. Ahora guarde los cambios y salga del editor.
A continuación, debemos definir cómo se ejecuta PHP-FPM en el sistema. En nuestro caso, PHP-FPM se ejecutará bajo el archivo sock en lugar del puerto del servidor.
Edite el archivo www.conf con vim para configurar PHP-FPM.
vim /etc/php-fpm.d/www.conf
Cambie la línea del puerto de escucha al archivo sock como se muestra a continuación.
listen = /var/run/php-fpm/php7.0-fpm.sock
Quite el comentario de la línea de escucha para el propietario, el grupo y el permiso del archivo sock como se muestra a continuación.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Eso es todo. Ahora guarde los cambios y salga del editor.
Así que la configuración de PHP-FPM ahora está completa. Inicie el servicio y permita que se ejecute automáticamente en el momento del arranque con los siguientes comandos.
systemctl start php-fpm
systemctl enable php-fpm
Ahora PHP-FPM se ejecuta bajo el archivo sock. Puedes comprobarlo con el comando netstat.
netstat -pl | grep php
Asegúrese de tener el resultado del archivo /var/run/php-fpm/php7.0-fpm.sock.
Paso 4 - Instalar y configurar MariaDB
LibreNMS está utilizando la base de datos MySQL para almacenar todos los datos. Para esta guía, utilizaremos la versión de la base de datos MariaDB. Está disponible en el repositorio, y necesitamos instalar y agregar alguna configuración para la instalación de LibreNMS, incluida la adición de la base de datos y el usuario para LibreNMS.
Instale MariaDB usando el comando yum a continuación.
yum -y install mariadb mariadb-server
Inicie el servicio MariaDB y habilítelo para que se inicie automáticamente en el momento del arranque.
systemctl start mariadb
systemctl enable mariadb
Ahora configure la contraseña raíz de MariaDB utilizando el siguiente comando mysql_secure_installation.
mysql_secure_installation
Se le preguntará acerca de la nueva contraseña raíz para la base de datos MariaDB junto con algunas otras preguntas.
Escriba Y y presione Entrar para confirmar.
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
Así que se ha instalado MariaDB. Ahora necesitamos crear una nueva base de datos y un nuevo usuario para LibreNMS. Inicie sesión en la línea de comandos de mysql shell usando el cliente mysql y con su nueva contraseña.
mysql -u root -p
Cree una nueva base de datos llamada librenms, un nuevo usuario librenms con contraseña hakase-labs123.
Créelo todo usando las consultas de MySQL a continuación.
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 han creado un nuevo usuario y base de datos para la instalación de LibreNMS.
Ahora necesita editar el archivo my.cnf para agregar una nueva configuración de mysql. Edite el archivo /etc/my.cnf usando vim.
vim /etc/my.cnf
Pegue la siguiente configuración adicional en la sección [mysqld].
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Guarde y salga de vim, y luego reinicie el servidor mariadb.
systemctl restart mariadb
Paso 5: descarga y configura LibreNMS
En este paso, configuraremos el sistema para la instalación de LibreNMS.
- Agregar usuario y descargar el código fuente de LibreNMS
Cree un nuevo usuario del sistema llamado librenms, luego defina el directorio de inicio para el usuario en el directorio /opt/librenms y finalmente agregue el usuario librenms al grupo nginx.
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx
Vaya al directorio /opt/ y descargue el código fuente de LibreNMS usando el comando git clone como se muestra a continuación.
cd /opt/
git clone https://github.com/librenms/librenms.git librenms
Cree un nuevo directorio para los registros de LibreNMS y los archivos rrd.
mkdir -p /opt/librenms/logs/
mkdir -p /opt/librenms/rrd/
chmod 775 /opt/librenms/rrd/
Ahora cambie la propiedad de todos los archivos y directorios en el directorio /opt/librenms al usuario y grupo librenms.
chown -R librenms:librenms /opt/librenms/
- Configurar host virtual LibreNMS
LibreNMS es una aplicación basada en web y estamos utilizando un servidor web Nginx para alojarlo.
Cree un nuevo archivo de host virtual librenms.conf en el directorio nginx conf.d.
vim /etc/nginx/conf.d/librenms.conf
Pegue la configuración a continuación.
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:/var/run/php-fpm/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Eso es todo. Ahora guarde y salga de Vim.
Pruebe la configuración de nginx y asegúrese de que no haya ningún error. Luego reinicie el servidor web.
nginx -t
systemctl restart nginx
- Configuración del cortafuegos
Asegúrese de que los paquetes firewalld estén instalados en su sistema. Si no, puede instalar firewalld usando el siguiente comando yum.
yum -y install firewalld
Inicie firewalld y permita que se ejecute en el momento del arranque con los siguientes comandos systemctl.
systemctl start firewalld
systemctl enable firewalld
Abra un nuevo HTTP, HTTPS y el puerto SNMP 161/udp usando el comando firewall-cmd como se muestra a continuación.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=161/udp --permanent
Aplique la configuración recargando firewalld y verifique todos los servicios.
firewall-cmd --reload
firewall-cmd --list-all
Asegúrese de que los servicios HTTP y HTTPS estén en la lista.
Paso 6 - Instalación basada en web de LibreNMS
Abra su navegador web y escriba la URL de LibreNMS en la barra de direcciones.
Será redirigido a la página de instalación install.php.
- Verifique el soporte del módulo PHP
Asegúrese de que todos los módulos y extensiones php requeridos estén instalados en el sistema.
Luego haga clic en Siguiente etapa para continuar.
- Configuración de la base de datos
Escriba los detalles de la base de datos a continuación:
- Usuario de base de datos: librenms
- Nombre de la base de datos: librenms
- Pase de base de datos: hakase-labs123
Y haga clic en Siguiente etapa para continuar.
- Importar base de datos MySQL
No cierre la página de instalación ya que mostrará la importación de la base de datos. Asegúrate de que no haya errores.
Cuando se complete el proceso, haga clic en Ir a Agregar usuario para agregar un nuevo usuario administrador.
- Agregar usuario administrador
Escriba su usuario administrador, correo electrónico y contraseña.
Haga clic en Agregar usuario para continuar con la instalación.
- Generar archivo de configuración
Haga clic en el botón Generar configuración y verá una página similar a la siguiente.
Copie el código php que está en el cuadro y cree un nuevo archivo config.php en el directorio /opt/librenms/.
cd /opt/librenms/
vim config.php
Pegue en el nuevo archivo el código que acaba de copiar y luego guarde y salga del editor. Ahora cambie los permisos de propiedad del archivo config.php al usuario y grupo librenms.
chown librenms:librenms config.php
Vuelva a su navegador y haga clic en el botón Finalizar instalación presente en la parte inferior de la página. Verá un mensaje de bienvenida similar al siguiente.
En esta etapa, hemos terminado con la instalación basada en web. Vuelva a la terminal/shell y agregue más configuración.
Paso 7 - Configuración final
En este paso, agregaremos alguna configuración para nuestra instalación de LibreNMS.
- Definir comando fping
Defina el comando fping editando el archivo de configuración de LibreNMS. Vaya al directorio /opt/librenms/ y edite el archivo config.php usando el editor vim.
cd /opt/librenms/
vim config.php
Agregue la siguiente línea al final del archivo.
$config['fping'] = "/usr/sbin/fping";
Guarde y salga del editor.
- Configuración SNMP
Haga una copia de seguridad del archivo snmp.conf predeterminado en el directorio /etc/snmp/ y copie uno nuevo del directorio librenms.
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.asli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Edite la nueva configuración.
vim /etc/snmp/snmpd.conf
Cambie el texto RANDOMSTRINGGOESHERE con su propio nombre de comunidad como se muestra a continuación.
com2sec readonly default hakaselabs
Eso es todo. Guarde y salga de Vim.
A continuación, descargue el script librenms-agent para detectar qué sistema operativo ha agregado. Si agrega el sistema operativo Linux, el script también detectará la distribución específica de Linux.
Descargue el script usando curl y hágalo ejecutable.
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
Ahora reinicie el servicio SNMP usando el siguiente comando systemctl.
systemctl restart snmpd
- Configurar Logrotate para LibreNMS
LibreNMS proporciona configuración para la configuración de logrotate y está en el directorio /opt/librenms/misc.
Copie la muestra de configuración en el directorio /etc/logrotate.d.
cp misc/librenms.logrotate /etc/logrotate.d/librenms
- Configuración del cronjob de LibreNMS
Vaya al directorio opt/librenms y copie el archivo librenms.nonroot.cron del script crontab en el directorio cron.d.
cd /opt/librenms/
cp librenms.nonroot.cron /etc/cron.d/librenms
Espere unos minutos para que el script se ejecute automáticamente.
- Validar la configuración de LibreNMS
Para verificar la instalación, use el script validate.php. Vaya al directorio /opt/librenms/ y ejecute el script.
cd /opt/librenms/
./validate.php
Suponiendo que no encuentre errores, debería ver un resultado similar al siguiente:
Esto completa la instalación de LibreNMS con el servidor web Nginx en CentOS 7.
Referencia
- http://docs.librenms.org/