4 de junio de 2020
Decidido ya a tener un sistema de monitorización global para las máquinas bajo mi control he instalado una versión LTS de este programa.
Las instrucciones están muy claras. Lo han organizado de manera que te bajes un paquete Debian que instala el repositorio propio con la versión correspondiente del sistema (Buster) y la base de datos a emplear (MySQL/Mariadb). Después es cosa de seguir los siguientes pasos:
- Instalar paquetes de servidor y agente.
- Crear el usuario y la base de datos.
- Inicializar la base de datos con un archivo que viene incluído
- Configurar el servidor con los parámetros de acceso a la base de datos y otros ajustes del lenguaje PHP para el frontal web.
- Arrancar servidor y el cliente
- Configurar el servidor Apache para acceder al frontal. En mi caso he decidido emplear un servidor virtual: monitor.venexma.net.
- Configurar el frontal siguiente un asistente paso a paso; se crea entonces otro archivo de configuración en /etc/zabbix/web.
El servidor ha tenido un problema al arrancar y he tenido que solucionarlo a mano. El mensaje de error indicaba que el directorio /var/run/zabbix no existía y es algo que la instalación ha olvidado pero la configuración no (/etc/zabbix/zabbix_server.conf).
$ sudo install -d -o zabbix -g zabbix -m 0770 /var/run/zabbix
El servidor virtual de apache queda así de sencillo:
<VirtualHost *:443>
ServerName monitor.venexma.net
ServerAlias monitor
ServerAdmin root@venexma.net
DocumentRoot /usr/share/zabbix
Include "/etc/apache2/ssl.conf"
Include "/etc/zabbix/apache.conf"
CustomLog /var/log/apache2/monitor.venexma.net/access.log combined
ErrorLog /var/log/apache2/monitor.venexma.net/error.log
</VirtualHost>
He incluido directamente la parte de Apache de la configuración del paquete y no sé si es buena idea para futuras actualizaciones. En dicho archivo aparece un alias que yo he eliminado para emplearlo en un virtualhost.
# Define /zabbix alias, this is the default
#<IfModule mod_alias.c>
# Alias /zabbix /usr/share/zabbix
#</IfModule>
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
<IfModule mod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Madrid
</IfModule>
</Directory>
<Directory "/usr/share/zabbix/conf">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
<Directory "/usr/share/zabbix/app">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
<Directory "/usr/share/zabbix/include">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
<Directory "/usr/share/zabbix/local">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
Para acceder por vez primera al frontal web se usa como credenciales Admin y zabbix y luego, obviamente, se cambia.
En este caso he añadido la posibilidad de emplear LDAP para autentificar usuarios y no estoy seguro de no haber metido la pata. Utiliza una conexión bind con el directorio LDAP pero los usuarios hay que añadirlos a mano en su panel de control. El problema es que una vez que he activado ésto estoy viendo cómo no puedo entrar como superusuario y sospecho que es porque valida su contraseña también contra el LDAP y no lo tiene como excepción. En otras aplicaciones como Nextcloud es así, la cuenta de administración está al margen de estos añadidos pero aquí parece que no.
Asuntos pendientes
- Conseguir acceso como usuario Admin para dar privilegios de superadministrador a mi usuario habitual.
- Aprender a utilizarlo para sacarle provecho.