Home » Zabbix » Обновление Zabbix 4.2 до 4.4

Обновление Zabbix 4.2 до 4.4

7-го октября вышла очередная новая версия крутой и удобной системы мониторинга. Сегодня я расскажу, как выполнить обновление zabbix с версии 4.2 до последней версии 4.4. Инструкция будет подробная и пошаговая, с описанием всех нюансов.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные сети, рекомендую познакомиться с онлайн-курсом «Сетевой инженер» в OTUS. Курс не для новичков, для поступления нужно пройти .

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

О нововведениях свежей версии zabbix 4.4 в этот раз я почти ничего не слышал. Не видел ни статей на эту тему, ни видео выступлений, хотя обычно наблюдаю их. Либо материала было меньше, либо просто все прошло вне поля моего зрения. Слышал только, что готовится поддержка TimescaleDB, видел публикации на эту тему. Так что пришлось читать официальные what’s news и release notes на самом сайте zabbix. Вот что нового нам обещают в zabbix 4.4.

  • Новый zabbix-agent, написанный на Go. Из новых возможностей агента заявлено — фреймворк для кастомизации проверок, возможность сохранения состояния между проверками, более гибкий планировщик, более эффективная передача данных, замена текущих агентов с поддержкой большего количества платформ в будущем.
  • Вебхуки и более продвинутая логика для действий и оповещений на основе JavaScript. С помощью этих улучшений станет проще настраивать интеграцию с внешними сервисами.
  • Новый стандарт для шаблонов. Как я понял, разработчики решили упорядочить создание шаблонов и предложили свой формат для их оформления. Подробнее описано в Zabbix template guidelines. Я пока еще не вникал и не разбирался с этой темой. Посмотрим, что в итоге получится. На мой взгляд хороший шаг сделан. Давно пора было как-то упорядочить шаблоны.
  • Как я уже сказал ранее, добавлена поддержка TimescaleDB. Это должно существенно увеличить производительность хранилища данных, что является узким место системы мониторинга zabbix.
  • Реализована база знаний для итемов и триггеров. Теперь их можно будет документировать. Любопытная фича, надо будет попробовать. Я обычно поле description для этого раньше использовал.
  • Расширился функционал визуализации. Появились новые виджеты для дашбордов, новые типы графиков, возможность агрегировать данные с помощью функций.
  • Добавилась поддержка новых версий операционных систем — centos 8, debian 10 и т.д.
Обращаю внимание на то, что версия 4.4 не LTS версия. Ее поддержка будет только 6 месяцев, в отличие от LTS, где поддержка 5 лет. Так что если вам не нужен новый функционал, обновляться не стоит. Через некоторое время придется обновляться вновь.

Нововведения, как обычно, любопытные и кое-где я обновлю сервера, чтобы потестировать новые фичи. Там, где новый функционал не нужен, обновление ставить не буду. Я больше предпочитаю использовать LTS версии в production.

Основные нововведения Zabbix 4.4 разобрали, приступим к обновлению.

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

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

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

# systemctl stop zabbix-server
# /usr/bin/mysqldump --opt -v --databases zabbix -uzabbix -p'password' | /usr/bin/gzip -c > /root/zabbix.sql.gz
zabbix название базы данных заббикса
-uzabbix ключ -u и дальше имя пользователя базы данных
-p’password’ ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками

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

# cp -R /usr/share/zabbix /root

Centos 7

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

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

Обновление Zabbix 4.2 до 4.4

Centos 8

# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm

Старый репозиторий от версии 4.2 будет автоматически удален.

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

# yum clean all
# yum makecache

Debian 9

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

# rm -Rf /etc/apt/sources.list.d/zabbix.list

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

# wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1%2Bstretch_all.deb
# dpkg -i zabbix-release_4.4-1+stretch_all.deb

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

# apt update

Debian 10

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

# rm -Rf /etc/apt/sources.list.d/zabbix.list

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

# wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1%2Bbuster_all.deb
# dpkg -i zabbix-release_4.4-1+buster_all.deb

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

# apt update

Ubuntu 18

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

rm -Rf /etc/apt/sources.list.d/zabbix.list

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

# wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1%2Bbionic_all.deb
# dpkg -i zabbix-release_4.4-1+bionic_all.deb

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

# apt update

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

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

Установка обновления zabbix 4.2 до 4.4

Centos

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

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

Это список пакетов заббикса для общего случая. Если у вас установлено что-то еще, лучше обновить все сразу. Посмотреть список установленных пакетов zabbix можно командой:

