En este tutorial, le mostraré cómo actualizar casi cualquier versión de Zabbix (3.0, 3.2, 3.4, 4.0, 4.2, 4.4) a 5.0 o 5.4 usando paquetes oficiales de repo.zabbix.com . Esta es una guía de actualización de Zabbix que abarca Ubuntu, CentOS, RHEL, Oracle Linux, Debian y Rasbian (Raspberry Pi), combinado con cualquier servidor web (Apache o NGINX) y base de datos (MySQL, MariaDB o PostgreSQL).
¿Ya tienes Zabbix 5.0 o 5.2? Salte al paso 11: ¿Cómo actualizar Zabbix a 5.4?
Zabbix 5 trae muchas características nuevas, puedes leer sobre ellas en el sitio oficial, así que no escribiré sobre ellas. Sin embargo, debo mencionar los nuevos cambios en PHP y los requisitos de la base de datos que deben tenerse en cuenta.
La noticia clave es que a partir de la versión 5.0, Zabbix ya no admitirá versiones de PHP anteriores a la 7.2. Los sistemas operativos más nuevos son compatibles con PHP 7.2+, por lo que puede actualizar a 5.0 sin ninguna dificultad en estas distribuciones de Linux:
- Ubuntu 20.04 (Focal) / 18.04 (Bionic)
- CentOS 8 / RHEL 8 / Oracle Linux 8
- Debian 10 (Buster)
- Rasbian 10 (Rasberry Pi)
Pero, ¿qué pasa si tiene una distribución anterior que no tiene PHP 7.2+? La forma oficial de obtener PHP 7.2 o posterior en versiones anteriores de Debian / Ubuntu es actualizar a Buster / Focal. Y para CentOS 7 , puede seguir el Paso 10: Cómo actualizar Zabbix 4.xa 5.0 en CentOS 7
Además de eliminar el soporte para versiones anteriores de PHP, Zabbix 5.0 ha endurecido los requisitos para la base de datos. Estas son las versiones mínimas de la base de datos que admite el nuevo Zabbix:
- MySQL 5.5.62
- MariaDB 10.0.37
- PostgreSQL 9.2.24
Verifique la versión de su base de datos y si no cumple con los requisitos, primero deberá actualizarla antes de continuar con esta guía.
Tenga en cuenta que esta guía es para actualizar Zabbix.
Contenido
- Paso 1: Detenga el servidor Zabbix
- Paso 2: copia de seguridad de los componentes de Zabbix
- Paso 3: Actualice Zabbix Server y Frontend
- Paso 4: Inicie el servicio Zabbix y la actualización de la base de datos
- Paso 5: borre la memoria caché del navegador y verifique la versión de Zabbix
- Paso 6: Parche la base de datos y corrija la advertencia “la base de datos no se actualiza para usar valores de doble precisión”
- Paso 7: Actualice entre versiones menores
- Paso 8: Actualice Zabbix-Proxy o Zabbix-Agent
- Paso 9: procedimiento de restauración (si falla la actualización de Zabbix)
- Paso 10: ¿Cómo actualizar Zabbix 4.xa 5.0 en CentOS 7?
- Paso 11: ¿Cómo actualizar Zabbix 5.0 o 5.2 a 5.4?
- Paso 12: Obtenga información sobre los errores de actualización comunes
Nota: Debe iniciar sesión como usuario root en su servidor Linux con “ su -” o usar “ sudo” para ejecutar con éxito los comandos utilizados en este tutorial.
Paso 1: Detenga el servidor Zabbix
Primero debemos detener el servidor Zabbix para que la base de datos no reciba ningún dato mientras realizamos la actualización:
systemctl detener servidor zabbix
Paso 2: copia de seguridad de los componentes de Zabbix
La actualización de Zabbix debería realizarse sin problemas, pero existe ese famoso dicho ” más vale prevenir que curar ” o, como me gusta decir, “mejor copia de seguridad que pasar todo el día en una terminal linux”.
Por lo tanto, haga una copia de seguridad de sus datos y copie todos los archivos Zabbix relevantes en su directorio de copia de seguridad. Esto le dará la opción de restaurar la versión anterior de Zabbix si algo sale mal con la actualización. El procedimiento de restauración se describe en el Paso 9: Procedimiento de restauración (si falla la actualización de Zabbix).
a) Crear directorios para archivos de respaldo
Cree directorios de respaldo para archivos binarios, de configuración, doc, web y de bases de datos.
mkdir -p /opt/zabbix_backup/bin_files/opt/zabbix_backup/conf_files /opt/zabbix_backup/doc_files
mkdir -p /opt/zabbix_backup/web_files/opt/zabbix_backup/db_files
b) Copia de seguridad de archivos binarios, doc y conf de Zabbix
A continuación, copie los archivos binarios, doc y de configuración de Zabbix. Algunos archivos no se cerrarán, dependiendo del servidor web que esté usando (Apache o NGINX), por lo que usaré “ 2>/dev/null” para ignorar los errores de copia.
cp -rp /etc/zabbix/zabbix_server.conf /opt/zabbix_backup/conf_files
cp -rp /usr/sbin/zabbix_server /opt/zabbix_backup/bin_files
cp -rp /usr/share/doc/zabbix-* /opt/zabbix_backup/doc_files
cp -rp /etc/httpd/conf.d/zabbix.conf /opt/zabbix_backup/conf_files 2>/dev/null
cp -rp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix_backup/conf_files 2>/dev/null
cp -rp /etc/zabbix/php-fpm.conf /opt/zabbix_backup/conf_files 2>/dev/null
c) Copia de seguridad de archivos web de Zabbix (frontend)
Copia de seguridad de los archivos frontend de Zabbix.
cp -rp / usr / share / zabbix / / opt / zabbix_backup / web_files
d) Copia de seguridad de la base de datos de Zabbix
Nota: Esta guía está diseñada para la instalación de Zabbix en combinación con MySQL / MariaDB, y si está utilizando PostgreSQL, ¡busque en Google cómo hacer una copia de seguridad de PostgreSQL!
Asegúrese de tener suficiente espacio libre en el disco en “ /opt” o use otra ruta de diccionario para la copia de seguridad de la base de datos.
Este comando hará una copia de seguridad completa de la base de datos Zabbix en la instancia de MySQL / MariaDB (cambie el nombre de host , el usuario , la contraseña y el nombre de la base de datos para que coincida con su entorno):
mysqldump -h localhost -u ‘ root ‘ -p ‘ rootDBpass ‘ – transacción única ‘ zabbix ‘ | gzip> /opt/zabbix_backup/db_files/zabbix_backup.sql.gz
Tenga en cuenta que este proceso de copia de seguridad puede tardar desde unos minutos hasta horas, según el tamaño de la base de datos.
Paso 3: Actualice Zabbix Server y Frontend
Seleccione el repositorio del sistema operativo apropiado y actualice el servidor Zabbix y el frontend siguiendo las instrucciones proporcionadas.
Nota: Si usa PostgreSQL, reemplace “ mysql” por “ pgsql” en el comando de actualización.
a) Ubuntu 20.04 / Ubuntu 18.04
Elimine el antiguo repositorio de Zabbix para que podamos instalar el nuevo:
dpkg –purge zabbix-release
Actualice Zabbix y cuando se le pregunte qué hacer con el archivo de configuración de Zabbix, simplemente presione enter para mantener la versión actual de ” zabbix_server.conf”:
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc) _all.deb
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
apt update
apt install -y –only-upgrade zabbix-server-mysql zabbix-frontend-php
b) RHEL 8 / CentOS 8 / Oracle Linux 8
Actualice Zabbix y cuando se le pregunte qué hacer con el archivo de configuración de Zabbix, simplemente presione enter para mantener la versión actual de ” zabbix_server.conf”
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/$(rpm -E %{rhel})/x86_64/zabbix-release-5.0-1.el$(rpm -E %{rhel}).noarch.rpm
dnf clean all
dnf upgrade -y zabbix-server-mysql zabbix-web-mysql
Y si está utilizando el servidor Apache (httpd) instale ” zabbix-apache-conf”:
dnf install -y zabbix-apache-conf
c) Debian 10
Elimine el antiguo repositorio de Zabbix para que podamos instalar el nuevo:
dpkg –purge zabbix-release
Actualice Zabbix y cuando se le pregunte qué hacer con el archivo de configuración de Zabbix, simplemente presione enter para mantener la versión actual de ” zabbix_server.conf”:
sudo wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
apt update
apt install -y –only-upgrade zabbix-server-mysql zabbix-frontend-php
d) Rasbian 10
Elimine el antiguo repositorio de Zabbix para que podamos instalar el nuevo:
dpkg –purge zabbix-release
Actualice Zabbix y cuando se le solicite el archivo de configuración de Zabbix, simplemente presione enter para mantener la versión actual de ” zabbix_server.conf”:
sudo wget https://repo.zabbix.com/zabbix/5.0/raspbian/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
apt update
apt install -y –only-upgrade zabbix-server-mysql zabbix-frontend-php
Y si está utilizando el servidor Apache (httpd) instale ” zabbix-apache-conf”:
apt-get install -y zabbix-apache-conf
Paso 4: Inicie el servicio Zabbix y la actualización de la base de datos
¡Gran trabajo! ¡El servidor y la interfaz de Zabbix se actualizaron con éxito! Sin embargo, la base de datos de Zabbix todavía está en la versión anterior porque no la actualizamos. Esto es especialmente evidente cuando se conecta a un frontend porque sería recibido con el mensaje ” El frontend no coincide con la base de datos de Zabbix “.
Afortunadamente, la actualización de la base de datos de Zabbix es la parte fácil, simplemente inicie el servicio de Zabbix y automáticamente hará la actualización:
systemctl start zabbix-server
La actualización de la base de datos puede durar de 1 minuto a horas, según el tamaño de la base de datos. Verifique el progreso de la actualización con el comando ” cat /var/log/zabbix/zabbix_server.log | grep database”:
# cat /var/log/zabbix/zabbix_server.log | grep database 1794:20200408:200607.700 current database version (mandatory/optional): 04040000/04040002
1794:20200408:200607.700 starting automatic database upgrade 1794:20200408:200607.706 completed 1% of database upgrade 1794:20200408:200608.804 completed 10% of database upgrade …..
1794:20200408:200613.111 completed 98% of database upgrade 1794:20200408:200613.123 completed 100% of database upgrade 1794:20200408:200613.123 database upgrade fully completed 1794:20200408:200613.136 database is not upgraded to use double precision values
La actualización de la base de datos se completa con éxito cuando recibe el mensaje ” actualización de la base de datos completamente completada ” en el archivo de registro del servidor Zabbix.
Paso 5: borre la memoria caché del navegador y verifique la versión de Zabbix
¡La interfaz de Zabbix puede verse bastante extraña después de la actualización porque no ha eliminado la caché en su navegador! Borre la memoria caché del navegador e inicie sesión en Zabbix.
Y si aún recibe el error ” La interfaz no coincide con la base de datos de Zabbix “, consulte el paso 11: Obtenga información sobre los errores de actualización comunes.
¡Una cosa más por hacer! En el servidor, verifique si la actualización fue exitosa con el comando ” zabbix_server -V”:
# zabbix_server -V
zabbix_server (Zabbix) 5.0.0
Y en la interfaz, verifique si se muestra la versión correcta de Zabbix (5.0.x) en la parte inferior de la página:
Paso 6: Parche la base de datos y corrija la advertencia “la base de datos no se actualiza para usar valores de doble precisión”
Es posible que observe un ” No ” rojo para el estado ” Tablas del historial de la base de datos actualizadas ” en el widget ” Información del sistema “. ¿Que es eso?
Con Zabbix 5.0, el tipo de datos flotante admite una precisión de aproximadamente 15 dígitos y un rango mayor. Esto es por defecto para nuevas instalaciones, pero si está actualizando, se debe aplicar un parche de actualización manual de la base de datos.
Antes de aplicar el parche, verifiquemos la descripción actual de la tabla (asegúrese de cambiar el nombre de la base de datos , el usuario y la contraseña con los suyos):
mysql -u'zabbix' -p'zabbixDBpass' zabbix -e "show create table history;"
| history | CREATE TABLE history (
itemid bigint(20) unsigned NOT NULL,
clock int(11) NOT NULL DEFAULT '0',
value double(16,4) NOT NULL DEFAULT '0.0000',
ns int(11) NOT NULL DEFAULT '0',
KEY history_1 (itemid,clock)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin |
Descargue el parche MySQL / MariaDB “ double.sql” y aplíquelo (los usuarios de PostGreSql deben cambiar “mysql” por “postgresql” en la ruta URL):
wget https://git.zabbix.com/projects/ZBX/repos/zabbix/raw/database/mysql/double.sql
mysql -u ‘ zabbix ‘ -p ‘ zabbixDBpass ‘ zabbix <double.sql
Consulte la descripción de la nueva tabla:
mysql -u’zabbix ‘-p’zabbixDBpass’ zabbix -e “muestra el historial de creación de la tabla;”
mysql -u’zabbix’ -p’zabbixDBpass’ zabbix -e “show create table history;”
history | CREATE TABLE history (
itemid bigint(20) unsigned NOT NULL,
clock int(11) NOT NULL DEFAULT ‘0’,
value double NOT NULL DEFAULT ‘0’,
ns int(11) NOT NULL DEFAULT ‘0’, KEY history_1 (itemid,clock) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin |
Ahora necesitamos agregar la línea debajo de ” zabbix.conf.php” con el editor de texto (” nano /etc/zabbix/web/zabbix.conf.php”) para eliminar el mensaje de advertencia de la interfaz:
$ DB [‘DOUBLE_IEEE754’] = ‘verdadero’;
¡Y hemos terminado con la actualización!
¡FELICIDADES!
¡Has actualizado Zabbix con éxito a la versión 5!
No es necesario cambiar nada más, ya que los demás pasos son opcionales.
CONTINUE PARA OBTENER MÁS INFORMACIÓN:
¿Cómo hacer una actualización menor de Zabbix (5.0.xa 5.0.y)?
¿Cómo actualizar Zabbix-proxy o Zabbix-Agent?
¿Algo salió mal? Aprenda a restaurar Zabbix a una versión anterior.
¿Cómo actualizar Zabbix 4.xa 5 en CentOS 7?
¿Cómo actualizar Zabbix 5.0 a 5.4 usando un script?
Más información sobre los errores habituales de actualización
Paso 7: Actualice entre versiones menores
El equipo de Zabbix trabaja sin parar como una abeja y cada dos semanas lanza una actualización más pequeña que corrige errores y trae nuevas funcionalidades, por lo que es necesario hacer la actualización menor al menos una vez al mes. Una actualización menor es bastante segura, no es necesaria una copia de seguridad, porque puede actualizar fácilmente las versiones menores de 5.0.x (por ejemplo, de 5.0.0 a 5.0.4) con estos comandos:
a) Ubuntu / Debian / Rasbian
apt install –only-upgrade ‘zabbix.*’
b) CentOS / RHEL / Oracle Linux
dnf upgrade ‘zabbix-*’
Reinicie el servidor Zabbix después:
systemctl restart zabbix-server
Paso 8: Actualice Zabbix-Proxy o Zabbix-Agent
Si necesita actualizar el servidor proxy , simplemente repita los pasos del “ Paso 3: Actualice Zabbix Server, Frontend ” pero use “ apt install -y –only-upgrade zabbix-proxy” para Ubuntu / Debian / Rasbian o “ dnf upgrade -y zabbix-proxy” en RHEL (CentOS / Oracle Linux) en lugar de “ zabbix-server-mysql zabbix-frontend-php” y reinicie servicio después con “ systemctl restart zabbix-proxy“.
El procedimiento para la actualización de Zabbix-Agent es similar: repita las instrucciones para el proxy, pero reemplace “ zabbix-proxy” por “ zabbix-agent“.
Paso 9: procedimiento de restauración (si falla la actualización de Zabbix)
¿Algo salió mal? Puede seguir este paso solo si ha hecho todo desde el Paso 2: Copia de seguridad de los componentes de Zabbix . Asegúrese de cambiar el nombre de la base de datos, el usuario raíz de la base de datos y el usuario de la base de datos Zabbix con el suyo, y si su base de datos está en otro servidor dedicado, cambie también localhost .
a) Detenga el servidor Zabbix
systemctl stop zabbix-server
b) Eliminar la base de datos y crear una nueva con los permisos adecuados
mysql -u’root’ -p’rootDBpass’ -e “drop database zabbix”
mysql -u’root’ -p’rootDBpass’ -e “create database zabbix character set utf8 collate utf8_bin;”
mysql -u’root’ -p’rootDBpass’ -e “grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbixDBpass’;”
c) Importar la base de datos de la copia de seguridad
mysql -u’root’ -p’rootDBpass’ zabbix -e “set global innodb_strict_mode=’OFF’;”
zcat /opt/zabbix_backup/db_files/zabbix_backup.sql.gz | mysql -h localhost -u’root’ -p’rootDBpass’ ‘zabbix’
mysql -u’root’ -p’rootDBpass’ zabbix -e “set global innodb_strict_mode=’ON’;”
d) Eliminar archivos web y bin de Zabbix
rm -rf /usr/sbin/zabbix_server/usr/share/zabbix
e) Restaurar archivos desde la copia de seguridad
cp -rp /opt/zabbix_backup/conf_files/zabbix_server.conf /etc/zabbix/zabbix_server.conf
cp -rp /opt/zabbix_backup/bin_files/zabbix_server /usr/sbin/zabbix_server
cp -rp /opt/zabbix_backup/doc_files/zabbix-* /usr/share/doc/ cp -rp /opt/zabbix_backup/web_files/zabbix /usr/share/zabbix
cp -rp /opt/zabbix_backup/conf_files/zabbix.conf /etc/httpd/conf.d/zabbix.conf 2>/dev/null
cp -rp /opt/zabbix_backup/conf_files/zabbix.conf /etc/apache2/conf-enabled/zabbix.conf 2>/dev/null
cp -rp /opt/zabbix_backup/conf_files/php-fpm.conf /etc/zabbix/php-fpm.conf 2>/dev/null
f) Inicie el servidor Zabbix
systemctl start zabbix-server
¡Elimina la caché de tu navegador y listo! Zabbix está ahora en una versión antigua.
Paso 10: ¿Cómo actualizar Zabbix 4.xa 5.0 en CentOS 7?
Este procedimiento es solo para aquellos que tienen Zabbix en CentOS 7. CentOS 7 no tiene PHP 7.2, por lo que para él el procedimiento de actualización es un poco diferente.
Configure y limpie el repositorio, actualice e instale ” centos-release-scl”:
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
yum -y upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent
yum -y install centos-release-scl
Establezca ” enabled = 1 ” en lugar de ” enabled = 0 ” en el archivo ” /etc/yum.repos.d/zabbix.repo” en la sección ” [zabbix-frontend]”
[zabbix-frontend]
name=Zabbix Official Repository frontend – $basearch baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
Elimine la antigua interfaz de Zabbix e instale una nueva desde “ centos-release-scl“:
yum eliminar zabbix-web-4.*
yum -y instalar zabbix-web-mysql-scl zabbix-apache-conf-scl
Edite el archivo ” /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf” y descomente la línea que comienza con ” ; php_value date.timezone Europe/Riga” eliminando el símbolo ” ;” y estableciendo la zona horaria correcta para su país, por ejemplo:
php_value date.timezone Europe / Amsterdam
Reinicie todos los servicios y configúrelos para que se inicien en el arranque:
systemctl reiniciar servidor zabbix zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
¡La interfaz de Zabbix puede verse bastante extraña después de la actualización porque no ha eliminado la caché en su navegador! Borre la memoria caché del navegador e inicie sesión en Zabbix.
Un último paso por hacer, aplique el parche DB siguiendo el “ Paso 6: Parche DB y corrija la advertencia“ la base de datos no se actualiza para usar valores de doble precisión ” y ya ha terminado con la actualización.
¿Porque no elegi actualizar a Zabbix a 5.4?
Probablemente se esté preguntando por qué no escribí las instrucciones de actualización de Zabbix 5.4 al comienzo de este tutorial. La respuesta es simple, ¡no me gusta la versión estándar de Zabbix!
La versión estándar de Zabbix 5.4 trae nuevas características pero a costa de la estabilidad (más errores) y el soporte está limitado a solo 6 meses. Por otro lado, la versión de Zabbix LTS, como la 5.0, tiene soporte durante 5 años y es mucho más estable. Puede encontrar más información sobre el ciclo de vida de Zabbix y las políticas de lanzamiento en el sitio web oficial.
Nota: Debe iniciar sesión como usuario root en su servidor Linux con “ su -” o usar “ sudo” para ejecutar con éxito los comandos utilizados en este tutorial.