Не так давно были обновлены 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, чтобы убедиться в том, что в процессе запуска системы все обновлённые службы и модули успешно начинают свою работу.
Дополнительные источники информации:
Прекрасные статьи! Но полагаю многим было бы интересно еще разобраться, как в Icinga2 Director добавлять SNMP устройства.
На этот вопрос ответил ранее
было бы еще интересно узнать о создании уведомлений по почте с помощью Icinga2 Director. Не могли бы пролить свет?
Будет. Позже.
Пожалуйста. Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 9. Настройка e-mail оповещений в Icinga Director 1.3
Обратная ссылка: Развёртывание и настройка Icinga 2 на Debian 8.6. Часть 7. Переопределение аргументов выполнения Команд в Icinga Director 1.3 (на примере стандартного плаги /