Обновляем Icinga 2, Icinga Web 2 и Icinga Director до актуальных версий

Не так давно были обновлены Icinga 2 до версии 2.6 и Icinga Web 2 до версии 2.4, о чём было объявлено в первой половине Декабря прошлого года. По классическому сценарию первые баги новых релизов были отловлены теми отважными самураями, которые обновились сразу после объявления релиза. В конце Января этого года объявлено о выпуске корректирующих релизов, направленных в основном на исправление ошибок предыдущего релиза. Список исправленных текущим релизом проблем можно найти по ссылкам Icinga 2.6.1 и Icinga Web 2.4.1.

Кроме того, в Январе появилась информация о новом релизе Icinga Director 1.3.0. Ознакомится со списком изменений можно в документе 82-Changelog.md.

Рассмотрим кратенько пример того, как произвести обновление. Разумеется, стоит помнить про то, что перед процедурой обновления не помешает сделать резервную копию Icinga. Как минимум, можно создать резервную копию виртуальной машины сервера Icinga, если он работает в виртуальной среде. Дополнительно можно сделать дамп баз данных с помощью утилит mysqldump или pg_dump

 

Обновляем Icinga 2 и Icinga Web 2

Сначала обновим ранее установленную систему Icinga 2. Описание процесса обновления можно найти в онлайн-документе Upgrading Icinga 2. Процедура обновления сводится к обновлению исполняемых файлов Icinga и обновлению схемы базы данных IDO. В нашем ранее рассматриваемом примере установка Icinga 2 производилась из пакетов репозитория проекта Debian Monitoring Project (debmon), поэтому и обновлять эту систему мы будем методом обновления пакетов:

# apt-get update
# apt list --upgradable | grep icinga

icinga2/debmon-jessie 2.6.1-1~debmon8+1 amd64 [upgradable from: 2.6.0-2~debmon8+1]
icinga2-bin/debmon-jessie 2.6.1-1~debmon8+1 amd64 [upgradable from: 2.6.0-2~debmon8+1]
icinga2-common/debmon-jessie 2.6.1-1~debmon8+1 all [upgradable from: 2.6.0-2~debmon8+1]
icinga2-doc/debmon-jessie 2.6.1-1~debmon8+1 all [upgradable from: 2.6.0-2~debmon8+1]
icinga2-ido-mysql/debmon-jessie 2.6.1-1~debmon8+1 amd64 [upgradable from: 2.6.0-2~debmon8+1]
icingacli/debmon-jessie 2.4.1-1~debmon8+1 all [upgradable from: 2.4.0-1~debmon8+1]
icingaweb2/debmon-jessie 2.4.1-1~debmon8+1 all [upgradable from: 2.4.0-1~debmon8+1]
icingaweb2-common/debmon-jessie 2.4.1-1~debmon8+1 all [upgradable from: 2.4.0-1~debmon8+1]
icingaweb2-module-doc/debmon-jessie 2.4.1-1~debmon8+1 all [upgradable from: 2.4.0-1~debmon8+1]
icingaweb2-module-monitoring/debmon-jessie 2.4.1-1~debmon8+1 all [upgradable from: 2.4.0-1~debmon8+1]
libicinga2/debmon-jessie 2.6.1-1~debmon8+1 amd64 [upgradable from: 2.6.0-2~debmon8+1]
php-icinga/debmon-jessie 2.4.1-1~debmon8+1 all [upgradable from: 2.4.0-1~debmon8+1]

Как видим, вместе с обновлениями Icinga 2 нам доступны и обновления пакета Icinga Web 2. Выполняем обновление:

# apt-get upgrade

После обновления пакетов, выполним обновление схемы базы данных DB IDO. В используемом ранее примере развёртывания мы использовали MySQL, поэтому и обновлять мы будем схему исходя из рекомендаций для MySQL.

Посмотрим, появился ли sql-скрипт обновления схемы IDO после обновления пакетов:

#  ls -la /usr/share/icinga2-ido-mysql/schema/upgrade/

