GNU/Linux >> Tutoriales Linux >  >> Debian

Instale el software de monitoreo de red Observium en Debian 9

En esta guía, le mostraremos cómo instalar y configurar la última versión del software Observium Network Monitoring (Community Edition) en la versión Debian 9, para monitorear el equipo de red en sus instalaciones.

Observium es un potente y flexible software de monitoreo de red de descubrimiento automático gratuito y de código abierto escrito principalmente en lenguaje de programación PHP e implementado en Linux bajo servidores web Apache/Nginx, PHP y sistema de administración de base de datos MySQL/MariaDB, también conocido como LAMP o pila LEMP. Ovservium utiliza el protocolo SNMP para consultar el estado de los hosts, servidores, enrutadores, conmutadores y otros dispositivos de red de la red, lo que admite una gran variedad de hardware de red y sistemas operativos, como Linux, Windows, Cisco, HP, FreeBSD, Juniper, Brocade, Dell y otros importantes proveedores de dispositivos de red. El proceso de administración de la aplicación se puede lograr fácilmente a través de una interfaz web simple e intuitiva.

Requisitos

  • Instalación mínima de Debian 9 en una máquina de servidor bare-metal o en un servidor privado virtual
  • privilegios de raíz sudo para una cuenta local o remota o acceso directo a la cuenta raíz
  • Una dirección IP estática configurada para una de las tarjetas de interfaz de red de su sistema
  • Un nombre de dominio, privado o público, según su implementación, con registros DNS adecuados configurados para servicios web. Si no tiene un nombre de dominio válido o registrado, puede realizar la instalación y acceder al sitio web a través de la dirección IP de su servidor
  • Si desea utilizar las notificaciones por correo electrónico de Observium, debe tener un servidor de correo en ejecución correctamente configurado en sus instalaciones con acceso remoto a sus servicios IMAP y SMTP. Para la misma tarea, también puede utilizar un servicio de correo electrónico público, como Gmail o Yahoo! Correo.

Instalar Apache, PHP y MySQL

Antes de comenzar con la instalación y configuración de Observium desde fuentes en su propio servidor, primero asegúrese de que el sistema cumpla con todos los requisitos de software para compilar e instalar la aplicación. En el primer paso, actualice los repositorios de su sistema y los paquetes de software emitiendo el siguiente comando.

apt update
apt upgrade

A continuación, ejecute el siguiente comando para instalar algunas utilidades necesarias que se utilizarán para administrar su sistema desde la línea de comandos.

apt install wget bash-completion curl

Una vez que el sistema se haya actualizado por completo y se hayan instalado las utilidades necesarias para administrar su servidor, configure el nombre de su sistema ejecutando el siguiente comando. Reemplace su variable de nombre de host en consecuencia.

hostnamectl set-hostname www.mynet.com

Verifique el nombre de host de la máquina y el archivo de hosts emitiendo los siguientes comandos.

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

Finalmente, reinicie el servidor Debian para aplicar las actualizaciones del núcleo y el nombre de host cambie correctamente.

systemctl reboot

Observium es una plataforma de monitoreo de red basada en la web escrita en el lenguaje de programación del lado del servidor PHP. Para ejecutar los scripts de archivos PHP de la aplicación, se debe instalar y poner en funcionamiento en el sistema un servidor web, como un servidor HTTP Apache, y una puerta de enlace de procesamiento PHP. Para instalar el servidor web Apache y el intérprete PHP junto con todos los módulos PHP necesarios para que la aplicación funcione correctamente, emita el siguiente comando en la consola de su servidor.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-json php7.0-mbstring php7.0-mcrypt php-pear php7.0-cli php7.0-snmp

Ejecute el siguiente comando para verificar si todos los módulos PHP instalados están habilitados en su sistema

php –m

Además, asegúrese de instalar las siguientes utilidades requeridas por Observium para consultar y monitorear dispositivos de red a través del protocolo SNMP, detectar e insertar otros parámetros de red y mostrar gráficos de recursos del sistema.

apt install fping rrdtool graphviz ipmitool snmp whois mtr-tiny imagemagick python-mysqldb

Después de que se hayan instalado Apache y PHP, pruebe si el servidor web está funcionando y escuchando las conexiones de red en el puerto 80 emitiendo el siguiente comando con privilegios de root.

