Обновляем zabbix с 4.0 до 5.0 через грабли

Введение

Ранее я написал подробную статью по установке и настройке Zabbix 5, где в том числе рассказал своими словами обо всех основных нововведениях. Настоятельно рекомендую с ними ознакомиться, прежде чем обновляться. Обязательно сначала прочитайте всю статью, только потом начинайте обновление. По ходу дела будут важные замечания.

Второй момент. В этой версии очень много изменений, как в настройках, так и в интерфейсе. Обновлять без подготовки не рекомендую. Если у вас несколько серверов, начните с самого простого. Если же только один, то настоятельно рекомендую сделать его копию и проверить обновление на ней.

Еще один момент, который я упускал, когда обновлялся со старых версий Zabbix. В новых версиях часто обновляются стандартные шаблоны, но вы их не увидите при обновлении. У вас останутся работать старые версии. Новые нужно вручную переносить из свежих установок и подключать к хостам.

С одной стороны это плюс, так как шаблоны зачастую меняются очень сильно. Нужен ручной контроль. А с другой стороны неудобно вручную обновлять все шаблоны, которые еще и зависимости свои имеют. Рассмотрю все эти моменты по ходу дела. Приступаем к обновлению сервера мониторинг Zabbix версии 4.4 до 5.0.

Важный нюанс. Минимальные системные требования к версии php для Zabbix 5 — 7.2 Так что прежде чем обновлять сам сервер мониторинга, убедитесь, что у вас стоит подходящая версия php.

Step 3: Upgrade Zabbix Server and Frontend

Select the appropriate OS repository and upgrade the Zabbix server and frontend using the provided instructions.

Note: If using PostgreSQL, replace “” with “” in the upgrade command.

a) Ubuntu 20.04 / Ubuntu 18.04

Please delete old Zabbix repository so that we can install the new one:

Upgrade Zabbix and when prompted what to do with Zabbix configuration file, just press enter to keep the current version of ““:

And if you are using Apache server (httpd) install ““:

b) RHEL 8 / CentOS 8 / Oracle Linux 8

Upgrade Zabbix and when prompted what to do with Zabbix configuration file, just press enter to keep the current version of ““

And if you are using Apache server (httpd) install ““:

c) Debian 10

Please delete old Zabbix repository so that we can install the new one:

Upgrade Zabbix and when prompted what to do with Zabbix configuration file, just press enter to keep the current version of ““:

And if you are using Apache server (httpd) install ““:

d) Rasbian 10

Please delete old Zabbix repository so that we can install the new one:

Upgrade Zabbix and when prompted for Zabbix configuration file, just press enter to keep the current version of ““:

And if you are using Apache server (httpd) install ““:

Что там в логах сервера

В прошлой публикации мы рассмотрели основные способы диагностики работы мониторинга. Там же было сказано, что логи сервера — основной источник данных о его работе и возможных проблемах. Посмотрим есть ли ошибки в логах.

В моем случае ошибок никаких не возникало. Тогда можно посмотреть последние 50 событий.

Ничего особенно в логах не видим: процессы запущены, работает housekeeper, все штатно. Тогда зайдем в список хостов в веб-интерфейсе и проверим собираются ли метрики.

Тоже все хорошо. Несмотря на то, что агентов мы не обновляли (кроме агента на Zabbix-сервере), мониторинг продолжает работать в штатном режиме.

Однако, на основной панели веб-интерфейса можно увидеть вот такую информацию об ошибке.

Для исправления достаточно в файле “/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf” исправить параметр “date.timezone” (расскоментировать и поставить нужный часовой пояс). Вот так в моем случае выглядит параметр до и после изменения:

После изменения параметров обязательно нужно перезапустить службы и включить их запуск автоматически при загрузке ОС.

После этого ошибка настройки часового пояса больше не появится.

Update results

The upgrade will boost your Zabbix performance by at least 20% without hardware changes, letting your process 2.7 K valuer per second instead of 2.4 K.

Performance before upgrade

Performance after upgrade

History syncer and housekeepers before the update can be quite loaded jumping occasionally up to 100%. percent.

Utilization before upgrade

With TimescaleDB, history sinker can basically take a vacation, as it was loaded up to 20% only, and the data is flowing in more efficiently as the database size is 90%-compressed.

Utilization after upgrade

In the upgrading examples, two databases were used — 30 GB and 300 GB.

Database size before upgrade

Database size after upgrade

Установка обновления zabbix 5.0 до 5.2

Centos 7, 8

Для начала проверим список установленных пакетов zabbix в системе. Их название может быть разным в зависимости от используемых репозиториев. К примеру, в centos 7 у пакетов может быть дополнение в виде scl к названию пакета.

Centos 7:

# rpm -qa | grep zabbix
zabbix-web-5.0.5-1.el7.noarch
zabbix-web-mysql-scl-5.0.5-1.el7.noarch
zabbix-agent-5.0.5-1.el7.x86_64
zabbix-web-deps-scl-5.0.5-1.el7.noarch
zabbix-apache-conf-scl-5.0.5-1.el7.noarch
zabbix-release-5.2-1.el7.noarch
zabbix-server-mysql-5.0.5-1.el7.x86_64

Centos 8:

# rpm -qa | grep zabbix
zabbix-server-mysql-5.0.5-1.el8.x86_64
zabbix-web-5.0.5-1.el8.noarch
zabbix-web-mysql-5.0.5-1.el8.noarch
zabbix-web-deps-5.0.5-1.el8.x86_64
zabbix-release-5.0-1.el8.noarch
zabbix-agent-5.0.5-1.el8.x86_64

Устанавливаем обновление zabbix на сервер Centos 8, выбирая установленные у вас пакеты:

# yum upgrade zabbix-web zabbix-web-mysql zabbix-server-mysql zabbix-agent

Для centos 7 будет такой список:

# yum upgrade zabbix-web zabbix-web-mysql-scl zabbix-agent zabbix-server-mysql

Обращаю внимание, что на момент написания данной статья, пакетов 5.2 для Centos 7 в репозиториях нет. В официальных инструкциях их тоже нет и не понятно, будут ли

Как только появятся, я дополню статью.

После завершения обновления, запускаем zabbix-server.

# systemctl start zabbix-server

Проверяем лог сервера. Необходимо дождаться обновления базы данных

Важно не трогать в этот момент сервер, не прерывать обновление, не пытаться его перезапустить. Если база большая, обновление может длиться очень долго

Рекомендую сначала где-то протестировать этот процесс, прежде чем обновлять прод.

# tail -f /var/log/zabbix/zabbix_server.log

В конце должны получить сообщение:

2860543:20201029:173036.441 completed 100% of database upgrade
2860543:20201029:173036.441 database upgrade fully completed

Есть ненулевой шанс, что будет какая-то ошибка с базой. Чаще всего возникают проблемы с какой-то нестандартной записью в таблице. Туда может попасть какой-то необычный символ, или с кодировкой проблемы. В этих случаях удаляйте проблемные записи, меняйте кодировку базы zabbix.

После обновления переходите в web интерфейс и проверяйте версию Zabbix. Должна быть 5.2.

На этом обновления Zabbix до 5.2 на Centos завершено.

Debian / Ubuntu

Устанавливаем само обновление zabbix на сервер с Debian или Ubuntu следующей командой:

# apt upgrade zabbix-agent zabbix-frontend-php zabbix-nginx-conf zabbix-server-mysql

После завершения обновления, запускаем сервер:

# systemctl start zabbix-server

В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.

# tail -f /var/log/zabbix/zabbix_server.log

После завершения обновления базы, сервер запустится. После этого можно запустить и агент.

# systemctl start zabbix-agent

В логах агента и сервера можно посмотреть версию запущенных сервисов.

Starting Zabbix Agent . Zabbix 5.2.0 (revision bcf99fb248).
Starting Zabbix Server. Zabbix 5.2.0 (revision bcf99fb248).

Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx, в том случае, если веб сервер работает от него. После обновления он будет принадлежать apache, а web интерфейс не заработает.

# chown -R nginx:nginx /etc/zabbix/web

