Búsqueda de sitios web

Cómo instalar la herramienta de monitoreo LibreNMS con Nginx en CentOS 7


En esta página

  1. Qué haremos
  2. Requisito previo
  3. Paso 1: instale los paquetes necesarios
  4. Paso 2: instalar el servidor web Nginx
  5. Paso 3: instalar y configurar PHP-FPM
  6. Paso 4: instalar y configurar MariaDB
  7. Paso 5: descarga y configura LibreNMS
  8. Paso 6: instalación basada en web de LibreNMS
  9. Paso 7: configuración final
  10. 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

  1. Instalar los paquetes necesarios
  2. Instalar servidor web Nginx
  3. Instalar y configurar PHP-FPM
  4. Instalar y configurar MariaDB
  5. Descargar y configurar LibreNMS
  6. Instalación basada en web de LibreNMS
  7. 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:

  1. Usuario de base de datos: librenms
  2. Nombre de la base de datos: librenms
  3. 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/

Artículos relacionados: