Перейти к основному содержимому
Версия: 4.1

Обновление операционной системы

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

  1. ОС - операционная система, например AstraLinux
  2. БД - база данных
  3. USER_ADMIN - имя пользователя с достаточными правами, зачастую это admin
  4. SERVER_HOST - IP адрес или доменное имя одного из серверов кластера OpenSearch (не обязательно тот, на котором проводятся работы)
  5. PATH_SSL - директория расположения сертификатов, обычно /app/opensearch/config

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

Компоненты Smart Monitor в большинстве случаев не затрагивают системные пакеты, поэтому обновление ОС не должно повлиять на работоспособность продукта. Общий подход к обновлению ОС можно разложить по следующим этапам и лучше производить последовательно на каждом сервере, где установлены компоненты Smart Monitor:

  1. Убедиться, что обновлённая ОС есть в списке поддерживаемых Smart Monitor
  2. Проверить список изменений при обновлении
  3. При работе с узлами OpenSearch отключить аллокацию перед началом работ
  4. Остановка компонентов Smart Monitor
  5. Обновление ОС и перезагрузка сервера
  6. Запуск компонентов Smart Monitor, проверка работоспособности и включение аллокации

Проверить обновление стоит на тестовом сервере, в качестве альтернативы можно обновить ОС на сервере самомониторинга (selfmon) - этот сервер включает обычно практически все компоненты Smart Monitor, что используются на основных серверах.

Порядок обновления узлов рекомендуется следующий:

  1. Узлы кластера OpenSearch с ролью Data и типом распределения данных cold
  2. Узлы кластера OpenSearch с ролью Data и типом распределения данных warm/hot
  3. Узлы кластера OpenSearch с ролью Master и остальные роли
  4. Серверы OpenSearch Dashboards
  5. Серверы Logstash
  6. Другие серверы Smart Monitor

Более подробно по шагам обновления можно прочитать ниже.

Список поддерживаемых ОС

В большинстве случаев на популярных ОС Smart Monitor будет работать, особенно если обновление ОС не касается мажорной версии, поэтому обновление ОС не часто влияет на работоспособность.

При обновлении мажорных версий ОС стоит внимательнее проверять некоторые компоненты Smart Monitor, в частности, ElasticBeats.

Например, FileBeat 7.10.12 не поддерживает версию Ubuntu Server 22.04, но на версии 20.04 работает стабильно. Более подробно можно посмотреть на официальной странице в документации в матрице поддержки.

Список изменений при обновлении

Основные компоненты системы Smart Monitor в большинстве случаев не используют системные пакеты. Ниже перечислен список того, на что стоит обратить внимание:

  1. Стоит обратить внимание на сервер оркестрации (управления, Ansible). В частности на то, каким образом установлен сам Ansible. При установке из системных пакетов при обновлении версий могут перестать работать некоторые плейбуки Ansible.
  2. При использовании на Ansible сервере Ansible Semaphore, возможно нужно будет проверить docker контейнер (если используется), а также используемая БД, например, версию PostgreSQL
  3. На серверах сбора данных могут быть использованы скрипты, использующие системные утилиты, например, Python. Если обновление будет производится с Python 2.7 до Python 3.6, то скорее всего скрипты не будут работать.
  4. Изменения в политиках безопасности и утилитах безопасности. Например, стоит внимательно посмотреть изменения в SELinux, ACL, сетевой экран.

Действия на OpenSearch кластере

Для отключения аллокации на кластере нужно выполнить команду в консоли разработчика (Меню -> Параметры системы -> Консоль разработчика) веб интерфейса Smart Monitor:

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}

Альтернативно можно выполнить запрос из командной строки:

curl -XPUT -k -u $USER_ADMIN https://$SERVER_HOST:9200/_cluster/settings?pretty \
-H "Content-Type: application/json" \
-d '{"persistent":{"cluster.routing.allocation.enable": "none"}}'

Можно без пользователя и ключа -u, но тогда нужно указывать сертификат и ключ суперадмина. Команда будет выглядеть таким образом:

curl -XPUT -k  https://$SERVER_HOST:9200/_cluster/settings?pretty \
-H "Content-Type: application/json" \
-d '{"persistent":{"cluster.routing.allocation.enable": "none"}}' \
--cacert $PATH_SSL/ca-cert.pem \
--cert $PATH_SSL/admin-cert.pem \
--key $PATH_SSL/admin-key.pem

Для включения аллокации (включать после подключения узла в кластер) нужно выполнить команду выше, только none заменить на all, например, из консоли разработчика (Меню -> Параметры системы -> Консоль разработчика) веб интерфейса:

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "all"
}
}

Альтернативно можно выполнить запрос из командной строки:

curl -XPUT -k -u $USER_ADMIN https://$SERVER_HOST:9200/_cluster/settings?pretty \
-H "Content-Type: application/json" \
-d '{"persistent":{"cluster.routing.allocation.enable": "all"}}'

Для проверки работоспособности кластера можно использовать команду в консоли разработчика:

GET _cluster/health

Альтернативно из командной строки:

curl -k -u $USER_ADMIN https://$SERVER_HOST:9200/_cluster/health?pretty

Для проверки списка узлов и их ролей можно воспользоваться командой:

GET _cat/nodes

Из командной строки:

curl -XPUT -k -u $USER_ADMIN https://$SERVER_HOST:9200/_cat/nodes

Посмотреть параметры узлов OpenSearch, в частности тип распределения данных (routing_mode) можно командой:

GET _cat/nodeattrs

Из командной строки:

curl -XPUT -k -u $USER_ADMIN https://$SERVER_HOST:9200/_cat/nodeattrs

Отключение сервисов перед обновлением ОС

Основные сервисы Smart Monitor управляются с помощью systemctl:

systemctl stop opensearch
systemctl stop opensearch-dasboards
systemctl stop logstash
systemctl stop smartBeatManager
systemctl stop smartBeat