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

LINUXSOFTWARE
Zabbix

Instalación Zabbix

En nuestro caso instalaremos la versión 6.0 ya que en la versión 6.2 el soporte es sólo hasta 2023. Por defecto no lo tenemos en los repositorios de Ubuntu 22.04 (nuestra versión de server actual) así que debemos descargarlo e instalarlo a mano.

$ cd /tmp/
$ wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bubuntu22.04_all.deb
$ dpkg -i zabbix-release_6.0-4%2Bubuntu22.04_all.deb
$ apt update

Una vez descargado pasamos a instalar el servidor y el agente junto a la configuración de apache y PHP. Debemos tener comentado en el fichero /etc/dpkg/dpkg.cfg.d/excludes la línea path-exclude=/usr/share/doc/* en negrita, sino no nos descargará la DB:

$ nano /etc/dpkg/dpkg.cfg.d/excludes

# Drop all man pages
path-exclude=/usr/share/man/*

# Drop all translations
path-exclude=/usr/share/locale/*/LC_MESSAGES/*.mo

# Drop all documentation ...
#path-exclude=/usr/share/doc/*

# ... except copyright files ...
path-include=/usr/share/doc/*/copyright

# ... and Debian changelogs
path-include=/usr/share/doc/*/changelog.Debian.*

$ apt install zabbix-agent zabbix-server-mysql php-mysql zabbix-frontend-php zabbix-sql-scripts zabbix-apache-conf

Podemos verificar la versión instalada:

$ apt-cache policy zabbix-server-mysql

zabbix-server-mysql:
  Instalados: 1:6.4.0~beta4-1+ubuntu22.04
  Candidato:  1:6.4.0~beta4-1+ubuntu22.04
  Tabla de versión:
 *** 1:6.4.0~beta4-1+ubuntu22.04 500
        500 https://repo.zabbix.com/zabbix/6.3/ubuntu jammy/main amd64 Packages
        100 /var/lib/dpkg/status
     1:5.0.17+dfsg-1 500
        500 http://es.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

Crear las Tablas

Antes de instalar Zabbix necesitamos crear la BD a la que se conectará. Hacemos login en un terminal y creamos la BD.

$ mysql -u root -p

CREATE DATABASE zabbix character set utf8mb4 collate utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED by ‘poner_un_password’;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;

Warnign!
“Since August 2022, we now need to temporarily enable the log_bin_trust_function_creators option.”
set global log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
QUIT

Opcional PHPMyAdmin

PhpMyAdmin no forma parte de los repositorios de Debian por lo que tenemos que descargarlo desde la web oficial. Desde aquí podemos ver todas las versiones.  

En nuestro caso instalaremos la versión 5.2:

$ cd /tmp && wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.zip
$ apt install unzip
$ unzip phpMyAdmin-5.2.0-all-languages.zip

Ahora vamos a mover el directorio descomprimido de phpmyadmin al directorio /usr/share que es donde phpmyadmin espera encontrar sus ficheros con:

$ mv phpMyAdmin-5.2.0-all-languages /usr/share/phpmyadmin

Ya podemos borrar el fichero que nos descargamos desde la web oficial con:

$ rm /tmp/phpMyAdmin-5.2.0-all-languages.zip

Este panel de control para bases de datos necesita tener en la ruta /var/lib un directorio temporal tras su directorio de phpmyadmin así que vamos a crearlo con:

$ mkdir -p /var/lib/phpmyadmin/tmp

Le asignamos el usuario y grupo web para que el servidor Apache pueda trabajar con él:

$ chown -R www-data:www-data /var/lib/phpmyadmin
$ systemctl reload apache2.service

Creamos un enlace con el nombre que queramos de acceso para ancceder al login de phpmyadmin. Es preferible que sea distinto de “phpmyadmin” para evitar accesos no deseados.

$ cd /var/www/html/
$ ln -s /usr/share/phpmyadmin/ phpmyadmin

Si entramos a la url donde está alojado deberíamos ver el panel de PhpMyadmin.

http://localhost/phpmyadmin

NOTA: podemos usar otro nombre que no sea phpmyadmin para proteger de posibles ataques.

Importamos el Schema inicial y los datos. 

$ zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u zabbix -p zabbix 

Te preguntará para insertar el password nuevo creado para zabbix@localhost que utilizamos. Tardará unos minutos en crear el nuevo schema en la BD.

Disable log_bin_trust_function_creators option after importing database schema.

$ mysql -u root
set global log_bin_trust_function_creators = 0;
quit;

En la siguiente parte, parte III, haremos la configuración de nuestro sistema de monitoreo Zabbix.