Теперь можете лицезреть обновленную версию web интерфейса в браузере.

Мониторинг Wi-Fi

В данном случае агент установлен на Raspbian.

/etc/zabbix/zabbix-agentd.conf:

PidFile=varrunzabbixzabbix_agentd.pid
LogFile=varlogzabbix-agentzabbix_agentd.log
EnableRemoteCommands=1
Server=192.168.1.100
ServerActive=192.168.1.100
# Link Quality (здесь шкала в 70 единиц, надо проверять в каждом конкретном случае)
UserParameter=wifi.linkquality,iwconfig wlan0 | grep Quality | cut -d '=' -f2 | cut -d '/' -f1
# Signal level (dBm)
UserParameter=wifi.signallevel,iwconfig wlan0 | grep level | cut -d '=' -f3 | cut -c1-3
# TX Power (dBm)
UserParameter=wifi.txpower,iwconfig wlan0 | grep Tx-Power | cut -d '=' -f3 | cut -c1-2
# Access Point MAC-address - без последнего знака и двоеточий
# В Заббиксе преобразовывается в десятичное число и настроен value mapping "Wi-Fi AP MAC addresses",
# где десятичные числа, полученные из MAC-адресов, сопоставляются с именами AP.
UserParameter=wifi.apmac,iwgetid --ap -r | sed 's/://g' | cut -c1-11
# SSID (Item в Заббиксе - текст)
UserParameter=wifi.ssid,iwgetid -r
# UserParameter=wifi.ssid,iwconfig wlan0 | grep SSID | cut -d '"' -f2 | cut -d '"' -f1
# Канал
UserParameter=wifi.channel,iwgetid --channel -r
# Частота (в Item указывать значение Hz для автоматического пересчёта в GHz)
UserParameter=wifi.freq,iwgetid --freq -r
# Доступность сайтов - код возврата HTTP, в норме 200 (настроить value mapping)
UserParameter=wifi.avail.ya,curl --interface wlan0 -sI -w "%{http_code}" https://ya.ru -o devnull
UserParameter=wifi.avail.google,curl --interface wlan0 -sI -w "%{http_code}" https://www.google.com -o devnull
# Доступность серверов, если 0 - нет потери пакета, всё ОК (настроить value mapping)
UserParameter=wifi.avail.serv4,ping -I wlan0 192.168.1.231 -c 1 | grep packet | cut -d ' ' -f6 | cut -d '%' -f1
UserParameter=wifi.avail.serv5,ping -I wlan0 192.168.1.209 -c 1 | grep packet | cut -d ' ' -f6 | cut -d '%' -f1
UserParameter=wifi.avail.serv9,ping -I wlan0 192.168.1.210 -c 1 | grep packet | cut -d ' ' -f6 | cut -d '%' -f1
# Время отклика (ms)
UserParameter=wifi.avail.serv4.time,ping -I wlan0 192.168.1.231 -c 1 | grep time= | cut -d '=' -f4 | cut -d ' ' -f1
UserParameter=wifi.avail.serv5.time,ping -I wlan0 192.168.1.209 -c 1 | grep time= | cut -d '=' -f4 | cut -d ' ' -f1
UserParameter=wifi.avail.serv9.time,ping -I wlan0 192.168.1.210 -c 1 | grep time= | cut -d '=' -f4 | cut -d ' ' -f1

Items в Zabbix

Name Key Interval History Trends Type Application Type of information Units
Wi-Fi Access Point wifi.apmac 1m 7d 365d Zabbix agent wifi Numeric (insigned)
Wi-Fi channel wifi.channel 1m 3d 365d Zabbix agent wifi Numeric (insigned)
Wi-Fi frequency wifi.freq 1h 3d 365d Zabbix agent wifi Numeric (float) Hz
Wi-Fi link quality wifi.linkquality 1m 7d 365d Zabbix agent wifi Numeric (insigned) / 70
Wi-Fi signal level wifi.signallevel 1m 7d 365d Zabbix agent wifi Numeric (float) dBm
Wi-Fi SSID wifi.ssid 1h 7d 365d Zabbix agent wifi Text
Wi-Fi TX power wifi.txpower 1h 3d 365d Zabbix agent wifi Numeric (insigned) dBm
Время ответа Server4 через wlan0 (ping) wifi.avail.serv4.time 1m 7d 365d Zabbix agent wifi Numeric (float)
Доступность google.com через wlan0 (curl https) wifi.avail.google 1m 7d 365d Zabbix agent web Numeric (float)
Недоступность Server4 через wlan0 (потеря ping) wifi.avail.serv4 1m 7d 365d Zabbix agent wifi Numeric (insigned)

