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

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

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

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в 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 с моими примерами и рекомендациями.

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

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

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

Автор Zerox

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

31 комментарий

  1. Аватар

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

    • Zerox

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

  2. Аватар

    [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

  3. Аватар

    Не было печали — апдейтов накачали… Теперь ещё и при перезагрузке ВМ с 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.

  4. Аватар

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

  5. Аватар

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

  6. Аватар

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

  7. Аватар

    И второй вопрос, после обновления (деб 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 он мне предложил очистить устаревшие пакеты, в числе которых был сам гипервизор. Хорошо, что это было на тесте.

  8. Аватар

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

    • Аватар

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

    • Zerox

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

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

Ваш e-mail не будет опубликован.

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