2-го апреля вышла очередная новая версия крутой и удобной системы мониторинга. Сегодня я расскажу, как выполнить обновление zabbix с версии 4.0 до последней версии 4.2. Инструкция будет подробная и пошаговая, с описанием всех нюансов.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Содержание:
Что нового в версии zabbix 4.2
О том, что нового появилось в версии 4.2 очень подробно рассказал автор системы мониторинга - Алексей Владышев в статье на хабре. Я не буду ее пересказывать. Так же подробная информация есть в анонсе на официальном сайте. Я прокомментирую своими словами то, что показалось лично мне полезным и интересным в новой версии 4.2.
- Поддержка Prometheus. Это очень крутой шаг вперед в развитии. Преметеус очень популярная современная система мониторинга контейнерных систем, которые активно развиваются и внедряются. Заббикс сделал важный шаг, настроив простую интеграцию.
- Оптимизация высокочастотного мониторинга. Очень удобная штука, которая позволит существенно экономить место в базе данных. Как известно, база данных - узкое место работы системы мониторинга в целом. Так что инструмент, который позволит существенно сократить количество записей, не потеряв функционал, очень полезен.
- Обработка данных с помощью javascript. Я не умею писать на javascript и тем не менее понимаю важность и удобство этого нововведения. Обработку данных можно делать на сервере практически в любом виде. Меньше скриптов на местах, больше обработок на сервере. С таким подходом удобнее управлять и масштабировать систему. Это однозначно плюс. Надо учить javascript.
- Тест препроцессинга. Теперь можно настроить итем, препроцессинг и тут же посмотреть, как он работает. Не надо ждать, когда актвируется элемент и начнут поступать данные. Это экономит время отладки.
- Препроцессинг на стороне прокси. Тут все понятно и без объяснений. Снимаем нагрузку с сервера и распределяем ее по прокси.
- Тэги для шаблонов и узлов. Я лично пользуюсь тэгами, поэтому рад расширению этого функционала. Будет удобнее формировать списки на основе каких-то признаков.
- Тест способов оповещений. Вроде мелочь, но как же надоедает отлаживать способы оповещения, когда что-то не работает. Приходится создавать какой-то триггер и постоянно его дергать, чтобы проверить работу. Особенно это актуально для оповещений в telegram. Теперь можно будет проверять оповещения прямо из интерфейса настроек.
- HTML формат оповещений. Мне лично не актуально, хватает и текстовых. Но я видел, как люди колхозят скриптами красивые html оповещения. Теперь это будет работать из коробки.
- Новый фильтр в конфигурации триггеров. Отлично, что обратили внимание на этот нюанс. Текущий фильтр реально не удобный, особенно когда на хосте сотни триггеров. Мне приходилось искать триггеры через список итемов. Сначала ищешь нужный итем, потом переходишь в триггер. Фильтр итемов более удобный.
- Точное время на графике. Наконец-то это сделали. Теперь можно навести на график и увидеть точное время. На некоторых графиках невозможно точно узнать время, если шаг большой, цифры в линии времени мелкие. Эта проблема решена.
Нововведения интересные и кое-где я обновлю сервера, чтобы потестировать новые фичи. Там, где новый функционал не нужен, обновление ставить не буду. Я больше предпочитаю использовать LTS версии в production.
Нововведения Zabbix 4.2 разобрали, приступим к обновлению.
Подготовка к обновлению
Если у вас версия 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.2:
# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
Старый репозиторий от версии 4.0 будет автоматически удален.
Очищаем и пересоздаем кэш yum:
# yum clean all # yum makecache
Debian 9
Удаляем пакет текущего репозитория:
# rm -Rf /etc/apt/sources.list.d/zabbix.list
Подключаем новый:
# wget https://repo.zabbix.com/zabbix/4.2/debian/pool/main/z/zabbix-release/zabbix-release_4.2-1+stretch_all.deb # dpkg -i zabbix-release_4.2-1+stretch_all.deb
Обновляем информацию о репозиториях:
# apt update
Ubuntu 18
Удаляем пакет текущего репозитория:
rm -Rf /etc/apt/sources.list.d/zabbix.list
Подключаем новый:
# wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+bionic_all.deb # dpkg -i zabbix-release_4.2-1+bionic_all.deb
Обновляем информацию о репозиториях:
# apt update
Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/4.2/ Дальнейшее обновление не будет отличаться от текущего.
К обновлению подготовились, можно приступать.
Установка обновления zabbix 4.0 до 4.2
Centos 7
Устанавливаем само обновление zabbix на сервер Centos 7 следующей командой:
# 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 9/Ubuntu 18
Устанавливаем само обновление 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
После завершения обновления базы, сервер запустится. После этого можно запустить и агент.
# systemctl start zabbix-agent
В логах агента и сервера можно посмотреть версию запущенных сервисов.
Starting Zabbix Agent [serveradmin.ru]. Zabbix 4.2.0 (revision 91746).
Starting Zabbix Server. Zabbix 4.2.0 (revision 91746).
Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx. После обновления он будет принадлежать apache, а web интерфейс не будет работать.
# chown -R nginx:nginx /etc/zabbix/web
В веб интерфейсе в самом низу будет показана текущая версия сервера:
Можете изучать новую версию zabbix 4.2 и пробовать улучшения.
Заключение
Процедура обновления Zabbix сервера обычно не сложная. Проблемы чаще всего возникают в двух случаях:
- Проблемы с зависимостями пакетов, чаще всего php или mysql.
- Большая база данных, которая очень долго обновляется, либо не обновляется по какой-то причине.
Первая проблема решается ручным удалением или установкой нужных пакетов. Тут универсального совета дать невозможно. Зависит от того, что вы делали на сервере и почему у вас сломаны зависимости. Вторая проблема решается, в зависимости от причин проблем с базой. Если она слишком большая и поэтому все тормозит и длится слишком долго, надо либо ускорять сервер, либо чистить базу.
Иногда база не обновляется из-за каких-то проблем с записями. Чаще всего в полях acknowledged, куда можно понаписать всего, что угодно. Надо тоже разбираться по месту и удалять то, что мешает обновлению. Но в общем и целом, обновление проходит штатно и лично у меня никогда не было с ним проблем.
У меня очень много статей по настройке zabbix. Все они в отдельном разделе. Так же у меня написана подробная статья по установке и настройке zabbix 4 с моими примерами и рекомендациями.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Делаю все по инструкции Debian 9. zabbix_server (Zabbix) 4.0.25
Revision 32662425e6 28 September 2020
Но в итоге не обновляется
Ign:1 http://deb.debian.org/debian stretch InRelease
Ign:2 http://security.debian.org/debian-security stretch/updates InRelease
Ign:3 http://deb.debian.org/debian stretch-updates InRelease
Err:4 http://security.debian.org/debian-security stretch/updates Release
404 Not Found [IP: 151.101.86.132 80]
Ign:5 http://deb.debian.org/debian-security stretch/updates InRelease
Err:6 http://deb.debian.org/debian stretch Release
404 Not Found [IP: 151.101.86.132 80]
Err:7 http://deb.debian.org/debian stretch-updates Release
404 Not Found [IP: 151.101.86.132 80]
Err:8 http://deb.debian.org/debian-security stretch/updates Release
404 Not Found [IP: 151.101.86.132 80]
Ign:9 http://ftp.us.debian.org/debian stretch InRelease
Ign:10 http://repo.zabbix.com/zabbix/3.5/debian stretch InRelease
Ign:11 http://ftp.us.debian.org/debian stretch-updates InRelease
Err:12 http://ftp.us.debian.org/debian stretch Release
404 Not Found [IP: 64.50.236.52 80]
Err:13 http://repo.zabbix.com/zabbix/3.5/debian stretch Release
404 Not Found [IP: 178.128.6.101 80]
Err:14 http://ftp.us.debian.org/debian stretch-updates Release
404 Not Found [IP: 64.50.236.52 80]
Reading package lists... Done
E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does no longer have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://deb.debian.org/debian stretch Release' does no longer have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://deb.debian.org/debian stretch-updates Release' does no longer have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://deb.debian.org/debian-security stretch/updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://ftp.us.debian.org/debian stretch Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://repo.zabbix.com/zabbix/3.5/debian stretch Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://ftp.us.debian.org/debian stretch-updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
root@zabbix-srv:~# apt install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
Skipping zabbix-agent, it is not installed and only upgrades are requested.
Skipping zabbix-frontend-php, it is not installed and only upgrades are requested.
Skipping zabbix-server-mysql, it is not installed and only upgrades are requested.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Debian 9 уже вроде не поддерживается. Её стандартные репозитории недоступны. Вам надо архивные подключить. В ошибке явно об этом написано.
apt-get install zabbix-server-mysql
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:
Следующие пакеты имеют неудовлетворённые зависимости:
zabbix-server-mysql : Зависит: libevent-2.1-6 (>= 2.1.8-stable) но он не может быть установлен
Зависит: libmysqlclient20 (>= 5.7.11) но он не может быть установлен
Зависит: libsnmp30 (>= 5.7.3+dfsg-1.8ubuntu3~dfsg) но он не может быть установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
И как поправить не знаю подскажите уважаемые Гуру)
Скорее всего у Вас стоит Ubuntu до 18 версии, вам нужно обновится на более актуальную.
Приветствую.
Решил обновить заббикс с 4.0 на 4.2, застрял в самом начале, где надо делать бэкап базы.
Скрин
https://yadi.sk/i/AYw8WK9IkMF7_g
Кто подскажет, что не так, не смог найти проблему.
На всякий текст приложу
root@Zabbix:/# /usr/bin/mysqldump --opt -v --databases zabbix -uroot -p'zabbix' | /usr/bin/gzip -c > /root/zabbix.sql.gz
bash: /usr/bin/gzip: Нет такого файла или каталога
-- Connecting to localhost...
-- Retrieving table structure for table acknowledges...
-- Sending SELECT query...
-- Retrieving rows...
mysqldump: Got errno 32 on write
Так написано же, в чем проблема:
bash: /usr/bin/gzip: Нет такого файла или каталога
У вас либо gzip не установлен, либо он живет по другому пути. Скорее всего /bin/gzip.
Спасибо Владимир. Самое интересное, что gzip установлен. Искал по всем директориями, не нашел. До /bin не дошел.
Сменил путь, заработал. Спасибо ещё раз.
Обновлялся ZBx 4.0.6 --> 4.2.5
Браузер Firefox , куки , кэш чистил.
The frontend does not match Zabbix database. Current database version (mandatory/optional): 4000000/4000003. Required mandatory version: 4020000. Contact your system administrator.
appliance@zabbix:~$ dpkg -l | grep zabbix
ii zabbix-agent 1:4.2.5-1+xenial amd64 Zabbix network monitoring solution - agent
ii zabbix-frontend-php 1:4.2.5-1+xenial all Zabbix network monitoring solution - PHP front-end
ii zabbix-get 1:4.2.5-1+xenial amd64 Zabbix network monitoring solution - get
ii zabbix-java-gateway 1:4.2.5-1+xenial all Zabbix network monitoring solution - java-gateway
ii zabbix-release 4.2-2+xenial all Zabbix official repository configuration
ii zabbix-sender 1:4.2.5-1+xenial amd64 Zabbix network monitoring solution - sender
ii zabbix-server-mysql 1:4.2.5-1+xenial amd64 Zabbix network monitoring solution - server (MySQL)
Надо смотреть лог сервера zabbix. Возможно база не обновилась из-за какой-то ошибки.
Не хватает места на диске. Машина установлена на виртуалке. Добавил объема для хоста. Пытаюсь расширить раздел по этой инструкции https://www.zabbix.com/documentation/4.0/ru/manual/appliance . Команда pvs выводит только вновь созданный раздел. Не видит zabbix-vg .........
Расширил раздел. Все комманды обновления прошли как по маслу ........... но в конце та же ошибка. Я так понимаю не обновился пакет zabbix-server-mysql . Куда копать в этот раз, где смотреть логи ?
mysql> SELECT version();
+-------------------------+
| version() |
+-------------------------+
| 5.7.26-0ubuntu0.16.04.1 |
+-------------------------+
1 row in set (0.00 sec)
Какая ошибка в конце? Нужно смотреть лог zabbix-server на предмет обновления структуры БД. Она скорее всего не обновилась из-за какой-то ошибки.
log ----> user zabbix acces denied
Нашёл на форуме, что при обновлении пакетов запрашивает \\ обновлять или нет файлы конфигурации\\ я нажал тогда Y......
Лечится пастом пароля пользователя zabbix в файле /etc/zabbix/zabbix_server.conf
Спасибо, Вам, за статью и за помощь. Узнал много нового для себя !
Если старый конфиг затерли во время обновления, то конечно ничего работать не будет. Надо вернуть в новый настройки из старого.
Лучшая статья. Лучший сайт. Много полезных статей. По статье без проблем обновил zabbix.
Но давно мучает один вопрос, а именно возможность загрузки фоновых изображений для карт сетей для zabbix. Загрузка ограничена размеров в примерно около 1 MB, а большие карты невозможно ужать в этот размер. Было бы неплохо почитать статью об изменении параметра ограничивающего загрузку в 1 MB. Сколько не пытался менять параметры ограничивающие загрузку так и не получилось ошибка вывода "413 Request Entity Too Large nginx/1.16.0".
Так это ограничение на уровне web сервера, а не zabbix. Эта ошибка nginx легко гуглится и исправляется. Ничего ужимать не надо.
Добрый день!
При использовании Nginx еще необходимо после обновления сменить владельца /var/lib/php/session.
# chown -R nginx:nginx /var/lib/php/session
Это да, правда не после обновления zabbix. Не помню точно, кто меняет права на эту директорию. php-fpm наверно.
Добрый день.
Можете подсказать , почему сайт недоступен?
Забикс обновился, оунера поменял на веб, забикс стартанул и сервер и агент. 80 порт слушается. Ошибка HTTP 500 . Кеш\куки чистил.
https://prnt.sc/o0dqk0
http://prntscr.com/o0dwj5
http://prntscr.com/o0eet9
Логи веб сервера надо смотреть. Там будет видно, из-за чего 500-я ошибка.
Добрый день, после обновления до 4.2 отвалились все windows клиенты, по snmp принтеры работают.
LogFile=c:\zabbix_agentd.log
LogFileSize=10
Hostname=host1
ListenIP=0.0.0.0
StartAgents=0
ServerActive=192.168.8.244
Все хосты в zabbix добавляются автоматически, если руками прописывать ip то работает, но ip получают по dhcp.
Все просто разобрался) Спасибо, Вам за ваши статьи!!!!
при обновлении произошла проблема
Access denied for user 'zabbix'@'localhost' (using password: NO)
1430:20190501:152200.375 database is down: reconnecting in 10 seconds
1430:20190501:152210.376 [Z3001] connection to database 'zabbix' failed: [1045
2-го апреля же!
Точно :)
Сергей
21.05.2019 at 16:30
Добрый день, после обновления до 4.2 отвалились все windows клиенты, по snmp принтеры работают.
LogFile=c:\zabbix_agentd.log
LogFileSize=10
Hostname=host1
ListenIP=0.0.0.0
StartAgents=0
ServerActive=192.168.8.244
Все хосты в zabbix добавляются автоматически, если руками прописывать ip то работает, но ip получают по dhcp.
А если я устанавливал 4 версию zabbix из исходников для поддержки шифрования способ, описанный в статье, подойдет мне?
Очевидно, что нет. Здесь установка идет из пакетов. Хотя я не понял, зачем собирать из исходников. Шифрование работает в дефолтной установке, которая выполняется по-умолчанию. Если уж начали собирать из исходников, то и эту версию соберите так же с теми же ключами.
Как оказалось в дефолтной шифрование не работает, только после переустановки сервера из исходников с поддержкой шифрования заработало
Какое именно шифрование? Шифрование PSK с агентом точно работает. Я им пользуюсь регулярно.
PSK агент и сервер. У меня почему то не заработало. Начал смотреть документацию zabbix, там было сказано: "Для поддержки шифрования Zabbix должен быть скомпилировать и связан с по крайней мере одной крипто библиотекой"
Вопрос по новым графикам. На дашборде они есть и интервалы времени при наведении мыши показываются. А в мониторинге, так старые графики и остались. В оф. статье говорится, что они появились, только не говориться где. Везде или только на дашборде?
Я тоже ждал везде. По факту только на дашборде. С этими графиками теперь путаница вышла. Старые графики остались убогими, приходится вручную новые заводить в дашборде. Это неудобно.
Спасибо за ответ. Да, статьи всегда достойны внимания , за это тоже респект.
"Старые скрипты и проверки не отвалились. " - а если установлен Zabbix третьей версии? Отвалятся они или апгрейд пройдет без проблем?
Спасибо за статью.
Я же не знаю, что у вас там настроено и работает. Надо последовательно тестировать и обновлять. Кое-что у меня ломалось, но уже не помню при переходе на какую версию. Кажется при переходе с 2.4 на 3.0.
"Подключаем репозиторий версии zabbix 4.0:"
Поправьте вот здесь на 4.2.
А в целом спасибо большое спасибо за статьи о мониторинге.
Спасибо, поправил. Я 4.2 потестил в двух местах. Проблем не обнаружил. Старые скрипты и проверки не отвалились. Можно обновляться, если нужны нововведения. Если нет, я бы остался на 4.0 пока.