Обновление операционной системы
Сокращения и переменные, используемые в статье
ОС
- операционная система, например AstraLinuxБД
- база данныхUSER_ADMIN
- имя пользователя с достаточными правами, зачастую этоadmin
- SERVER_HOST - IP адрес или доменное имя одного из серверов кластера OpenSearch (не обязательно тот, на котором проводятся работы)
PATH_SSL
- директория расположения сертификатов, обычно/app/opensearch/config
Обновление ОС на сервере
Компоненты Smart Monitor в большинстве случаев не затрагивают системные пакеты, поэтому обновление ОС не должно повлиять на работоспособность продукта. Общий подход к обновлению ОС можно разложить по следующим этапам и лучше производить последовательно на каждом сервере, где установлены компоненты Smart Monitor:
- Убедиться, что обновлённая ОС есть в списке поддерживаемых Smart Monitor
- Проверить список изменений при обновлении
- При работе с узлами OpenSearch отключить аллокацию перед началом работ
- Остановка компонентов Smart Monitor
- Обновление ОС и перезагрузка сервера
- Запуск компонентов Smart Monitor, проверка работоспособности и включение аллокации
Проверить обновление стоит на тестовом сервере, в качестве альтернативы можно обновить ОС на сервере самомониторинга (selfmon
) - этот сервер включает обычно практически все компоненты Smart Monitor, что используются на основных серверах.
Порядок обновления узлов рекомендуется следующий:
- Узлы кластера OpenSearch с ролью
Data
и типом распределения данныхcold
- Узлы кластера OpenSearch с ролью
Data
и типом распределения данныхwarm/hot
- Узлы кластера OpenSearch с ролью
Master
и остальные роли - Серверы OpenSearch Dashboards
- Серверы Logstash
- Другие серверы Smart Monitor
Более подробно по шагам обновления можно прочитать ниже.
Список поддерживаемых ОС
В большинстве случаев на популярных ОС Smart Monitor будет работать, особенно если обновление ОС не касается мажорной версии, поэтому обновление ОС не часто влияет на работоспособность.
При обновлении мажорных версий ОС стоит внимательнее проверять некоторые компоненты Smart Monitor, в частности, ElasticBeats
.
Например, FileBeat 7.10.12
не поддерживает версию Ubuntu Server 22.04
, но на версии 20.04 работает стабильно. Более подробно можно посмотреть на официальной странице в документации в матрице поддержки.
Список изменений при обновлении
Основные компоненты системы Smart Monitor в большинстве слу чаев не используют системные пакеты. Ниже перечислен список того, на что стоит обратить внимание:
- Стоит обратить внимание на сервер оркестрации (управления, Ansible). В частности на то, каким образом установлен сам Ansible. При установке из системных пакетов при обновлении версий могут перестать работать некоторые плейбуки Ansible.
- При использовании на Ansible сервере Ansible Semaphore, возможно нужно будет проверить docker контейнер (если используется), а также используемая БД, например, версию PostgreSQL
- На серверах сбора данных могут быть использованы скрипты, использующие системные утилиты, например, Python. Если обновление будет производится с Python 2.7 до Python 3.6, то скорее всего скрипты не будут работать.
- Изменения в политиках безопасности и утилитах безопасности. Например, стоит внимательно посмотреть изменения в 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