netstat –tlpn

En caso de que netstat La utilidad de red no está instalada de forma predeterminada en su sistema Debian, ejecute el siguiente comando para instalarla.

apt install net-tools

Al inspeccionar la salida del comando netstat, puede ver que el servidor web apache está escuchando las conexiones de red entrantes en el puerto 80. Para la misma tarea, también puede usar ss comando, que se instala automáticamente, por defecto, en Debian 9.

ss- tulpn

En caso de que tenga un firewall habilitado en su sistema, como la aplicación de firewall UFW, debe agregar una nueva regla para permitir que el tráfico HTTP pase a través del firewall emitiendo el siguiente comando.

ufw allow WWW

o

ufw allow 80/tcp

Si está utilizando iptables reglas sin procesar para administrar las reglas del cortafuegos en su servidor Debian, agregue la siguiente regla para permitir el tráfico entrante de los puertos 80 y 22 (para SSH) en el cortafuegos para que otros administradores de red puedan navegar por la aplicación en línea.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

Luego, habilite y aplique los siguientes módulos de Apache requeridos por la aplicación para ejecutarse correctamente, emitiendo los siguientes comandos.

a2enmod rewrite
systemctl restart apache2

Finalmente, pruebe si la página web predeterminada del servidor web Apache se puede mostrar en los navegadores de su cliente visitando la dirección IP de su máquina Debian o su nombre de dominio o servidor FQDN a través del protocolo HTTP, como se muestra en la imagen a continuación. Si no conoce la dirección IP de su máquina, ejecute ifconfig o ip a comandos para revelar la dirección IP de su servidor.

http://tu_dominio.tld

Para instalar y acceder al panel de administración web de Observium a través del protocolo HTTPS (que asegurará el tráfico para sus clientes), emita el siguiente comando para habilitar el módulo SSL del servidor web Apache y el archivo de configuración del sitio SSL.

a2enmod ssl
a2ensite default-ssl.conf

A continuación, abra el archivo de configuración del sitio SSL predeterminado de Apache con un editor de texto y habilite las reglas de reescritura de URL agregando las siguientes líneas de código después de DocumentRoot directiva, como se muestra en el siguiente ejemplo:

nano /etc/apache2/sites-enabled/default-ssl.conf

Extracto del archivo de configuración del sitio SSL:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Además, realice un cambio en VirtualHost línea para que se parezca a lo siguiente:

        <VirtualHost *:443>

Cierre el archivo Apache SSL y abra /etc/apache2/sites-enabled/000-default.conf para editar y agregar las mismas reglas de reescritura de URL que para el archivo de configuración SSL. Inserte las siguientes líneas de código después de DocumentRoot declaración:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Finalmente, reinicie el demonio de Apache para aplicar todas las reglas configuradas hasta el momento y visite su dominio a través del protocolo HTTP. Debido a que está utilizando los pares de certificados autofirmados automáticamente emitidos por Apache en la instalación, certificado que no es de confianza para el navegador, debería mostrarse una advertencia de error en el navegador.

systemctl restart apache2

https://tudominio.tld

Acepte la advertencia para aceptar el certificado que no es de confianza y continúe siendo redirigido a la página web predeterminada de Apache, como se ilustra en la siguiente imagen.

En caso de que la aplicación de firewall UFW bloquee las conexiones de red entrantes al puerto HTTPS, debe agregar una nueva regla para permitir que el tráfico HTTPS pase a través del firewall emitiendo el siguiente comando.

ufw allow ‘WWW Full’

o

ufw allow 443/tcp

Si iptables es la aplicación de firewall predeterminada instalada para proteger su sistema Debian a nivel de red, agregue la siguiente regla para permitir el tráfico entrante del puerto 443 en el firewall para que los visitantes puedan navegar por su nombre de dominio.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent

En el siguiente paso, debemos realizar algunos cambios adicionales en el archivo de configuración predeterminado de PHP para garantizar que las siguientes variables de PHP estén habilitadas y la zona horaria de PHP la configuración está configurada correctamente y coincide con la ubicación geográfica de su sistema. Abra el /etc/php/7.0/apache2/php.ini para editarlo y asegúrese de que las siguientes líneas estén configuradas como se muestra. Además, inicialmente, haga una copia de seguridad del archivo de configuración de PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Busque, edite y cambie las siguientes variables en php.ini archivo de configuración:

file_uploads = On
default_charset               = UTF-8
error_reporting = E_ALL & ~E_NOTICE
date.timezone = Europe/London

Reemplace date.timezone variable según la ubicación geográfica de su servidor consultando la lista de zonas horarias proporcionada por los documentos de PHP en el siguiente enlace http://php.net/manual/en/timezones.php

Si desea aumentar la velocidad de carga de las páginas de su sitio web a través del complemento OPCache disponible para PHP7, agregue la siguiente configuración de OPCache en la parte inferior del archivo de configuración del intérprete de PHP, debajo de [opcache] declaración, como se detalla a continuación:

nano /etc/php/7.0/apache2/php.ini
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Cierra el php.ini archivo de configuración y verifique el final del archivo de configuración de PHP para verificar si las variables de OPCache se han agregado correctamente emitiendo el siguiente comando.

grep opcache /etc/php/7.0/apache2/php.ini

Una vez que haya realizado todos los cambios explicados anteriormente, reinicie el demonio apache para aplicar los nuevos cambios emitiendo el siguiente comando.

systemctl restart apache2

Finalmente, cree un archivo de información de PHP ejecutando el siguiente comando y verifique si la zona horaria de PHP se ha configurado correctamente visitando el archivo de script de información de PHP desde un navegador en la siguiente URL, como se ilustra en la imagen a continuación. Desplácese hacia abajo hasta fecha configuración para verificar la configuración de la zona horaria de PHP.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

https://dominio.tld/info.php

La aplicación web Observium almacena diferentes configuraciones, como usuarios, sesiones, contactos, dispositivos de red, direcciones IP, interfaces de red y otros datos, en una base de datos RDBMS. En esta guía, configuraremos la aplicación Observium para usar la base de datos MariaDB como backend. Ejecute el siguiente comando para instalar la base de datos MariaDB y el módulo PHP necesario para acceder a la base de datos MySQL.

apt install mariadb-server php7.0-mysql mariadb-client

Una vez que haya instalado MariaDB, compruébelo ejecutando netstat Comando si el daemon se está ejecutando y escuchando conexiones en localhost, puerto 3306.

netstat –tlpn | grep mysql

Luego, inicie sesión en la consola MySQL y asegure la cuenta raíz de MariaDB emitiendo los siguientes comandos.

mysql -h localhost
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> update user set plugin='' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> exit
Bye

En el siguiente paso, asegure MariaDB ejecutando el script mysql_secure_installation proporcionada por los paquetes de instalación de los repositorios de extensión de Debian. Mientras se ejecuta el script, se le harán una serie de preguntas diseñadas para asegurar la base de datos MariaDB, tales como:cambiar la contraseña raíz de MySQL, eliminar usuarios anónimos, deshabilitar los inicios de sesión raíz remotos y eliminar la base de datos de prueba. Ejecute el script emitiendo el siguiente comando y asegúrese de escribir sí a todas las preguntas formuladas para asegurar completamente el demonio MySQL. Utilice el siguiente extracto de salida del script como guía.

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!


In order to log into MariaDB to secure it, we'll need the current

password for the root user. If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.


Enter current password for root (enter for none):

OK, successfully used password, moving on...


Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.


You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them. This is intended only for testing, and to make the installation

go a bit smoother. You should remove them before moving into a

production environment.


Remove anonymous users? [Y/n] y

... Success!


Normally, root should only be allowed to connect from 'localhost'. This

ensures that someone cannot guess at the root password from the network.


Disallow root login remotely? [Y/n] y

... Success!


By default, MariaDB comes with a database named 'test' that anyone can

access. This is also intended only for testing, and should be removed

before moving into a production environment.


Remove test database and access to it? [Y/n] y

- Dropping test database...

... Success!

- Removing privileges on test database...

... Success!


Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.


Reload privilege tables now? [Y/n] y

... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

Para probar la seguridad de MariaDB, intente iniciar sesión en la base de datos desde la consola sin contraseña de root. Se debe denegar el acceso a la base de datos si no se proporciona una contraseña para la cuenta raíz, como se ilustra en el siguiente extracto del comando:

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Si se proporciona la contraseña, el proceso de inicio de sesión debe otorgarse a la consola MySQL, como se muestra en el siguiente ejemplo de comando:

mysql -h localhost -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye

A continuación, inicie sesión en la consola de la base de datos de MariaDB y cree mediante los siguientes comandos una base de datos para la aplicación Observium y un usuario con una contraseña que se usará para administrar la base de datos de la aplicación. Reemplace el nombre de la base de datos, el usuario y la contraseña según corresponda.

mysql –u root -p
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database observium_db;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on observium_db.* to 'observium_user'@'localhost' identified by 'password1234';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

Para aplicar todos los cambios realizados hasta el momento, reinicie los demonios de MySQL y Apache y verifique si los demonios se están ejecutando emitiendo los siguientes comandos.

systemctl restart mysql apache2
systemctl status mysql apache2

Instalar la plataforma de monitoreo de red Observium

Una vez que se cumplan todos los requisitos del sistema para instalar la aplicación, visite la página oficial de Observium en www.observium.org y obtenga el último archivo comprimido gzip emitiendo el siguiente comando.

wget http://www.observium.org/observium-community-latest.tar.gz

Una vez que finalice la descarga del archivo gzip, extraiga el archivo de Observium a su directorio de trabajo actual y enumere los archivos extraídos emitiendo los siguientes comandos. Además, elimine el archivo index.html predeterminado instalado por el servidor web Apache en la ruta webroot y también elimine el archivo info.php creado anteriormente.

tar xfz observium-community-latest.tar.gz 
ls
rm /var/www/html/index.html
rm /var/www/html/info.php

Los archivos de instalación de Observium se encuentran en su directorio de trabajo actual en observium/ directorio. Problema ls Comando para enumerar los archivos de este directorio. Copie todo el contenido del directorio extraído en la ruta raíz del documento de su servidor web un nivel más arriba (/var/www/ directorio) emitiendo los siguientes comandos. Además, asegúrese de copiar los archivos ocultos en el directorio de instalación y cree los registros. y rrd directorios en esta ubicación.

