Как обновить zabbix agent centos

Обновлено: 07.07.2024

Недавно вышла новая версия сервера Zabbix 5.0. Сегодня я расскажу, как обновить предыдущую версию zabbix 4.4 до актуальной 5.0. Делать это придется в обязательном порядке всем, так как версия 4.4 не LTS и имеет ограниченное время поддержки. В то время 5.0 как раз LTS с циклом поддержки в 5 лет.

Введение

Ранее я написал подробную статью по установке и настройке Zabbix 5 , где в том числе рассказал своими словами обо всех основных нововведениях. Настоятельно рекомендую с ними ознакомиться, прежде чем обновляться. Обязательно сначала прочитайте всю статью, только потом начинайте обновление. По ходу дела будут важные замечания.

Второй момент. В этой версии очень много изменений, как в настройках, так и в интерфейсе. Обновлять без подготовки не рекомендую. Если у вас несколько серверов, начните с самого простого. Если же только один, то настоятельно рекомендую сделать его копию и проверить обновление на ней.

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

С одной стороны это плюс, так как шаблоны зачастую меняются очень сильно. Нужен ручной контроль. А с другой стороны неудобно вручную обновлять все шаблоны, которые еще и зависимости свои имеют. Рассмотрю все эти моменты по ходу дела. Приступаем к обновлению сервера мониторинг Zabbix версии 4.4 до 5.0.

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

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

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

У меня что-то активно писалось в базу, поэтому сервер выключался долго. При этом systemd выдал ошибку:

Я проверил лог zabbix-server, чтобы убедиться в корректном выключении. Там все нормально было, сервер штатно завершил работу, дописав то, что у него там накопилось. Так что бэкапим.

zabbixназвание базы данных заббикса-uzabbixключ -u и дальше имя пользователя базы данных-p’password’ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками

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

Centos 7

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

Centos 8

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

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

Debian 10

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

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

Ubuntu 18

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

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

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

Ubuntu 20

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

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

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

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

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

Centos

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

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

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

Debian / Ubuntu

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

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

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

1-го октября как-то буднично и без отдельной рассылки вышла новая версия сервера мониторинга Zabbix 4.0. Сегодня я расскажу, как выполнить обновление zabbix с версии 3.4 до последней версии 4.0. Я уже давно использовал альфа версии, потом rc, так что уже неплохо знаком с новой версией, и она мне очень понравилась.

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

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

Для начала краткий обзор основных нововведений:

И многое другое. Подробное описание с картинками вы можете посмотреть на отдельной странице What's New in Zabbix 4.0 LTS на сайте. Для полноты картины ссылка на Release Notes for Zabbix 4.0.0.

Нововведения Zabbix 4.0 разобрали. Приступим к обновлению прошлой версии 3.4 до 4.0.

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

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

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

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

zabbix название базы данных заббикса
-uzabbix ключ -u и дальше имя пользователя базы данных
-p'password' ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками

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

Centos 7

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

Подключение репозитория zabbix 4.0

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

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

Debian 9

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

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

Ubuntu 18

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

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

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

Установка обновления zabbix 3.4 до 4.0

Centos 7

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

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

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

Debian 9/Ubuntu 18

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

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

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


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

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

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

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


Можете знакомиться с нововведениями и брать их на вооружение.

Заключение

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

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

В скором времени выйдет моя новая статья по установке zabbix 4.0, где я поделюсь своими советами и рекомендациями по настройке, которые я обычно делаю на новых серверах. Раньше я эту информацию не публиковал, ограничиваясь общими советами. Теперь решил поделиться именно своими наработками и опытом. Еще я там впервые не буду отключать SELinux, а то уже утомили претензии по этому поводу, как-будто это что-то, без чего заббикс сервер просто невозможен.

Онлайн курс Infrastructure as a code

  • Познакомитесь с Terraform.
  • Изучите систему управления конфигурацией Ansible.
  • Познакомитесь с другими системами управления конфигурацией - Chef, Puppet, SaltStack.
  • Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
  • В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

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

