Обновление Zabbix 5.2 до 5.4

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. Я сре­ди них выде­лил следующие:

  1. Ну конеч­но же новый син­так­сис триг­ге­ров. Стран­но, что они это изме­не­ние не поста­ви­ли на пер­вое место. Я уже делал замет­ку (https://t.me/srv_admin/684) по это­му пово­ду, так что не буду повто­рять­ся. Изме­не­ние очень зна­чи­мое и полезное.
  2. Пла­ни­ров­щик для pdf отче­тов. Теперь мож­но будет настро­ить отправ­ку регу­ляр­ных отче­тов себе на почту или куда-то еще. Инте­рес­ная и полез­ная воз­мож­ность. Для руко­вод­ства в самый раз.
  3. Новые рас­ши­рен­ные спо­со­бы агре­га­ции дан­ных. Это след­ствие исполь­зо­ва­ния ново­го син­так­си­са. При­ме­ры это­го уже были в замет­ке, на кото­рую дал ссыл­ку в начале.
  4. Обнов­ле­на визу­а­ли­за­ция. Как я понял, появи­лась воз­мож­ность объ­еди­нять даш­бор­ды в виде отдель­ных стра­ниц на одном экране. В целом, полез­но. Сам часто думаю о том, что пере­клю­чать­ся меж­ду даш­бор­да­ми не очень удоб­но и быст­ро. Надо бы это как-то упро­стить. При­ду­ма­ли поме­стить их во вклад­ки на даш­бор­де. Посмот­рим, удоб­но ли будет на практике.

Даль­ше изме­не­ния на мой взгляд не столь зна­чи­тель­ные, так что не буду их ком­мен­ти­ро­вать, про­сто перечислю:

  • Новые 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 версии.

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

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

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

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

Centos 8

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

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

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

Debian 10

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

Под­клю­ча­ем новый:

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

Ubuntu 20

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

Под­клю­ча­ем новый:

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

Если у вас дру­гие вер­сии систем, то про­стой най­ди­те ссыл­ки паке­тов под свою вер­сию в офи­ци­аль­ном репо­зи­то­рии — https://repo.zabbix.com/zabbix/5.4/ Даль­ней­шее обнов­ле­ние не будет отли­чать­ся от текущего.

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

Установка обновления zabbix 5.2 до 5.4

Centos 8

Для нача­ла про­ве­рим спи­сок уста­нов­лен­ных паке­тов zabbix в системе.

Уста­нав­ли­ва­ем обнов­ле­ние zabbix на сер­вер Centos 8, выби­рая уста­нов­лен­ные у вас пакеты:

После завер­ше­ния обнов­ле­ния, запус­ка­ем zabbix-server.

Про­ве­ря­ем лог сер­ве­ра. Необ­хо­ди­мо дождать­ся обнов­ле­ния базы дан­ных. Важ­но не тро­гать в этот момент сер­вер, не пре­ры­вать обнов­ле­ние, не пытать­ся его пере­за­пу­стить. Если база боль­шая, обнов­ле­ние может длить­ся очень дол­го. Реко­мен­дую сна­ча­ла где-то про­те­сти­ро­вать этот про­цесс, преж­де чем обнов­лять прод.

В кон­це долж­ны полу­чить при­мер­но сле­ду­ю­щее сообщение:

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

После обнов­ле­ния пере­хо­ди­те в web интер­фейс и про­ве­ряй­те вер­сию Zabbix. Долж­на быть 5.4.

На этом обнов­ле­ния Zabbix до 5.4 на Centos завершено.

Debian / Ubuntu

Про­ве­ря­ем, какие паке­ты Zabbix у нас уста­нов­ле­ны на сервере:

Уста­нав­ли­ва­ем обнов­ле­ние zabbix server и осталь­ных паке­тов на Debian или Ubuntu сле­ду­ю­щей командой:

После завер­ше­ния обнов­ле­ния, запус­ка­ем сервер:

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

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

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

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

Теперь може­те лице­зреть обнов­лен­ную вер­сию web интер­фей­са в браузере.

Напо­ми­наю, что с обнов­ле­ни­ем 5.4 появи­лись и новые шаб­ло­ны. Они авто­ма­ти­че­ски не появят­ся у вас на сер­ве­ре. Их нуж­но будет ска­чать и импор­ти­ро­вать вруч­ную из репо­зи­то­рия - https://github.com/zabbix/zabbix/tree/release/5.4/templates. Это же каса­ет­ся и спо­со­бов опо­ве­ще­ния, кото­рые регу­ляр­но добав­ля­ют­ся. Если не обно­ви­ли их вруч­ную при пере­хо­де на 5-ю вет­ку, то так же може­те забрать их из репы и импор­ти­ро­вать к себе на сервер.