# rpm -qa | grep zabbix
zabbix-sender-4.0.4-1.el7.x86_64
zabbix-threat-control-host-.24-el7.noarch
zabbix-release-4.0-1.el7.noarch
zabbix-threat-control-main-.49-el7.noarch
zabbix-get-4.0.4-1.el7.x86_64
zabbix-web-4.0.4-1.el7.noarch
zabbix-agent-4.0.4-1.el7.x86_64
zabbix-server-mysql-4.0.4-1.el7.x86_64

В моем случае есть еще пакеты zabbix-get и zabbix-sender. Обновляем все сразу:

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

Debian / Ubuntu

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

# apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent

Дальше инструкция общая для всех систем. После завершения обновления, запускаем сервер:

# systemctl start zabbix-server

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

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

Запуск сервера Zabbix 4.4

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

# systemctl start zabbix-agent

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

Starting Zabbix Agent [zb.serveradmin.ru]. Zabbix 4.4.0 (revision cfac660b25).
Starting Zabbix Server. Zabbix 4.4.0 (revision cfac660b25).

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

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

В веб интерфейсе в самом низу будет показана текущая версия сервера:

Web интерфейс zabbix 4.4

Можете изучать новую версию zabbix 4.4 и пробовать улучшения.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Процедура обновления Zabbix сервера обычно не сложная. Проблемы чаще всего возникают в двух случаях:

  1. Проблемы с зависимостями пакетов, чаще всего php или mysql.
  2. Большая база данных, которая очень долго обновляется, либо не обновляется по какой-то причине.

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

Иногда база не обновляется из-за каких-то проблем с записями. Чаще всего в полях acknowledged, куда можно понаписать всего, что угодно. Надо тоже разбираться по месту и удалять то, что мешает обновлению. Но в общем и целом, обновление проходит штатно и лично у меня никогда не было с ним проблем.

У меня очень много статей по настройке zabbix. Все они в отдельном разделе. Так же у меня написана подробная статья по установке и настройке zabbix 4 с моими примерами и рекомендациями.

Онлайн курс "Сетевой инженер"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные сети, рекомендую познакомиться с онлайн-курсом «Сетевой инженер» в OTUS. Это авторская программа в сочетании с удалённой практикой на реальном оборудовании и академическим сертификатом Cisco! Студенты получают практические навыки работы на оборудовании при помощи удалённой онлайн-лаборатории, работающей на базе партнёра по обучению — РТУ МИРЭА: маршрутизаторы Cisco 1921, Cisco 2801, Cisco 2811; коммутаторы Cisco 2950, Cisco 2960. Особенности курса:
  • Курс содержит две проектные работы.;
  • Студенты зачисляются в официальную академию Cisco (OTUS, Cisco Academy, ID 400051208) и получают доступ ко всем частям курса «CCNA Routing and Switching»;
  • Студенты могут сдать экзамен и получить вместе с сертификатом OTUS ещё сертификат курса «CCNA Routing and Switching: Scaling Networks»;
Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

43 комментария

  1. Аватар

    Владимир, добрый день!

    Подскажите, как правильно подойти к выбору версии Заббикс для продакшена при чистой установке? Какую посоветуете версию выбрать?

    Спасибо.

    • Zerox

      Если совсем с заббиксом не знакомы, то ставьте самую свежую — 4.4. Так вы весь функционал сможете оценить и попробовать. Дальше, когда освоитесь, будете смотреть нововведения и решать, есть смысл обновлять или нет. Вам в любом случае нужно будет обновиться до LTS версии 5.0, когда она выйдет. Заббикс обычно без проблем обновляется с версии на версию и даже с ветки на ветку.

  2. Аватар

    Zabbix сервер и база данных находятся на разных серверах. При обновлении zabbix сервера по инструкции с версии 4.4.1 до версии 4.4.5 (остановка zabbix сервера, обновление пакетов, запуск zabbix сервера) должно было произойти обновление базы данных, что должно было быть видно в /var/log/zabbix/zabbix_server.log. Однако в указанном логе (возможно из-за большого количества записей) я не заметил записей по поводу обновления базы. В то же время в web интерфейсе отображается версия 4.4.5 и данные в базу продолжают поступать. Вопрос такой — при переходе с версии 4.4.1 на версию 4.4.5 должна ли была обновиться база данных или она обновляется в случае более серьезных обновлений например при переходе с 4.2 до 4.4? Если да, то можно ли как -то проверить командой или еще как-то, что zabbix серверу и web интерфейсу 4.4.5 соответствует соответствующая структура базы.

    • Zerox

      Зависит от конкретного обновления. База не обязательно должна обновляться, особенно в пределах одной ветки.

  3. Аватар

    и тут я застрял.
    apt-get install —only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Skipping zabbix-server-mysql, it is not installed and only upgrades are requested.
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    zabbix-agent : Depends: libssl1.1 (>= 1.1.0) but it is not installable
    E: Unable to correct problems, you have held broken packages.

  4. Аватар

    Добрый день Zerox.
    Обычно с обновлениями не было сложностей, но сегодня решил обновиться с 4.2.8 до 4.4 и…
    Как обычно придерживался мануала. Но проблема возникла после запуска сервера он не может обновить базу данных до нужной ему версии.
    Вот выдержка из лога:
    6435:20200116:205032.377 using configuration file: /etc/zabbix/zabbix_server.conf
    6435:20200116:205032.414 current database version (mandatory/optional): 04030002/04030002
    6435:20200116:205032.414 required mandatory version: 04040000
    6435:20200116:205032.414 starting automatic database upgrade
    6435:20200116:205032.415 [Z3005] query failed: [1050] Table ‘item_rtdata’ already exists [create table item_rtdata (
    `itemid` bigint unsigned not null,
    `lastlogsize` bigint unsigned default ‘0’ not null,
    `state` integer default ‘0’ not null,
    `mtime` integer default ‘0’ not null,
    `error` varchar(2048) default » not null,
    primary key (itemid)
    ) engine=innodb]
    6435:20200116:205032.416 database upgrade failed
    Нашел собратьев по несчастью на форуме zabbix с такой же проблемой, но их вопрос без ответа с декабря 2019г.
    Можете подсказать в какую сторону копать?

    • Zerox

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

      • Аватар

        Из бекапа создал еще один контейнер с сервером zabbix. На сервере mysql создал для него БД и импортировал в нее бекап. Начал эксперементы проводить:

        Удалил, но обновление не пошло. zabbix начал ругаться на то, что такой вот таблицы нет.
        Создал руками, но он выдавал другую ошибку, жаль не сохранил (она все так же относилась к этой таблице.)
        Перезалил БД и сразу удалил таблицу item_rtdata, запускаю zabbix-server и на мое удивление обновление пошло.

        Повторяю это на боевом и все падает на том же самом месте…

        Благодаря случайности удалось перейти на zabbix 4.4.4, разбираться из-за чего возникает данная проблема не позволяет недостаток знаний.

        Zerox, спасибо за то, что обратили мое внимание на Table ‘item_rtdata’ already exists.

  5. Аватар

    Работаю с zabbix совсем недавно. Стоит 4.2, хочу обновиться на 4.4 пока не развернул на всю инфраструктуру.

    Подскажите, в тот момент, когда мой сервер перейдет на 4.4, а клиенты и прокси останутся на 4.2 у меня всё сломается? Нужно обновлять всё разом или же есть совместимость 4.2агента с 4.4 сервер?

    Спасибо

    • Zerox

      Агенты точно не обязательно обновлять. У них всегда есть обратная совместимость есть. А вот с прокси по-разному бывает. Чаще всего прокси тоже надо обновлять. Обычно обновляют сначала прокси, а потом сам сервер.

  6. Аватар
    Виктор

    Обновляется всё легко. Однако непонятно, как подтянуть новые шаблоны и новые иконки, которые содержатся в data.sql и images.sql

  7. Аватар

    На Ubuntu 18.04 server с 4.2.5 до 4.4.2 всплыл нюанс .
    После установки пакета , в папке /etc/apt/sources.list.d лежал zabbix.list.dpkg-dist , а не zabbix.list из-за этого соотвественно не подтягивались новые пакеты . Нужно просто переименовать и все.

  8. Аватар

    У кого нибудь была проблема, что в заббиксе отображается старый вид граффиков? Не работает «Тут всё просто, теперь Zabbix показывает точное время при наведении мышкой на график.»

    • Zerox

      Новые графики появились только для дашбордов. Все остальные остались такие же, как и прежде.

  9. Аватар

    [root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
    Загружается https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
    Подготовка… ################################# [100%]
    пакет zabbix-release-4.4-1.el8.noarch уже установлен
    [root@zabbix ~]# yum upgrade zabbix-server-mysql zabbix-web zabbix-agent zabbix-get zabbix-sender
    Загружены модули: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: centos.colocall.net
    * epel: epel.besthosting.ua
    * extras: centos.colocall.net
    * updates: centos.colocall.net
    No packages marked for update
    [root@zabbix ~]#

    Как так?

    • Zerox

      Так уже обновлено может? Пакет с новым репозиторием уже загружен. Проверь версии установленных пакетов:

      # rpm -qa | grep zabbix

      • Аватар

        [root@zabbix ~]# rpm -qa | grep zabbix
        zabbix-web-4.2.7-1.el7.noarch
        zabbix-java-gateway-4.2.7-1.el7.x86_64
        zabbix-release-4.4-1.el8.noarch
        zabbix-agent-4.2.7-1.el7.x86_64
        zabbix-get-4.2.7-1.el7.x86_64
        zabbix-web-mysql-4.2.7-1.el7.noarch
        zabbix-sender-4.2.7-1.el7.x86_64
        zabbix-server-mysql-4.2.7-1.el7.x86_64

  10. Аватар

    Не было печали — апдейтов накачали… Теперь ещё и при перезагрузке ВМ с Zabbix появляется ошибка «Stop job is running for Zabbix server» — и длится пока принудительно ВМ не перезагрузишь. Ограничения времени и установка watchdog не помогли, похоже, глюк.

    • Zerox

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

      • Аватар

        У меня он при необходимости сам перезагружается после обновления — придется контролировать, явно баг этой версии.

      • Аватар

        Тоже с такой проблемой столкнулся, после переезда на новый сервер. Смотреть надо в сторону systemd в котором процессы запускаются и останавливаются параллельно, если не указано иное. Проблема возникает из-за того, что БД успевает выключиться раньше заббикса. В итоге имеем в логах заббикса попытки записать в БД, а БД уже выключена. Решается это дело дописыванием в секцию unit зависимостей. Вообще странно что никто и нигде про настройку systemd не пишет, хотя начиная с 8 версии дебиана оно там есть.

        Конкретно в данном случае для дебиана лечится правкой /usr/lib/systemd/system/zabbix-server.service

        В секцию [Unit] надо дописать зависимость для БД

        After=mysql.service
        Requires=mysql.service

        И всё станет хорошо

        • Zerox

          Спасибо за полезную информацию. Я не догодался об этом, хотя специально не проверял. Просто руками zabbix-server останавливал, если нужен был reboot.

        • Аватар

          Спасибо, получилось. Для Ubuntu 16.04 путь /lib/systemd/system/zabbix-server.service

          • Аватар

            Даже не совсем так. Как оказалось редактировать этот файл не самая лучшая идея, после обновления всё вернулось к прежнему варианту. Правильно так:

            systemctl edit zabbix-server

            [Unit]
            After=mysql.service
            Requires=mysql.service

            И вот тогда всё будет отлично.

    • Аватар

      Это не глюк. Это криво настроенный systemd.

  11. Аватар

    С утра был удивлен — хост, на котором установлен Zabbix сервер в браузере показывает ошибку соединения, по ssh всё в порядке — пробую развернуть из бэкапа перед обновлением и обновить по новой — агенты везде обновлены.

  12. Аватар
    Андрей

    Для proxy с sqlite нужно ещё удалить файл базы данных, прокси при старте его пересоздаст в новом формате. Без этого не стартанет

  13. Аватар

    Обновился без проблем, был вопрос с конвертацией базы — но всё получилось, просто я немного поспешил. Спасибо за хорошую инструкцию — буду смотреть, что нового появилось.

  14. Аватар
    Максим

    И второй вопрос, после обновления (деб 10), у меня почему-то потерялась зависимость с апачем, т.е. стало выдаваться:

    Следующие пакеты устанавливались автоматически и больше не требуются:
    apache2 apache2-bin apache2-data apache2-utils …

    Это глюк? Или что-то пошло не так? А то ж если я выполню «apt-get autoremove», то вебка перестанет работать…

    • Zerox

      Конкретно на Debian 10 не проверял. Может с обновлением zabbix прилетело и обновление для apache и установилась другая версия?

      • Аватар
        Максим

        Да вроде нет, только одна версия ставит
        # dpkg —get-selections | grep apache
        apache2 install
        apache2-bin install
        apache2-data install
        apache2-utils install
        libapache2-mod-php install
        libapache2-mod-php7.3 install

        • Zerox

          Тогда странно, что autoremove предлагает удалить эти пакеты. Я с таким уже сталкивался, когда не подумал, удалил и положил гипервизор :) После обновления proxmox он мне предложил очистить устаревшие пакеты, в числе которых был сам гипервизор. Хорошо, что это было на тесте.

  15. Аватар
    Максим

    В статье забыли что нужно еще и «zabbix-release» обновить? Или он как-то мистическим образом сам обновится?

    • Аватар
      Максим

      я про вот такое
      apt-get install —only-upgrade zabbix-release
      yum upgrade zabbix-release

    • Zerox

      Он вручную ставится, что показано в статье. Откуда он обновится автоматически, если привязан к конкретной версии? Это сам репозиторий.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.