День добрый.
Спасибо за статью. Обновился на CentOS. Полёт нормальный

Zabbix 3.4.11 to 4.0.2, Debian 8. Все по инструкции.
Без ошибок, но Zabbix не обновился.

Что значит не обновился? Новые пакеты установились? Где видно, что сервер старый? В логах сервера или в web интерфейсе?

Здравствуйте, столкнулся с той же проблемой, нашли как-то решения. Пакеты zabbix-agent и zabbix-server-mysql обновились, база обновилась, но в веб морде отображает всю ту же старую версию. Кэшь чистил, другой браузер пробовал(

Обновление с версии 3.0.28 до 4.0 по этой инструкции делать ? или есть какие то особенности ? Спасибо за ответ!

Обновлять надо последовательно версию за версией. Ссылки есть в начале статьи.

После апгрейда в браузере пишет: The frontend does not match Zabbix database. Current database version (mandatory/optional): 3050001/3050001. Required mandatory version: 4000000.

Смотрите лог сервера zabbix. По какой-то причине не произошло обновление структуры БД.

23706:20190716:143158.828 Starting Zabbix Server. Zabbix 4.0.10 (revision cc25224816).
23706:20190716:143158.829 ****** Enabled features ******
23706:20190716:143158.829 SNMP monitoring: YES
23706:20190716:143158.829 IPMI monitoring: YES
23706:20190716:143158.829 Web monitoring: YES
23706:20190716:143158.829 VMware monitoring: YES
23706:20190716:143158.829 SMTP authentication: YES
23706:20190716:143158.829 Jabber notifications: YES
23706:20190716:143158.829 Ez Texting notifications: YES
23706:20190716:143158.829 ODBC: YES
23706:20190716:143158.829 SSH2 support: YES
23706:20190716:143158.829 IPv6 support: YES
23706:20190716:143158.829 TLS support: YES
23706:20190716:143158.830 ******************************
23706:20190716:143158.830 using configuration file: /etc/zabbix/zabbix_server.conf
23706:20190716:143158.835 current database version (mandatory/optional): 03050001/03050001
23706:20190716:143158.835 required mandatory version: 04000000
23706:20190716:143158.835 optional patches were found
23706:20190716:143158.835 starting automatic database upgrade
23706:20190716:143158.836 [Z3005] query failed: [1060] Duplicate column name 'name' [alter table `events` add `name` varchar(2048) default '' not null]
23706:20190716:143158.836 database upgrade failed

Вот конкретная ошибка:

[Z3005] query failed: [1060] Duplicate column name ‘name’ [alter table `events` add `name` varchar(2048) default » not null]

Разбирайтесь с ней. Заходите в базу и смотрите, что там в таблицах. Почему дублирование колонки. Возможно, эту таблицу можно просто удалить. Не забудьте остановить заббикс сервер, перед тем, как будете что-то в базе делать.

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

После обновления при переходе на ссылку zabbix открывается страница cachewarning.php с предупреждением Assets cache directory is not writable.

Как это поравить?

chmod -R 777 /usr/share/zabbix/assets

Спасибо за отличную статью!

В юните систем-ди необходимо прописать зависимость от службы SQL-сервера, например для PostgreSQL. Также надо указать, что таймаут не бесконечный, иначе может возникнуть ситуация, когда вы не сможете остановить или перезапустить сервер. Почему-то все это из коробки не сделано.
user@host:

Также, при обновлении минорной версии надо вручную останавливать юнит zabbix-server

Ответ нашел выше, извините за невнимательность.

Не подскажете, у Вас правильно отображаются состояния триггеров на элементах сетевых карт?

У меня до 3.4 всё было нормально, а на 4.0 вместо триггера отображается последнее событие, если его не было, показывается неактивное состояние, даже если триггер активен.

Не видел такого. У меня все в порядке.

У меня есть сильное подозрение, что с триггерами в 4.0 что-то сломали - я пока никак не могу победить ложные срабатывания Agent ping.

Похоже на то.
Придётся откатиться на 3.4, а жаль.

Обновил zabbix c 3.0 до 4.0, естесвенно с промежуточными вресиями.
Все прошло гладко.
Настала очередь обновленять Ubuntu(14.04).
Обновлял сохраняя все свои конфиги.
После обновления получил ошибку

"DB type «PQSL» is not supported by current setup.»

apt remove php* -y
apt install zabbix-frontend-php -y

удалил все что связанно c php, установил zabbix-frontend-php

"Not Found
The requested URL /zabbix/ was not found on this server.

Apache/2.4.18 (Ubuntu) Server at zabbix Port 443"

Т.е. apache не знает о дирекории заббикса. Как указать?

Конфиг заббикса для apache пропал. Можно еще раз переустановить zabbix-frontend-php или проверить, что в папке с конфигами apache2. Возможно конфиг просто переименован.

вроде у меня он в порядке

Alias /zabbix /usr/share/zabbix

Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

php_value max_execution_time 300
php_value memory_limit 1024M
php_value post_max_size 32M
php_value upload_max_filesize M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Kiev

php_value max_execution_time 300
php_value memory_limit 1024M
php_value post_max_size 64M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Kiev

Order deny,allow
Deny from all

Order deny,allow
Deny from all

Order deny,allow
Deny from all

Order deny,allow
Deny from all

Он не работает по какой-то причине. Веб сервер четко говорит в чем проблема:

The requested URL /zabbix/ was not found on this server. Попробуй без слеша на конце.

убрав слеш получил тот-же результат.

Почему
/etc/apache2/conf-available/zabbix.conf
может не работать? в apache2/error.log ошибок не вижу

Оказалось что затерлись conf-available, conf-enabled.
Воостановил zabbix.conf и символьную ссылку.
и тут получли нечто еще более странное у меня запустился setup.php, НО от zabbix 2.4, хотя изначально на сервере был только 3.0.

переименовал setup.php, т.к. не обнаружил zabbix.php, взял его из бекапа. не помогло.
Почему мог появится setup.php, как вернуть работоспособность?

Я не знаю. У вас что-то напутано в веб сервере. Как могут сами по себе затереться conf-available, conf-enabled? Возможно у вас подключен конфиг с исходниками от версии 2.4.

Не знаю где лучше задать вопрсо, поэтому задам здесь:
суть такова, после того как настрою забикс, в частности мониторинг виндовых серверов - количество TCP соединений увеличивается в разы: к примеру без запущенного заббикса - 150 - с ним 500. Это можно где то уменьшить? Или это так и должно быть.
Мониторим win2k12 которые стоят на виртуалках в яслях, если это имеет значение

Не понял, зачем это уменьшать? Идут же коннекты от агентов, как они должны еще передавать данные, не открывая tcp соединения?

В таких кол-вах? Это на одном из серверов. На другом доходило до нескольких тысяч, и я так понимаю оно (кол-во соединений) продолжало постепенно расти. Если так и должно быть, то тогда ладно. Просто пугает

Я никогда не измерял кол-во tcp соединений, которые открывает zabbix сервер и агенты. Но я ни разу не слышал, чтобы с этой стороны были какие-то проблемы. Если это вас так волнует, то посмотрите, что это за соединения и кто конкретно их открывает.

Ок. я думаю в следующем году буду ставить заного 4 версию, тогда я потестим. если что отпишусь.

Ложные срабатывания триггера ping пока не победил - увеличил таймауты в конфиге сервера, обновил клиентов везде - наблюдаются ложные срабатывания при завершении периодов обслуживания.

Заранее спасибо.
Текст ошибки:

The frontend does not match Zabbix database. Current database version (mandatory/optional): 3040000/3040007. Required mandatory version: 4000000. Contact your system administrator.

Вопрос снят.
Исправил.

Проверьте zabbix conf, логин и пароль подключения к базе данных

Ты наверное имел ввиду /etc/zabbix/zabbix_server.conf ?
У меня та же ошибка, но и имя и пароль совпадают(((

Мне это помогло.. Других решений у меня нет.

Спасибо за статью, не подскажите если обновить до 4.0 а агенты останутся 3.2 будет работать? просто более тысячи хостов и железок всяких , не очень хочется менять все это.

Да, точно будет. Новые версии zabbix сервера всегда поддерживают старых агентов. А вот наоборот нет. Если поставить агент 4.0, то с сервером предыдущих версий работать не будет.

У меня возникла проблема. При обновлении с 3.4 до 4.0 на убунту 18.04 вылезает следующие:
makc@makc:

$ tail -f /var/log/zabbix/zabbix_server.log
6070:20181201:024848.013 SMTP authentication: YES
6070:20181201:024848.013 Jabber notifications: YES
6070:20181201:024848.013 Ez Texting notifications: YES
6070:20181201:024848.013 ODBC: YES
6070:20181201:024848.013 SSH2 support: YES
6070:20181201:024848.013 IPv6 support: YES
6070:20181201:024848.013 TLS support: YES
6070:20181201:024848.013 ******************************
6070:20181201:024848.013 using configuration file: /etc/zabbix/zabbix_server.conf
6070:20181201:024848.046 The server does not match Zabbix database. Current database version (mandatory/optional): 04000000/04000003. Required mandatory version: 03050162.

Если удалить базу и создать нулячую, то всё работает, как обновляюсь с базой (или заливаю базу 3.4 на 4.0), то вылезает такая ошибка.
Может быть есть какое-то решение? А то уже подумываю оставаться на 3.4))

Вообще при старте более свежей версии заббикс сервера он должен сам обновить базу.

Решение, возможно будет полезно.
Дано: исходная версия Zabbix 3.14.15, MariaDB 5.5
Сделано:
sql dump.
MariaDb up to 10.4
Zabbix up to 4.4.4
При восстановлении дампа не полностью создается база данных, вылетало на таблице history_uint
Ошибки:
query failed: [1091] Can't DROP FOREIGN KEY `c_host_inventory_1`; check that it exists [alter table host_inventory drop foreign key c_host_inventory_1]
`host_inventory` because after adding it, the row size is 8246 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page.

Решение:
Maria DB позволяет создавать таблицы, выходящие за параметры ограничений при включенном параметре
mysql -uroot -ppassword
>set global innodb_strict_mode='OFF';
Затем повторно залить дамп
После установить параметр
>set global innodb_strict_mode='ON';

Запуск zabbix-server
В отдельном окне контроль
tail -f /var/log/messages

Будет информация по таблицам, которые не могут создаться при обновлении базы
MariaDB [(none)]> set global innodb_strict_mode='OFF';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> set global innodb_strict_mode='ON';
Query OK, 0 rows affected (0.004 sec)

MariaDB [(none)]> use zabbix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix]> drop table lld_macro_path
-> ;
Query OK, 0 rows affected (0.010 sec)

MariaDB [zabbix]> drop table host_tag;
Query OK, 0 rows affected (0.030 sec)

MariaDB [zabbix]> drop table item
Display all 105 possibilities? (y or n)
MariaDB [zabbix]> drop table item_rtdata;
Query OK, 0 rows affected (0.006 sec)

MariaDB [zabbix]> drop table config_autoreg_tls;
Query OK, 0 rows affected (0.007 sec)

MariaDB [zabbix]> drop table host_inventory_tmp;
Query OK, 0 rows affected (0.004 sec)

MariaDB [zabbix]> SET FOREIGN_KEY_CHECKS=1;

-- Specify to check foreign key constraints (this is the default)
SET FOREIGN_KEY_CHECKS = 1;
-- Do not check foreign key constraints
SET FOREIGN_KEY_CHECKS = 0;

Обновление Zabbix сервера и агента с версии 3.0 на версию 3.2 на Centos 7.x

Решил обновить установленные ранее Zabbix сервер и агенты до версии 3.2

Обновление сервера

Останавливаем заббикс сервер
systemctl stop zabbix-server

Делаем резервную копию конфигурационного файла
cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.30

Удаляем все пакеты, связанные с заббиксом.
yum remove zabbix-*

Очищаем rpm-кэш, удалив закачанные пакеты
yum clean all

Создаем кеш заново
yum makecache

Устанавливаем необходимые пакеты
yum install zabbix-server-mysql zabbix-web-mysql zabbix-get

Заббикс, по-умолчанию ставит владельцем файла пользователя, от которого стартует веб-сервер Apache. У меня используется nginx.
chown -R nginx:nginx /etc/zabbix/web/

Возвращаем настройки на место
cp /etc/zabbix/zabbix_server.conf.30 /etc/zabbix/zabbix_server.conf

Запускаем вторую консоль, смотрим логи в режиме реального времени.
tail -f /var/log/zabbix/zabbix_server.log

Возвращаемся на первую консоль, стартуем сервер
systemctl start zabbix-server

На второй консоли смотрим лог файл, видим, что при старте у нас старая версия базы Заббикса и начинается обновление


Дожидаемся окончания обновления базы

Если все нормально, то прописываем автозапуск сервера

systemctl enable zabbix-server

Обновление агента

Останавливаем заббикс агент
systemctl stop zabbix-agent

Делаем резервную копию конфигурационного файла
cp /etc/zabbix/zabbix_agent.conf /etc/zabbix/zabbix_agent.conf.30

Удаляем все пакеты, связанные с заббиксом.
yum remove zabbix-*

Устанавливаем необходимые пакеты
yum install zabbix-get zabbix-agent

Возвращаем настройки на место
cp /etc/zabbix/zabbix_agent.conf.30 /etc/zabbix/zabbix_agent.conf

Запускаем вторую консоль, смотрим логи в режиме реального времени.
tail -f /var/log/zabbix/zabbix_agentd.log

Возвращаемся на первую консоль, стартуем агента
systemctl start zabbix-agent

Если нет ошибок, то прописываем автозапуск агента
systemctl enable zabbix-agent

Обновляем Zabbix с версии 4.0 до 5.0 в несколько шагов, а также разбираем некоторые “грабли”.

Первый вопрос: для чего может понадобиться переход с Zabbix 4.0 на 5.0, если и так все работает. Ответ простой: для получения новых возможностей мониторинга и улучшенного текущего функционала. На официальной странице Вы можете найти описание нововведений, а сейчас перечислю плюсы перехода в моем случае:

  • Поддержка сжатия собранных данных в TimescaleDB (автоматическое партицирование, производительность и масштабируемость) при использовании PostgreSQL.
  • Улучшенные агенты сбора данных.
  • Улучшена работа со счетчиками производительности Windows, в т.ч. и для ОС на разных языках.
  • Улучшенная работа с JSON.
  • Расширенные возможности при работе с ODBC.
  • Встроенная интеграция с популярными системами оповещения, в т.ч. и Telegram.
  • Новый состав улучшенных шаблонов для многих популярных сервисов и приложений.

Раньше обновление на новые версии могли приводить к проблемам, т.к. старые шаблоны собираемых метрик были не совместимы. Сейчас же Zabbix 5.0 поддерживает большинство старых шаблонов, что не может не радовать.

В любом случае, обновлять или нет - это Ваш выбор. Но рекомендую это сделать.

Обычный процесс обновления Zabbix на новую версию имеет такой план.

  1. Останавливаем Zabbix и делаем бэкап
  2. Обновляем пакеты Zabbix
  3. Первый запуск
  4. Проверяем результаты
  5. Обновляем прокси и агентов
  6. Разбираем возникшие проблемы

Будем придерживаться этого плана и сейчас. Подробную информацию по обновлению также можно получить в официальной документации.

Стоит напомнить, что все действия выполняются в операционной системе CentOS 7. Сервер Zabbix установлен версии 4.0, а в качестве СУБД используется PostgreSQL 11. Для веб-интерфейса используется Apache.

Для других дистрибутивов Linux и СУБД для Zabbix будут различия в синтаксисе команд и некоторых нюансах, но общая процедура будет такой же.

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

И так, начнем! Остановим службу сервера Zabbix.

Теперь мы можем сделать бэкап всех настроек и базы данных. Для примера мы сохраним бэкап всех настроек, компонентов и базу данных в каталог “/opt/zabbix_backup_data”.

Мы сохранили все необходимое на случай отката изменений. Пойдем дальше.

Процесс сервера Zabbix мы уже остановили ранее. Теперь настал момент обновить пакеты. Сначала проверим какие пакеты Zabbix установлены в системе.

В выводе будут присутствовать все пакеты, связанные с Zabbix и их версии. В нашем случае список пакетов будет таким.

Настало время обновить их. Идем на официальную страницу загрузки пакетов и выбираем версии Zabbix, ОС, СУБД и веб-сервера. В результате нам дадут ссылку на репозиторий с пакетами, из которого и нужно поставить обновления. В нашем примере это выглядит так.

Выполним обновление ссылок на репозиторий.

Теперь мы можем обновить эти пакеты.

Если Вы используете Apache, то может понадобиться выполнить команду повторной установки.

После завершения обновления можно перейти к первому запуску.

Большая часть работы позади, и мы можем попытаться запустить сервер и перейти в веб-интерфейс.

После первого запуска не стоит сразу бежать в браузер. Дайте процессу Zabbix обновить базу данных на новую версию. Прогресс этой операции можно посмотреть с помощью логов.

Команда показывает последние 20 записей из логов, связанных с процессом обновления базы данных. Как мы видим, в конце написано, что база успешно обновлена.

То есть база данных для версии 5.0, а веб-интерфейсу требуется версия 4.0. Но как так? Мы же обновили все пакеты!

Все связано с тем, что версия PHP 7.2, которая нужна для 5 версии Zabbix, отсутствует в базовых репозиториях CentOS 7. Из-за этого фактически пакеты zabbix-web и zabbix-web-pgsql не обновились и до сих пор остаются от 4 версии. Для решения проблемы подключим репозиторий “centos-release-scl” и переустановим эти два пакета. Первым делом удалим предыдущие версии:

Теперь подключим репозиторий “centos-release-scl”:

Эта настройка позволяет использовать PHP 7.2 из пакета PHP-FPM. Перезапускаем все службы:

Теперь мы можем перейти в браузере в веб-интерфейс и успешно авторизоваться.

Единственный нюанс - может потребоваться очистка кэша браузера, т.к. кэш от старой версии веб-интерфейса может привести к некорректному отображению разметки или выполнению некоторых функций. Нажмите Ctrl+F5 для обновления кэша браузера текущей страницы.

Обновление прошло, но нужно проверить как вообще работает сервер.

Что там в логах сервера

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

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

Ничего особенно в логах не видим: процессы запущены, работает housekeeper, все штатно. Тогда зайдем в список хостов в веб-интерфейсе и проверим собираются ли метрики.

Тоже все хорошо. Несмотря на то, что агентов мы не обновляли (кроме агента на Zabbix-сервере), мониторинг продолжает работать в штатном режиме.

Однако, на основной панели веб-интерфейса можно увидеть вот такую информацию об ошибке.

После изменения параметров обязательно нужно перезапустить службы и включить их запуск автоматически при загрузке ОС.

После этого ошибка настройки часового пояса больше не появится.

Добавляем новые шаблоны

В 5 версии Zabbix появились новые усовершенствованные шаблоны, но после обновления они не появились автоматически. Добавим их вручную.

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

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

Обновление Zabbix-прокси практически такое же как и для сервера, но с одним исключением. Вместо команды:

В остальном никаких проблем быть не должно. Вы всегда можете проверить какие пакеты Zabbix установлены на сервере с Zabbix-прокси, чтобы знать что обновлять. Команды для просмотра списка мы уже рассматривали выше.

Что касается агентов, то тут тоже ничего нового. Просто актуализируйте репозиторий и выполните:

На самом деле мы это уже сделали на сервере в примере выше.

Обновить агентов в других ОС также не сложная: скачивайте новый дистрибутив и устанавливайте / обновляете его компоненты. Никаких сложностей не должно быть. Если же будут, то обратитесь к официальной документации.

Теперь мы используем Zabbix 5 версии, задача успешно выполнена.

Это была еще одна небольшая публикация по теме мониторинга с помощью Zabbix. В следующих статьях мы поговорим о создании своего шаблон для сбора метрик и рассмотрим некоторые особенности этого процесса, настроим уведомления в Telegram-канал, а также получении данных с Prometheus и визуализации данных в Grafana. И, конечно же, оптимизация производительности сервера мониторинга Zabbix!

Будьте на связи :)

