Что нового в версии zabbix 4.4
- Новый zabbix-agent, написанный на Go. Из новых возможностей агента заявлено - фреймворк для кастомизации проверок, возможность сохранения состояния между проверками, более гибкий планировщик, более эффективная передача данных, замена текущих агентов с поддержкой большего количества платформ в будущем.
- Вебхуки и более продвинутая логика для действий и оповещений на основе JavaScript. С помощью этих улучшений станет проще настраивать интеграцию с внешними сервисами.
- Новый стандарт для шаблонов. Как я понял, разработчики решили упорядочить создание шаблонов и предложили свой формат для их оформления. Подробнее описано в Zabbix template guidelines. Я пока еще не вникал и не разбирался с этой темой. Посмотрим, что в итоге получится. На мой взгляд хороший шаг сделан. Давно пора было как-то упорядочить шаблоны.
- Как я уже сказал ранее, добавлена поддержка TimescaleDB. Это должно существенно увеличить производительность хранилища данных, что является узким место системы мониторинга zabbix.
- Реализована база знаний для итемов и триггеров. Теперь их можно будет документировать. Любопытная фича, надо будет попробовать. Я обычно поле description для этого раньше использовал.
- Расширился функционал визуализации. Появились новые виджеты для дашбордов, новые типы графиков, возможность агрегировать данные с помощью функций.
- Добавилась поддержка новых версий операционных систем - centos 8, debian 10 и т.д.
Перед обновлением, сделаем на всякий случай бэкап базы данных. Для этого предварительно остановим сервер.
1 2 |
# 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 скрипты админки, чтобы можно было оперативно запустить старую версию в случае нештатной ситуации:
1 |
# 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
Centos 8
1 |
# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm |
Старый репозиторий от версии 4.2 будет автоматически удален.
Очищаем и пересоздаем кэш yum:
1 2 |
# yum clean all # yum makecache |
Debian 9
Удаляем пакет текущего репозитория:
1 |
# rm -Rf /etc/apt/sources.list.d/zabbix.list |
Подключаем новый:
1 2 |
# 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 |
Обновляем информацию о репозиториях:
1 |
# apt update |
Debian 10
Удаляем пакет текущего репозитория:
1 |
# rm -Rf /etc/apt/sources.list.d/zabbix.list |
Подключаем новый:
1 2 |
# 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 |
Обновляем информацию о репозиториях:
1 |
# apt update |
Ubuntu 18
Удаляем пакет текущего репозитория:
1 |
rm -Rf /etc/apt/sources.list.d/zabbix.list |
Подключаем новый:
1 2 |
# 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 |
Обновляем информацию о репозиториях:
1 |
# apt update |
Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/4.4/ Дальнейшее обновление не будет отличаться от текущего.
К обновлению подготовились, можно приступать.
Установка обновления zabbix 4.2 до 4.4
Centos
Устанавливаем само обновление zabbix на сервер Centos следующей командой:
1 |
# yum upgrade zabbix-server-mysql zabbix-web zabbix-agent |
Это список пакетов заббикса для общего случая. Если у вас установлено что-то еще, лучше обновить все сразу. Посмотреть список установленных пакетов zabbix можно командой:
1 2 3 4 5 6 7 8 9 |
# 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. Обновляем все сразу:
1 |
# yum upgrade zabbix-server-mysql zabbix-web zabbix-agent zabbix-get zabbix-sender |
Debian / Ubuntu
Устанавливаем само обновление zabbix на сервер с Debian или Ubuntu следующей командой:
1 |
# apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent |
Дальше инструкция общая для всех систем. После завершения обновления, запускаем сервер:
1 |
# systemctl start zabbix-server |
В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.
1 |
# tail -f /var/log/zabbix/zabbix_server.log |
После завершения обновления базы, сервер запустится. После этого можно запустить и агент.
1 |
# systemctl start zabbix-agent |
В логах агента и сервера можно посмотреть версию запущенных сервисов.
1 |
Starting Zabbix Agent [zb.serveradmin.ru]. Zabbix 4.4.0 (revision cfac660b25). |
1 |
Starting Zabbix Server. Zabbix 4.4.0 (revision cfac660b25). |
Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx. После обновления он будет принадлежать apache, а web интерфейс не будет работать.
1 |
# chown -R nginx:nginx /etc/zabbix/web |
В веб интерфейсе в самом низу будет показана текущая версия сервера:
Процедура обновления Zabbix сервера обычно не сложная. Проблемы чаще всего возникают в двух случаях:
- Проблемы с зависимостями пакетов, чаще всего php или mysql.
- Большая база данных, которая очень долго обновляется, либо не обновляется по какой-то причине.
Первая проблема решается ручным удалением или установкой нужных пакетов. Тут универсального совета дать невозможно. Зависит от того, что вы делали на сервере и почему у вас сломаны зависимости. Вторая проблема решается, в зависимости от причин проблем с базой. Если она слишком большая и поэтому все тормозит и длится слишком долго, надо либо ускорять сервер, либо чистить базу.
Иногда база не обновляется из-за каких-то проблем с записями. Чаще всего в полях acknowledged, куда можно понаписать всего, что угодно. Надо тоже разбираться по месту и удалять то, что мешает обновлению. Но в общем и целом, обновление проходит штатно и лично у меня никогда не было с ним проблем.