Графики удобно объединять так:

  1. Сигнал Wi-Fi (Wi-Fi link quality, Wi-Fi signal level, Wi-Fi TX power, Wi-Fi channel)
  2. Недоступность серверов по Wi-Fi (потеря ping) (все Items «Недоступность Server* через wlan0 (потеря ping)»)
  3. Время ответа серверов по Wi-Fi (все Items «Время ответа Server* через wlan0 (ping)»)
  4. Доступность внешних ресурсов по Wi-Fi (все Items «Доступность * через wlan0 (curl https)»)

Создать комплексный экран в шаблоне с этими графиками и выводить туда ещё текстом частоту, SSID и имена AP.

Что нового в версии zabbix 4.0

Для начала краткий обзор основных нововведений:

Изменилась визуализация данных. В виджетах на дашборде можно строить графики, которые раньше были недоступны. Изменения графиков — это то, что больше всего просили пользователи у разработчиков. На фоне Grafana, Kibana и т.д. графики zabbix выглядят жуткой архаикой. Их даже как-то неловко показывать тем, кто не знаком с заббиксом совсем, но видел другие системы визуализации информации.
Удобный выбор периодов для отображения информации. Это первое, что я заметил и оценил, когда поставил первую версию zabbix 4.0. Это действительно удобно и экономит время.
Оптимизирован режим Kiosk для вывода информации в полноэкранном режиме на отдельные дисплеи или видеостены. Можно убрать все лишние элементы интерфейса, не относящиеся непосредственно к графикам и данным.
Появился новый компактный режим просмотра проблем. В нем на экран помещается больше полезной информации.
Появилась поддержка компрессии при передачи информации от zabbix proxy. В версии 4.0 она включена по-умолчанию. Это позволит снизить нагрузку на сеть в больших распределенных системах.
Появилось больше настроек в разделе реакции на проблему

Можно закрыть проблему или изменить важность без подтверждения и отправки оповещения. На все это выдаются соответствующие права.
Появились новые права доступа, основанные на тэгах.
Появился новый http агент для сбора данных! Вот это любопытная штука, надо будет попробовать.
Появились дополнительные настройки для HTTP аутентификации.
Добавлены две новые высококонтрастные темы для интерфейса

Мне вообще не понравились, не оценил.

И многое другое. Подробное описание с картинками вы можете посмотреть на отдельной странице What’s New in Zabbix 4.0 LTS на сайте. Для полноты картины ссылка на Release Notes for Zabbix 4.0.0.

Нововведения Zabbix 4.0 разобрали. Приступим к обновлению прошлой версии 3.4 до 4.0.

Why TimescaleDB

Zabbix 5.0 supports TimescaleDB — a PostgreSQL extension, which adds time-series based performance and data management optimizations to a regular PostgreSQL database. It enhances performance since 4.2. ,though in experimental way, and even compresses the data starting with 5.0, but now officially.

The main TimescaleDB architecture solutions are:

    • Hypertables — abstraction layer and primary point of integration with your data used for creating tables and indexes, altering tables, inserting data, and selecting data.
    • Chunks — the elements the hypertables are automatically split into, where each chunk corresponds to a specific time interval and a region of the partition key’s space.

TimescaleDB architecture solutions

And, even while looking at it from different angles, TimescaleDB looks like the safest bet for Zabbix and its users because:

    • TimescaleDB is an extension, It doesn’t require extra hardware, virtual machines or any other infrastructure changes, you can continue to use your PostgreSQL tools of choice and SQL operations and queries.
    • TimescaleDB lets you keep virtually all database related code in Zabbix intact.
    • TimescaleDB ensures considerable performance improvements for Zabbix history syncer and housekeeper.