-rw-r--r-- 1 root root  934 Jan 31 13:18 2.0.2.sql
-rw-r--r-- 1 root root  737 Jan 31 13:18 2.1.0.sql
-rw-r--r-- 1 root root 1026 Jan 31 13:18 2.2.0.sql
-rw-r--r-- 1 root root 1268 Jan 31 13:18 2.3.0.sql
-rw-r--r-- 1 root root 3139 Jan 31 13:18 2.4.0.sql
-rw-r--r-- 1 root root 5304 Jan 31 13:18 2.5.0.sql
-rw-r--r-- 1 root root 5459 Jan 31 13:18 2.6.0.sql

Как видим, в имеющемся наборе sql-скриптов обновления схемы отсутствует скрипт с именем равным новой версии Icinga, поэтому обновление схемы базы данных IDO не требуется.

Если же в обновлённом наборе скриптов был бы доступен новый скрипт, например 2.6.1.sql, то применили бы мы его следующим образом:

# mysql -u root -p icingadb < /usr/share/icinga2-ido-mysql/schema/upgrade/2.6.1.sql

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

Если для IDO вместо MySQL вы используете PostgreSQL, то инструкции по обновлению схемы БД будут несколько иными. Найти их можно в документах upgrading-icinga-2 или 16-upgrading-icinga-2.md 

Перезапустим службу icinga2 и проверим её состояние:

# systemctl restart icinga2.service
# systemctl status icinga2.service

Никаких явных ошибок при перезапуске появляться не должно.

Перейдём в веб-консоль Icinga Web 2 и проверим информацию о главном процессе сервера Icinga 2 перейдя в меню навигации в System > Monitoring Health

В меню System > About можем проверить информацию о версии интерфейса Icinga Web 2 и его модулей:

Как видим, Icinga 2 и Icinga Web 2 обновлены до актуальных версий. Переходим к обновлению модуля Icinga Director

 

Обновляем модуль Icinga Director

Чтобы получить информацию об особенностях обновления до текущего релиза, стоит заглянуть в документ 05-Upgrading.md

В ранее рассматриваемом примере мы разворачивали Icinga Director 1.2.0 из клонированной копии файлов из GitHub с помощью команды git clone в каталог /usr/share/icingaweb2/modules/director

Переходим в каталог с git-клоном Icinga Director и выполняем запрос об изменениях релизов в онлайн-репозитории:

# cd /usr/share/icingaweb2/modules/director
# git fetch -t

remote: Counting objects: 19575, done.
remote: Compressing objects: 100% (6422/6422), done.
remote: Total 19575 (delta 12484), reused 19178 (delta 12099), pack-reused 0
Receiving objects: 100% (19575/19575), 3.40 MiB | 1.31 MiB/s, done.
Resolving deltas: 100% (12484/12484), completed with 311 local objects.
From https://github.com/Icinga/icingaweb2-module-director
   67411c3..aa0c04d  master     -> origin/master
 * [new tag]         v1.0.0     -> v1.0.0
 * [new tag]         v1.1.0     -> v1.1.0
 * [new tag]         v1.2.0     -> v1.2.0
 * [new tag]         v1.3.0     -> v1.3.0

Как видим, нам доступен релиз 1.3.0. Применяем релиз:

# git checkout v1.3.0

Note: checking out 'v1.3.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at d4b2810... HostController: jsut a newline to make phpcs happy

Переходим в веб-консоль Icinga Web 2, в меню навигации выбираем Configuration > Modules и убеждаемся в том, что отображается обновлённая версия модуля director

Далее в меню навигации выбираем пункт Icinga Director и в случае, если доступна кнопка применения миграции схемы БД ( Apply * pending schema migrations ), нажимаем её:

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

 

Дополнительные источники информации:

Всего комментариев: 6 Комментировать

  1. pompoko /

    Прекрасные статьи! Но полагаю многим было бы интересно еще разобраться, как в Icinga2 Director добавлять SNMP устройства.

    1. Алексей Максимов / Автор записи

      На этот вопрос ответил ранее

  2. gksnov /

    было бы еще интересно узнать о создании уведомлений по почте с помощью Icinga2 Director. Не могли бы пролить свет?

    1. Алексей Максимов / Автор записи

      Будет. Позже.

  3. Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 7. Переопределение аргументов выполнения Команд в Icinga Director 1.3 (на примере стандартного плаги /

Добавить комментарий