cp -rf observium/* /var/www/
cp observium/.scrutinizer.yml /var/www/
mkdir /var/www/logs
mkdir /var/www/rrd
ls -al /var/www/

A continuación, ejecute los siguientes comandos para otorgar al usuario de tiempo de ejecución de Apache permisos de escritura completos en la ruta raíz web y el rrd de la aplicación y registros directorios. Usar ls Comando para enumerar los permisos para los archivos instalados de la aplicación, ubicados en los directorios /var/www/html/ y rrd y logs.

chown -R www-data:www-data /var/www/rrd/
chown -R www-data:www-data /var/www/logs/
chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/

En el siguiente paso, cree un nuevo archivo de configuración de la aplicación basado en el archivo de configuración de la plantilla predeterminada de Observium emitiendo los siguientes comandos.

cd /var/www/
cp config.php.default  config.php

A continuación, comience a editar el archivo de configuración de Observium y reemplace las siguientes variables de conexión de MySQL según corresponda.

nano /var/www/ config.php

Además de config.php archivo, busque y actualice el nombre y las credenciales de la base de datos MySQL de acuerdo con su propia configuración, como se muestra en el siguiente extracto del archivo:

$config['db_extension'] = 'mysqli';
$config['db_host']      = 'localhost';
$config['db_user']      = 'observium_user';
$config['db_pass']      = 'password1234';
$config['db_name']      = 'observium_db';

A continuación, guarde y cierre el archivo config.php e importe el esquema de la base de datos Observium MySQL ejecutando discover.php secuencia de comandos con –u como se muestra en la siguiente captura de pantalla. El script PHP se encuentra en el directorio /var/www/.

/var/www/discovery.php –u

A continuación, agregue la primera cuenta de administrador de Observium con el nivel de privilegios más alto (10) ejecutando adduser.php script ubicado en el directorio /var/www/. Elija una contraseña segura para la cuenta de administrador de Observium.

/var/www/adduser.php observium_admin strongpass123 10

Para iniciar sesión en el panel de administración web de Observium, abra un navegador y navegue por la dirección IP o el nombre de dominio o el FQDN del servidor a través del protocolo HTTPS. Inicie sesión en el panel de control de Observium con el nombre de usuario y la contraseña configurados para la cuenta de administrador en el paso anterior.

https://tudominio.tld

Después de iniciar sesión en la aplicación con las credenciales de administrador, puede ajustar aún más la configuración de la aplicación navegando a /configuración/URL o haciendo clic en Configuración global -> Menú Editar, como se ilustra en la siguiente captura de pantalla. Los parámetros de Observium configurados a través de la interfaz web también se pueden codificar en el archivo de configuración de la aplicación:/var/www/config.php

Para monitorear un dispositivo de red a través del protocolo SNMP, haga clic en el menú superior izquierdo y seleccione Agregar dispositivo en el menú desplegable, como se muestra en la imagen a continuación. También puede agregar un nuevo dispositivo a través de la línea de comando.

/var/www/add_device.php  hostname_or_IP   SNMP_community_string   v2c

Finalmente, para obligar a los visitantes a navegar de forma segura en la interfaz de Observium a través del protocolo HTTPS que cifra el tráfico entre el servidor y los navegadores de los clientes, regrese a la terminal de su servidor y edite el .htaccess archivo ubicado en la ruta raíz del documento de su sitio web, emitiendo el siguiente comando.

nano /var/www/html/.htaccess

Agregue las siguientes reglas en el archivo .htaccess después de RewriteEngine on línea, para redirigir automáticamente el tráfico del dominio a HTTPS.

.htaccess extracto del archivo:

# Redirect to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

También puede deshabilitar la lista de documentos web del servidor Apache HTTP agregando la siguiente línea después de redirigir a las líneas HTTPS:

Options -Indexes

En la parte inferior del archivo, puede cambiar la configuración del servidor PHP nativo con los siguientes ejemplos de configuración. Modifique la configuración de PHP para que coincida con sus propios recursos y configuraciones del servidor.

# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1

Para que la aplicación descubra y agregue automáticamente nuevos dispositivos de red a la base de datos y verifique y actualice su estado cada cinco minutos, agregue los siguientes trabajos crontab para que se ejecuten con los privilegios de usuario del tiempo de ejecución de Apache:

crontab –u www-data –e

  crontab extracto del archivo:

# Run a complete discovery of all devices once every 6 hours
33 */6 * * * /var/www/discovery.php -h all >> /dev/null 2>&1

# Run automated discovery of newly added devices every 5 minutes
*/5 * * * * /var/www/discovery.php -h new >> /dev/null 2>&1

# Run multithreaded poller wrapper every 5 minutes
*/5 * * * * /var/www/poller-wrapper.py 4 >> /dev/null 2>&1

¡Eso es todo! Ha instalado y configurado con éxito la aplicación de monitoreo de red Observium en Debian 9. Sin embargo, debido a que el servidor Apache HTTP usa certificados autofirmados para encriptar el tráfico entre el servidor y el navegador del visitante, siempre se generará y mostrará un mensaje de advertencia en el navegador del visitante. Esta advertencia puede resultar molesta para los administradores de red que visitan la aplicación web a través de un nuevo navegador o dirección IP. En este caso, debe comprar un certificado emitido por una autoridad de certificación de confianza u obtener un par de certificados gratuitos de Let's Encrypt CA.

Para otras configuraciones personalizadas relacionadas con la aplicación Observium, visite la página de documentación en la siguiente dirección:  http://docs.observium.org/


Debian
  1. Cómo instalar el servidor de Minecraft en Debian 9

  2. Cómo instalar la herramienta de monitoreo Cacti SNMP en Debian 9

  3. Cómo instalar el servidor Redis en Debian 11

  4. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  5. Instalar Cockpit en Debian 9

Cómo instalar el software de monitoreo Icinga 2 en Debian 11

Cómo instalar la solución de monitoreo de red OpenNMS en Debian 11

Cómo instalar el sistema de monitoreo de red OpenNMS Horizon en Debian 11

Instalar Wordpress en LAMP en Debian 9

Instalar y configurar el software de monitoreo Monitorix en Debian 10

Cómo instalar MySQL 8 en Debian 10