Vamos a ver cómo implementar un sistema de monitorización open source dentro de un entorno virtualizado. Para ello, he creado un laboratorio Proxmox para mostrar cómo resultaría en un entorno en producción. Puede que en futuras entradas explique cómo instalé y configuré esta plataforma de virtualización, clúster, alta disponibilidad...
¿Qué es Zabbix?.
Zabbix es una herramienta de monitorización de red de código abierto sin versiones de pago, que es capaz de monitorizar cientos de máquinas y ejecutar miles de chequeos por host. Nada tiene que envidiarle a otras soluciones mucho más costosas, como por ejemplo Nagios.
Se administra completamente a través de la interfaz gráfica. Muy útil tanto para pequeños como grandes entornos de red.
Por estabilidad y rendimiento cuando se monitoriza un gran entorno de producción, se recomienda utilizar CentOS como sistema operativo base. Esta MV (Máquina Virtual)no ofrecerá ningún otro servicio por su alto consumo de recursos.
Zabbix funciona en un modelo Cliente/Servidor, en el cual el servidor se comunica con los agentes de software de monitorización disponibles para varios sistemas operativos. También puede funcionar sin un agente mediante el protocolo de SNMP (Simple Network Management Protocol), pero no se capturarían tantos datos como en la monitorización del agente de Zabbix, por lo que son una gran opción para los servidores Proxmox.
Instalación de Zabbix en CentOs7.
El servidor Zabbix 5.0 depende de las aplicaciones Apache 1.3.12, PHP 7.2.0 yMySQL/MariaDB 10.0.3.
Se habilita el repositorio y se instala el paquete de configuración del repositorio, para obtener el servidor Zabbix, el agente y la interfaz:
yum install -y centos-release-scl
Rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
MySQL/MariaDB:
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl zabbix-server-mysql zabbix-agent --enablerepo=zabbix-frontend
Para comenzar a usar Apache con el servidor Zabbix, el archivo de configuración de Zabbix ‘/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf’ debe actualizarse con la zona horaria, descomentando y modificarndo la línea ‘php_value[date.timezone] = Europe/Madrid’
Instalación y creación de la base de datos de MariaDB 10.4:
yum install -y mariadb-server mariadb
Se levanta el servicio,
systemctl start mariadb
y después de configurar el archivo de seguridad de MariaDB (mysql_secure_installation) se crea una base de datos con el cotejamiento/caracteres adecuados, y un usuario/contraseña con privilegios para la instalación de Zabbix: mysql -u root -p
create database zabbixdb character set utf8 collate utf8_bin;
create user zabbixuser@localhost identified by ‘122112’;
grant all privileges on zabbixdb.* to zabbixuser@localhost identified by ‘122112’;
Ahora le damos al instalador la estructura que necesita, cargando el archivo SQL:
cd /usr/share/doc/zabbix-server-mysql-5.0.1/
zcat create.sql.gz | mysql -u zabbixuser -p zabbixdb
Configuro los detalles de la base de datos en el archivo de configuración del servidor:
DBHost=localhost
DBName=zabbixdb
DBUser=zabbixuser
DBPassword=122112
Se reinician todos los servicios y se habilita el inicio automático en el reinicio del
sistema:
sistema:
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
La distribución CentOS incorpora por defecto, además del control de acceso a lospermisos tradicionales de UNIX: Propietario, Grupo y Otros; Lectura, Escritura y
Ejecución, un módulo de seguridad para el núcleo Linux SELinux (Security-Enhanced
Linux), que añade mecanismos de control de acceso a procesos, puertos, archivos y
directorios. De esta manera se protege al sistema operativo contra amenazas externas o
internas, para evitar agujeros de seguridad en aplicaciones, incluso si aún son
desconocidos.
Se habilita la conexión de la interfaz web de Zabbix al servidor con el comando, de lo
contrario el servidor no se levantará:
yum install -y policycoreutils-python
setsebool -P httpd_can_connect_zabbix on
Para la configuración de Zabbix desde la interfaz web, se verifica que tanto los prerrequisitos y la configuración de la conexión a la base de datos ‘zabbixdb’ sean correctos. Se descarga el archivo de configuración generado .php y se mueve a la ruta correspondiente. La interfaz de Zabbix se ha instalado con éxito.Se requiere la
instalación del agente Zabbix en la VM que queramos (Ubuntu en mi caso) para poder ser
monitorizada por el servidor. Para realizar esta tarea hay que
seguir los siguientes pasos desde la línea de comandos de Ubuntu:
Descarga del paquete oficial correspondiente a la versión 5.0.3 de
Ubuntu 20.02 LTS:
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pcp/pcp -export-zabbix-agent_5.0.3-1_amd64.deb
Instalación del paquete:dpkg -i pcp-export-zabbix-agent_5.0.3-1_amd64.deb
Actualización de paquetes e instalación del agente Zabbix:
Se edita el archivo de configuración /etc/zabbix/zabbix_agentd.conf actualizando la IP del servidor Zabbix y el hostname:
sudo apt-get update
sudo apt-get install zabbix-agent
Server=192.168.2.11 // servidor Zabbix en CentOs7
HostnameItem=system.hostname // elemento utilizado para generar el
hostname si este no está definido
(#hostname=ubuntu.proyectovictor.com).
Para finalizar se reinicia el agente Zabbix:
sudo systemctl enable zabbix-agent
sudo systemctl start zabbix-agent
Añadir la VM Ubuntu para ser monitorizada por Zabbix.
-Ir a Configuración | Hosts y darle clic a Create Host.
El Hostname ‘ubuntu.proyectovictor.com’ debe coincidir con el del archivo de configuración del agente Zabbix en la VM Ubuntu.
Visible name puede ser cualquier nombre.
Para Group se elige ‘Virtual machines’.
Se añade la IP ‘192.168.2.12’ del agente en Interfaces. Por
defecto, el agente escucha por el puerto 10050. Como en mi configuración, esta MV está
detrás del cortafuegos pfSense, se
deberá abrir el puerto desde
Firewall/NAT/Port Forward.
Página de configuración del host:
MV Ubuntu añadida a Zabbix.
Si seleccionamos Automatic desde configuración/hosts/inventory
el agente de Zabbix puede extraer información relevante acerca de la
VM Ubuntu:
Zabbix utiliza una herramienta gráfica que recoge los datos del
host. Por ejemplo, aquí se puede ver el consumo de CPU en Ubuntu:
0 Reviews