For instance, Vanilla PostgreSQL should be optimized as its values will eventually drop down.

PostgreSQL without TimescaleDB extension

TimescaleDB ensures consistency, and you get a lot more values per second inserted into your database in a timely manner and without sudden spikes.

PostgreSQL with TimescaleDB extension

A direct comparison shows that PostgreSQL eventually falls down, while Timescale DB keeps it steady with no big drops or no big jumps, just as it needs to be.

PostgreSQL with and without TimescaleDB comparison

Compression is a relatively new feature to TimescaleDB itself. TimescaleDB compression can reach up to 90%, which is quite a noticeable difference, so you can save a lot on the storage expenses.

TimescaleDB compression performance

How does TimescaleDB compression works? It basically turns all the tables into one single row collecting all the values. But this row is read-only, and updates are possible only after decompression.

TimescaleDB compression example

And to summarize all this information and why is it an interesting idea to at least give it a try:

    • TimescaleDB is still SQL and it supports all SQL operations and queries.
    • TimescaleDB is compatible with the existing PostgreSQL ecosystem and tooling. So, you’ll still be able to use your clusters and query execution.
    • TimescaleDB is quite transparent in terms of time and space partitioning for both scaling up and on a single node.
    • TimescaleDB is accessible for the newcomers as documentation on PostgreSQL and TimescaleDB is available.

Добавляем новые шаблоны

В 5 версии Zabbix появились новые усовершенствованные шаблоны, но после обновления они не появились автоматически. Добавим их вручную.

Конечно, возможно придется отказаться от старых шаблонов, но это уже другая история.

Обновляем прокси и агентов

Обновление Zabbix-прокси практически такое же как и для сервера, но с одним исключением. Вместо команды:

нужно использовать:

В остальном никаких проблем быть не должно. Вы всегда можете проверить какие пакеты Zabbix установлены на сервере с Zabbix-прокси, чтобы знать что обновлять. Команды для просмотра списка мы уже рассматривали выше.

Что касается агентов, то тут тоже ничего нового. Просто актуализируйте репозиторий и выполните:

На самом деле мы это уже сделали на сервере в примере выше.

Обновить агентов в других ОС также не сложная: скачивайте новый дистрибутив и устанавливайте / обновляете его компоненты. Никаких сложностей не должно быть. Если же будут, то обратитесь к официальной документации.

Продолжение следует

Теперь мы используем Zabbix 5 версии, задача успешно выполнена.

Это была еще одна небольшая публикация по теме мониторинга с помощью Zabbix. В следующих статьях мы поговорим о создании своего шаблон для сбора метрик и рассмотрим некоторые особенности этого процесса, настроим уведомления в Telegram-канал, а также получении данных с Prometheus и визуализации данных в Grafana. И, конечно же, оптимизация производительности сервера мониторинга Zabbix!

Будьте на связи :)

Будьте в курсе

Создание материалов будет продолжаться. Хотите быть в курсе последних обновлений? Подписывайтесь на канал.

По любым вопросам пишите на электронную почту. Адрес в самом низу страницы.

← Предыдущая
публикация

Следующая
публикация →

How to upgrade

Upgrading Zabbix and especially databases can be quite stressful, and the question is always about what to do first.

For an average setup:

    • CentOS 7
    • PostgreSQL 9.6
    • Zabbix server 4.0
    • Your average hardware

You need to upgrade your DB to at least PostgreSQL version 10.2 or higher to use TimescaleDB compression. Or you can upgrade to the latest PostgreSQL 12.

Upgrading PostgreSQL

1. Install the repo RPM for the version you will be using:

yum install https://download.posgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. Install new PostgreSQL version.

yum install postgresq12-server

3. Stop the current PostgreSQL version (don’t forget the server).

systemctl stop postgresql-9.6

4. Initialize the new version.

sudo su postgres
cd ~/
/usr/pgsql-12/bin/initdb -D /var/lib/pgsql/12/data/

5. Migrate the data.

/usr/pgsql-12/bin/pg upgrade --old-datadir /var/lib/pgsql/9.6/data/
--new-datadir /var/lib/pgsql/12/data/ --old-bindir/usr/pgsql-9.6/bin/
--new-bindir /usr/pgsql-12/bin/

6. Start the new instance.

systemctl start postgresql-12

NOTE. The migration of the data will take time if your database is already enormous, so plan your time accordingly.

Backup

Now you need to back up, though it’s a good idea to actually back up everything before migration.

    • Read the release notes and take note of the important changes at https://www.zabbix.com/documentation/5.0/manual/installation/upgrade/packages/rhel_centos.
    • Make Zabbix database backup.
pg_dump dbname > dbname.bak

You can also back up only the configuration files if you don’t need history information and you don’t want to start completely from scratch losing all the data. Since this will allow you yo keep all your server configurations, scripts, or some branding or customizations in the front-end.

Configuration files backup

Start the upgrade

1. Stop Zabbix server to make sure that no new data is inserted into database:

systemctl stop zabbix-server

2. Upgrade your current repository package:

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

3. Upgrade Zabbix components:

yum upgrade zabbix-server-pgsql zabbix-agent

Upgrade front-end

NOTE. If you have any customizations, back up the front-end configuration files.

1. Remove old front-end:

yum remove zabbix-web-*

2. Install SCL repository (to be able to use both PHP versions):

yum install centos-release-scl

3. Edit /etc/yum.repos.d/zabbix.repo file:

name=Zabbix Official Repository frontend - $basearchbaseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontendenabled=1

4. Install new front-end packages:

yum install zabbix-web-pgsql-scl

5. Update timezone in /etc/opt/rh/rh php72/php fpm.d zabbix.conf file.

6. Start and enable php-fpm service:

systemstl start rh-php72-php-fpm

7. Restart Apache:

systemctl restart httpd

Install TimescaleDB

1. Add TimescaleDB repo:

https://docs.timescale.com/latest/getting started/installation/rhel centos/installation yum

TimescaleDB repo

2. Install appropriate package for PG version

yum install -y timescaledb-postgresql-12

3. Configure your PostgreSQL:

timescaledb-tune --pg-config=/usr/pgsql-12/bin/pg_config

NOTE. When tuning your database don’t blindly agree with everything, as tuning may interfere with how your Zabbix instance performs or PostgreSQL overall.

Prepare your DB for TimescaleDB

1. Start Zabbix server to update the DB schema.

2. Stop Zabbix server.

3. Enable TimescaleDB extension:

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

4. Run the timescaledb.sql script located in database/ postgresql:

cd /usr/share/doc/zabbix-server-pgsql-5.0.0/
cat timescaledb.sql | sudo -u zabbix psql zabbix

5. Wait — migration of existing history and trend data may take a lot of time. Zabbix server and front-end must be down for the period of migration.

Migration output

If you forget to start the Zabbix before starting to convert tables to hypertables, you will see some of them fail. In this case, you need to update this schema and run the script once again.

Migration mistakes

6. Start Zabbix server.

Check housekeeping settings

You need to check the housekeeper settings, as the conversion changes the history data, and the way it’s kept. Since you have enabled compression, which is not enabled by default, you will see a new line of setting in the front-end – compress records older than seven days.

Housekeeping settings

NOTE. 7 days — the minimum possible compression period, i.e. you cannot compress yesterday’s data.

Подготовка к обновлению

Важная информация перед обновлением. Версия 5.2 без длительной поддержки. Через пол года к ней перестанут выходить обновления, так что вам обязательно придется обновляться на следующую версию. Если для вас не критичны нововведения этого релиза, пропускайте его и ждите новой LTS версии.

Если у вас версия ниже 5.0, то предварительно обновите ее до указанной. У меня есть цикл статей на тему обновления Zabbix:

  • 2.4 до 3.0
  • 3.0 до 3.2
  • 3.2 до 3.4
  • 3.4 до 4.0
  • 4.0 до 4.2
  • 4.2 до 4.4
  • 4.4 до 5.0

Перед обновлением, сделаем на всякий случай бэкап базы данных. Для этого предварительно остановим сервер с агентом.