Создание материалов будет продолжаться. Хотите быть в курсе последних обновлений? Подписывайтесь на канал.

По любым вопросам пишите на электронную почту. Адрес в самом низу страницы.

Необходимо перенести систему мониторинга Zabbix 2.0.5 с сервера на базе Arch Linux на сервер под управлением CentOS 7 и обновить Zabbix до версии 2.4.7. В качестве базы данных используется PostgreSQL.

На новом сервере установлен CentOS Linux release 7.2.1511 (Minimal ISO), c отключенной системой принудительного контроля доступа SELinux.

Экспортируем БД Zabbix.

Загружаем БД на новый сервер.

PostgreSQL. Установка

PostgreSQL. Настройка

Инициализируем базу данных.

Настраиваем доступ к БД. В конфигурационном файле «/var/lib/pgsql/9.4/data/pg_hba.conf» описываем сети с которых будет доступ к PostgreSQL.

Включаем автозагрузку и запускаем PostgreSQL.

Создаем пользователя и базу данных.

Логин и пароль — zabbix. Если вам нужно указать другой пароль, используйте команду:

Проверяем подключение к БД.

PostgreSQL. Импортируем БД со строго Zabbix

PostgreSQL. Полезные команды (доп. материалы)

Список БД
[root@server

Создаем пользователя и базу данных
[root@server

Экспорт БД
[root@server

Импорт БД
[root@server

Дополнительные материалы:

Apache, PHP и др.

Устанавливаем необходимые для работы Zabbix модули, библиотеки, приложения.

Zabbix 2.4. Установка

Если появится ошибка:

И повторно запустите установку:

Включаем автозагрузку и запускаем Apache.

Zabbix 2.4. Настройка Zabbix через Web Wizard

Zabbix. Configure DB connection

Zabbix. Configure DB connection

Zabbix 2.4. Настройка /etc/zabbix/zabbix_server.conf

Zabbix 2.4. Настройка /etc/zabbix/zabbix_agentd.conf

Включаем автозагрузку и запускаем Zabbix (сервер и агент).

Zabbix 2.4. Лог файлы

Открываем лог файл /var/log/zabbix/zabbix_server.log и смотрим как прошла конвертация БД из строй версии в новую.

Zabbix 2.4. Важно про Housekeeper

После обновления Zabbix до версии 2.4 с версии более ранней чем 2.2, выключается функция housekeeper. Если у вас ранее использовалась данная функция, необходимо её заново настроить.

Читайте также: