Thank you for reading this post, don't forget to subscribe!
17 мая 2021 года состоялся релиз версии 5.4 популярной системы мониторинга Zabbix.
Что нового в Zabbix 5.4?
Все нововведения свежей версии Zabbix 5.4 вы можете прочитать в официальном релизе - https://www.zabbix.com/ru/whats_new_5_4. Я среди них выделил следующие:
- Ну конечно же новый синтаксис триггеров. Странно, что они это изменение не поставили на первое место. Я уже делал заметку (https://t.me/srv_admin/684) по этому поводу, так что не буду повторяться. Изменение очень значимое и полезное.
- Планировщик для pdf отчетов. Теперь можно будет настроить отправку регулярных отчетов себе на почту или куда-то еще. Интересная и полезная возможность. Для руководства в самый раз.
- Новые расширенные способы агрегации данных. Это следствие использования нового синтаксиса. Примеры этого уже были в заметке, на которую дал ссылку в начале.
- Обновлена визуализация. Как я понял, появилась возможность объединять дашборды в виде отдельных страниц на одном экране. В целом, полезно. Сам часто думаю о том, что переключаться между дашбордами не очень удобно и быстро. Надо бы это как-то упростить. Придумали поместить их во вкладки на дашборде. Посмотрим, удобно ли будет на практике.
Дальше изменения на мой взгляд не столь значительные, так что не буду их комментировать, просто перечислю:
- Новые api токены с истекающим сроком действия.
- Tags стали поддерживаться еще большим количеством объектов (templates, hosts, host prototypes, triggers, metrics, events)
- У шаблонов появились уникальные ID, теперь не будем с одинаковыми именами путаться.
- Улучшено масштабирование.
- Появились какие-то Global scripts. Из описания не понял, для чего они.
- Появились локальные value maps. Раньше все глобально хранилось в одном месте.
- Добавились интеграции с Brevis, Express, iTop, RocketChat, Signal, VictorOps.
- Добавились шаблоны для APC UPS hardware, Hikvision cameras, etcd, Hadoop, Zookeeper, Kafka, AMQ, HashiCorp Vault, MS Sharepoint, MS Exchange, smartclt, Gitlab, Jenkins, Apache Ignite и других.
Ну и много других более мелких изменений. Я пробежался глазами по release_notes и перевел то, что показалось наиболее интересным. В общем, Zabbix не стоит на месте, развивается.
Как я уже сказал в самом начале, в этой версии появился новый синтаксис запросов в триггерах и некоторых других местах, так что обновление знаковое. Нужно будет ставить и разбираться. Весь старый синтаксис будет автоматически преобразован в новый, вручную ничего делать не придется.
Также отдельно обращаю внимание, что с большой долей вероятности сломается интеграция с Grafana, если в метриках использовали Applications, так как их в 5.4 отменили и заменили полностью триггерами. Будете получать ошибку: Method not found. Incorrect API "application".
Подготовка к обновлению
Важная информация перед обновлением. Версия 5.4 без длительной поддержки. Через пол года к ней перестанут выходить обновления, так что вам обязательно придется обновляться на следующую версию. Если для вас не критичны нововведения этого релиза, пропускайте его и ждите новой LTS версии.
Перед обновлением, сделаем на всякий случай бэкап базы данных. Для этого предварительно остановим сервер с агентом.
1 |
# systemctl stop zabbix-server zabbix-agent |
У меня что-то активно писалось в базу, поэтому сервер выключался долго. Я проверил лог zabbix-server, чтобы убедиться в корректном выключении. Там все нормально было, сервер штатно завершил работу, дописав то, что у него там накопилось. Так что бэкапим.
1 |
# /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 8
Подключаем репозиторий версии zabbix 5.4:
1 |
# rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm |
Старый репозиторий от версии 5.2 будет автоматически удален.
Очищаем и пересоздаем кэш dnf:
1 2 |
# dnf clean all # dnf makecache |
Debian 10
Удаляем пакет текущего репозитория:
1 |
# rm -Rf /etc/apt/sources.list.d/zabbix.list |
Подключаем новый:
1 2 |
# wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian10_all.deb # dpkg -i zabbix-release_5.4-1+debian10_all.deb |
Обновляем информацию о репозиториях:
1 |
# apt update |
Ubuntu 20
Удаляем пакет текущего репозитория:
1 |
rm -Rf /etc/apt/sources.list.d/zabbix.list |
Подключаем новый:
1 2 |
# wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb # dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb |
Обновляем информацию о репозиториях:
1 |
# apt update |
Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/5.4/ Дальнейшее обновление не будет отличаться от текущего.
К обновлению подготовились, можно приступать.
Установка обновления zabbix 5.2 до 5.4
Centos 8
Для начала проверим список установленных пакетов zabbix в системе.
1 2 3 4 5 6 7 8 |
# rpm -qa | grep zabbix zabbix-release-5.4-1.el8.noarch zabbix-web-5.2.6-1.el8.noarch zabbix-web-mysql-5.2.6-1.el8.noarch zabbix-server-mysql-5.2.6-1.el8.x86_64 zabbix-sender-5.2.6-1.el8.x86_64 zabbix-agent-5.2.6-1.el8.x86_64 zabbix-web-deps-5.2.6-1.el8.noarch |
Устанавливаем обновление zabbix на сервер Centos 8, выбирая установленные у вас пакеты:
1 |
# dnf upgrade zabbix-web zabbix-web-mysql zabbix-server-mysql zabbix-agent zabbix-sender |
После завершения обновления, запускаем zabbix-server.
1 |
# systemctl start zabbix-server |
Проверяем лог сервера. Необходимо дождаться обновления базы данных. Важно не трогать в этот момент сервер, не прерывать обновление, не пытаться его перезапустить. Если база большая, обновление может длиться очень долго. Рекомендую сначала где-то протестировать этот процесс, прежде чем обновлять прод.
1 |
# tail -f /var/log/zabbix/zabbix_server.log |
В конце должны получить примерно следующее сообщение:
1 2 3 |
8366:20210518:201617.746 completed 100% of database upgrade 8366:20210518:201617.746 database upgrade fully completed 8366:20210518:201617.750 database is not upgraded to use double precision values |
Есть ненулевой шанс, что будет какая-то ошибка с базой. Чаще всего возникают проблемы с какой-то нестандартной записью в таблице. Туда может попасть какой-то необычный символ, или с кодировкой проблемы. В этих случаях удаляйте проблемные записи, меняйте кодировку базы zabbix.
После обновления переходите в web интерфейс и проверяйте версию Zabbix. Должна быть 5.4.
На этом обновления Zabbix до 5.4 на Centos завершено.
Debian / Ubuntu
Проверяем, какие пакеты Zabbix у нас установлены на сервере:
1 |
# dpkg -l | grep zabbix |
Устанавливаем обновление zabbix server и остальных пакетов на Debian или Ubuntu следующей командой:
1 |
# apt upgrade zabbix-agent zabbix-frontend-php zabbix-nginx-conf zabbix-server-mysql |
После завершения обновления, запускаем сервер:
1 |
# systemctl start zabbix-server |
В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.
1 |
# tail -f /var/log/zabbix/zabbix_server.log |
После завершения обновления базы, сервер запустится. После этого можно запустить и агент.
1 |
# systemctl start zabbix-agent |
В логах агента и сервера можно посмотреть версию запущенных сервисов.
1 2 |
Starting Zabbix Agent [Zabbix server]. Zabbix 5.4.0 (revision 5059e20a75). Starting Zabbix Server. Zabbix 5.4.0 (revision 5059e20a75). |
Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx, в том случае, если веб сервер работает от него. После обновления он будет принадлежать apache, а web интерфейс не заработает.
1 |
# chown -R nginx:nginx /etc/zabbix/web |
Теперь можете лицезреть обновленную версию web интерфейса в браузере.
Напоминаю, что с обновлением 5.4 появились и новые шаблоны. Они автоматически не появятся у вас на сервере. Их нужно будет скачать и импортировать вручную из репозитория - https://github.com/zabbix/zabbix/tree/release/5.4/templates. Это же касается и способов оповещения, которые регулярно добавляются. Если не обновили их вручную при переходе на 5-ю ветку, то так же можете забрать их из репы и импортировать к себе на сервер.