У меня что-то активно писалось в базу, поэтому сервер выключался долго. Я проверил лог zabbix-server, чтобы убедиться в корректном выключении. Там все нормально было, сервер штатно завершил работу, дописав то, что у него там накопилось. Так что бэкапим.

zabbix название базы данных заббикса
-uzabbix ключ -u и дальше имя пользователя базы данных
-p’password’ ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками

На всякий случай сохраним php скрипты админки, чтобы можно было оперативно запустить старую версию в случае нештатной ситуации. Хотя лично я сделал снепшот виртуалки перед обновлением, чтобы откатиться назад в случае проблем.

Centos 7

Подключаем репозиторий версии zabbix 5.0:

# rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/7/x86_64/zabbix-release-5.2-1.el7.noarch.rpm

Centos 8

# rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpmСтарый репозиторий от версии 4.4 будет автоматически удален.

Очищаем и пересоздаем кэш yum:

Удаляем пакет текущего репозитория:

Подключаем новый:

Обновляем информацию о репозиториях:

Удаляем пакет текущего репозитория:

Подключаем новый:

Обновляем информацию о репозиториях:

Ubuntu 20

Удаляем пакет текущего репозитория:

Подключаем новый:

Обновляем информацию о репозиториях:

Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/5.2/ Дальнейшее обновление не будет отличаться от текущего.

К обновлению подготовились, можно приступать.

Step 6: Patch DB and fix warning “database is not upgraded to use double precision values”

You may notices red “No” for “Database history tables upgraded” status on “System information” widget. What is that?

“Database history tables upgraded” set to “No”

With Zabbix 5.0 float data type supports precision of approximately 15 digits and bigger range. This is by default for new installations, but if you are upgrading then a manual database upgrade patch must be applied.

Before we apply the patch let’s check current table description (make sure to change db name, user and password with yours):

Download the MySQL/MariaDB patch “” and apply it (PostGreSql users need to change “mysql” with “postgresql” in the URL path):

Check the new table description:

Now we need to add the line bellow to “” with the text editor (““) to remove warning message from the frontend:

And we are done with the upgrade!

CONGRATULATIONS!You have successfully upgraded Zabbix to version 5!No need to change anything else as other steps are optional.CONTINUE TO LEARN MORE:How to do a minor upgrade of Zabbix (5.0.x to 5.0.y) ?How to upgrade Zabbix-proxy or Zabbix-Agent?Did something go wrong? Learn how to restore Zabbix to a previous version.How to Upgrade Zabbix 4.x to 5 on CentOS 7?How to upgrade Zabbix 5.0 to 5.4 using a script?Learn about common upgrade errors

Заключение

Появилось много новых шаблонов, которые делают неактуальными многие мои статьи. Тот же мониторинг Nginx и Apache. Я еще не смотрел стандартные шаблоны для этого. Надо будет изучить и отредактировать статьи.

Онлайн курс Infrastructure as a code

Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.

Что даст вам этот курс:

  • Познакомитесь с Terraform.
  • Изучите систему управления конфигурацией Ansible.
  • Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
  • Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
  • В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins

Смотрите подробнее программу по .

Заключение

Описанное обновление заббикса я выполнил по ходу написания статьи на одном из небольших рабочих серверов. Все прошло без проблем. Так что если у вас будут какие-то ошибки или проблемы, то это скорее всего ваши локальные. Если у вас web интерфейс работает на nginx, не забудьте изменить владельца директории /etc/zabbix/web на nginx. Я после обновления частенько забываю это сделать и вижу пустой белый экран, вместо окна авторизации.

В скором времени выйдет моя новая статья по установке zabbix 4.0, где я поделюсь своими советами и рекомендациями по настройке, которые я обычно делаю на новых серверах. Раньше я эту информацию не публиковал, ограничиваясь общими советами. Теперь решил поделиться именно своими наработками и опытом. Еще я там впервые не буду отключать SELinux, а то уже утомили претензии по этому поводу, как-будто это что-то, без чего заббикс сервер просто невозможен.

Онлайн курс «DevOps практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: