Instalación y configuración de un sistema de monitoreo Zabbix. (Parte I)

LINUXSOFTWARE
Zabbix

Zabbix es un sistema de monitorización de servidores en tiempo real, pudiendo monitorizar redes y aplicaciones. La base de Zabbix es Java y C y su frontend está escrito en PHP.

Utiliza la arquitectura cliente/servidor de forma que el servidor está en comunicación con los diferentes clientes que se denominan “Zabbix Agents”. Estos clientes pueden ser de diferentes sistemas operativos (Linux, macOS, Solaris, Windows etc.)

El servidor Zabbix almacena sus datos en una BBDD relacional y se puede gestionar con MySQL, PostgreSQL o con MariaDB. Dado que MySQL pasó a formar parte de ORACLE y ya no es 100% GPL, lo ideal es montarlo con MariaDB o PostgreSQL.

En este caso al cambiar a un nuevo hardware y aprovechando que tengo que actualizar mi Ubuntu Server a la nueva versión 22.04LTS con soporte hasta 2027 (ya tocaba actualizar) vamos a instalarlo de cero con instalación limpia en nuestro nuevo servidor.

Pasos previos

Actualizar el sistema

$ apt update && apt upgrade

Instalar Apache2 y php7.4

En este caso instalaremos la versión PHP 7.4, que es la versión estable a fecha de esta entrada. Por defecto en Ubuntu 22.04 trae repositorios para PHP8.1, pero en principio nos interesa la 7.4 por compatibilidad.

$ apt -y install apache2 libapache2-mod-fcgid && software-properties-common
$ apt -y install lsb-release apt-transport-https ca-certificates
$ add-apt-repository ppa:ondrej/php -y && apt update
$ apt install php7.4 php7.4-fpm php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip

Instalamos las extensiones más comunes por si falta alguna:

$ apt-get install php7.4-{bcmath,bz2,intl,gd,mbstring,mysql,zip,json,curl}

PHP-FPM (un acrónimo de FastCGI Process Manager) es una alternativa PHP muy popular (Procesador de hipertexto) Implementación de FastCGI. Para instalar PHP-FPM con los siguientes comandos.

$ sudo apt install php7.4-fpm libapache2-mod-fcgid

Hay que tener en cuenta que, de forma predeterminada, PHP-FPM no está habilitado para Apache. Hay que habilitarlo con el siguiente comando.

$ a2enmod proxy_fcgi setenvif && a2enconf php7.4-fpm

Por último, reiniciamos Apache.

$ systemctl restart apache2

Podemos verificar el estado de php-fpm 7.4 y Apache2 con el siguiente comando:

$ systemctl status php7.4-fpm apache2

NOTA: Si tenemos PHP8.1 y PHP7.4 podemos seleccionar el que queremos que use el sistema por defecto:

$ update-alternatives --config php

Instalar MariaDB

Instalamos MariaDB, en este caso la versión última soportada por Zabbix 6.4, que es la 10.8

$ apt -y install software-properties-common curl && apt autoremove -y
$ curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
$ bash mariadb_repo_setup --mariadb-server-version=10.8
$ apt update && apt -y install mariadb-server mariadb-client && apt autoremove -y

NOTA: Zabbix 6.4 utiliza una BBDD mariaDB 10.5 a 10.8.XX, si tenemos la última versiós de MariaDB que es la 10.10 a la fecha de la creación de esta entrada, no funcionará y nos avisará en los logs /var/log/zabbix. 

Vemos que tenemos todo corriendo ok:

$ systemctl status apache2.service php7.4-fpm.service mysql.service

Cuando finalice la instalación, podemos asegurarlo ejecutando el siguiente script:

$ mysql_secure_installation

Pondremos nuestra clave para root.

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): «ponemos nuestro pass»
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y

El resto por defecto.

Continuaremos con la instalación de Zabbix en una siguiente entrada, parte II.