Глоссарий#
Термины и сокращения, которые используются для описания внутреннего устройства и функций программы:
Термин | Описание, комментарий |
---|---|
Ansible | ПО с открытым исходным кодом, которое автоматизирует установку программного обеспечения, управление конфигурацией и развёртывание приложений |
API | Application Programming Interface, программный интерфейс приложения |
Corosync | Программное обеспечение, позволяющее объединять сервера в кластер |
CPU | Central Processing Unit, центральный процессор |
Dashboard | Графический интерфейс, отображающий ключевые метрики и показатели процессов |
IP-адрес | Уникальный сетевой адрес узла в компьютерной сети, построенной на основе стека протоколов TCP/IP |
JSON | JavaScript Object Notation. Текстовый формат обмена данными, который представлен наборами пар “ключ-значение” |
NTP | Network Time Protocol. Сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью |
Pacemaker | Программное обеспечение – менеджер ресурсов кластера |
PostgreSQL | Свободная объектно-реляционная система управления базами данных |
RAM | Random Access Memory, оперативная память |
RPM | Red Hat Package Manager. Формат пакетов программного обеспечения, используемые в ряде Linux-дистрибутивов |
SSH | Secure Shell – сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений |
SSL | Secure Sockets Layer – уровень защищенных сокетов – криптографический протокол, который подразумевает более безопасную связь. Он использует асимметричную криптографию для аутентификации ключей обмена, симметричное шифрование для сохранения конфиденциальности, коды аутентификации сообщений для целостности сообщений |
web-IPMI | Интерфейс управления ЭВМ, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ |
База данных | Объект сервиса СУБД, в котором пользователи создают таблицы, представления, хранимые процедуры |
Инстанс | Экземпляр PostgreSQL, запущенный на одном из серверов сегментов, хранящий и обрабатывающий свою часть данных. Экземпляр класса в объектно-ориентированном программировании |
Кластер | Объект управления верхнего уровня; группа узлов, на которой запускаются сервисы СУБД |
ОС | Операционная Система |
ПО | Программное Обеспечение |
ПАК | Программно-аппаратный комплекс, совокупность аппаратных компонент (сервера, коммутаторы доступа и т.п.) и программного обеспечения, решающих некие прикладные задачи (машина баз данных, система управления виртуализацией и т.д.) |
Сервис СУБД | Целостная служба СУБД, работающая на конкретном кластере |
СУБД | Система Управления Базами Данных |
Узел | Сервер, входящий в кластер, на котором устанавливается ПО СУБД для запуска экземпляров СУБД и организации из них сервисов СУБД |
ЭВМ | Электронно-Вычислительная Машина |
1 Общие сведения#
1.1 Область применения программы#
Основным предназначением Модуля управления кластером “Скала^р Спектр” (далее – “Спектр”) является предоставление возможности управления жизненным циклом ПАК семейства СКАЛА персоналом, к квалификации которого не предъявляется серьезных требований, в том числе персоналом сторонних организаций.
Основными задачами, решаемыми “Спектром”, являются:
- Вывод узла ПАК из эксплуатации на обслуживание и его ввод в работу;
- Остановка и запуск сервисов СУБД;
- Остановка и запуск кластеров;
- Выполнение операций над базами данных в сервисах СУБД;
- Мониторинг узлов кластера и сервисов СУБД;
- Снижение трудоемкости и времени обновления приложений и операционных систем за счет использования готовых эталонных образов.
“Спектр” должен обеспечивать реализацию следующих возможностей:
- Регистрация (импорт) существующего кластера;
- Регистрация кластеров Postgres из JSON, предоставляемого REST API Модуля Управления ПАК;
- Управление кластерами для операций «старт кластера» и «остановка кластера»;
- Управление узлами кластера для операций «старт узла кластера», «остановка узла кластера», «вывод узла на обслуживание», «возвращение узла из обслуживания»;
- Управление сервисами СУБД для операций «изменение конфигурации сервиса» и «применение измененной конфигурации сервиса»;
- Отображение данных из Модуля Мониторинга;
- Добавление сервиса СУБД в кластер / удаление сервиса СУБД из кластера;
- Добавление расширений СУБД Postgres;
- Активация расширений СУБД Postgres;
- Создание кластера Postgres, построенного с использованием компонентов Pacemaker и Corosync.
1.2 Уровень подготовки администраторов#
Администратор должен обладать следующими навыками:
- установка, настройка системного программного обеспечения в ОС Linux;
- просмотр и редактирование файлов с использованием команд ls, cat, less, vim, nano.
2 Условия применения программы#
2.1 Условия, необходимые для выполнения программы#
Работа “Спектра” в основном режиме осуществляется путем отправки управляющих воздействий через SSH или при помощи HTTP-запросов к Агенту “Спектра”. Это означает, что сервер с развернутым “Спектром” должен находится в одной сети c обслуживаемыми серверами.
Оптимальным решением является выделение под “Спектр” отдельного виртуального сервера в рамках хоста управления ПАК.
Тип реализующей ЭВМ: x86-64.
Минимальная аппаратная конфигурация сервера для установки “Спектра”:
- CPU: от 2 ядер;
- RAM: от 16 Гб;
- ROM: от 600 Гб SSD для системных компонент;
- NET: от 1 Гб Ethernet.
Для установки “Спектра” требуется наличие ПО ОС “АльтЛинукс 8 СП pелиз 9” или “АльтЛинукс 8 СП pелиз 10” на хосте “Спектра”, а также наличие запущенной в составе Узла управления виртуальной машины с ПО “Геном”.
2.2 Используемые сетевые порты#
ПOPT | ПРОТОКОЛ | НАЗНАЧЕНИЕ |
---|---|---|
8092 | HTTPS | На хосте “Спектра”, для доступа к веб-интерфейсу Спектра. |
9000 | HTTP | На узлах кластера, для доступа к API агента “Спектра” |
22 | SSH | На узлах кластера, для установки агентов “Спектра” |
TCP/IP | На узлах кластера, для доступа к PostgreSQL (порты зависят от настроек сервисов в кластере) | |
80 | HTTP | На хосте с ПО “Геном”, для доступа к HTTP репозиториям пакетов для установки “Спектра”. |
50888 | HTTP | На хосте с ПО “Геном”, для доступа к API ПО “Геном” |
3 Установка программы#
![]() |
---|
В приведенных в данном руководстве примерах команд в качестве интерпретатора команд терминала используется Bash.
Примеры команд приведены вместе с приглашением интерпретатора команд, которое может отличаться у пользователя. В данном руководстве в приглашении интерпретатора команд выводятся имя пользователя, имя узла, на котором запускаются команды, и текущий каталог, в котором находится пользователь. Приглашение интерпретатора команд заканчивается символом “#”, что означает, что все команды выполняются под привилегированным пользователем root. Если приглашение заканчивается символом “$”, это означает что пользователь, выполняющий установку, не является привилегированным и при запуске команд необходимо повышение привилегий пользователя при помощи команды sudo.
При вводе команд пользователю не требуется вводить приглашение интерпретатора. Например, если в руководстве приводится команда
[root@spectrum-host ~]# mkdir -p spectrum-dist
это означает, что в терминале необходимо вводить только
mkdir -p spectrum-dist
3.1 Установка основного ПО “Спектр”#
Дистрибутив “Спектра” представляет собой tar.gz архив, который необходимо распаковать в произвольный каталог на хосте “Спектра”, например в /root/spectrum-dist.
![]() |
---|
Распакованный архив содержит все RPM пакеты, необходимые для работы “Спектра”, а также скрипт установки install.sh.
Для установки необходимо перейти в директорию, в которую был распакован архив, и выполнить скрипт install.sh:
[root@spectrum-host ~]# mkdir -p spectrum-dist
[root@spectrum-host ~]# tar -xvf spectrum-dist-altlinux8.4-v1.1.70.tar.gz -C ./spectrum-dist
[root@spectrum-host ~]# cd spectrum-dist/spectrum-rpm-dist-v1.1.70
[root@spectrum-host spectrum-rpm-dist-v1.1.70]# ./install.sh
В ходе установки будут созданы все необходимые каталоги, установлено необходимое ПО (Ansible и необходимые для работы python-библиотеки), установлено ПО СУБД Postgres, создана необходимая для работы “Спектра” база данных.
В ходе установки пользователю необходимо ввести IP-адрес и порт, по которому доступно ПО модуля управления ПО «Скала^р Геном»:
[root@spectrum-host spectrum-0.1.0]# ./install.sh
Enter host IP for Genome: 1.2.3.4
Также в ходе установке необходимо ввести IP-адрес ПО “Скала^Р Визион”:
Enter host IP for Vision: 1.2.3.5
3.2 Установка дополнительного ПО “Спектр”#
Для корректной работы всех функций “Спектра” требуется установка на узлы кластеров, которыми управляет “Спектр”, следующего дополнительного программного обеспечения:
- Агент “Спектра”,
- Агент уведомлений “Спектра”,
а также установка на хосте “Спектра” ПО PgAdmin для администрирования СУБД.
Установка дополнительных компонентов “Спектра” выполняется в два этапа:
- установка Агента “Спектра” на узлы кластера выполняется до импорта кластера в “Спектр”;
- установка Агента уведомлений “Спектра”, выполняется после импорта кластера в “Спектр”.
Установка дополнительных компонентов “Спектра” выполняется с хоста “Спектра” из терминала, аналогично установке самого “Спектра”.
В каталоге дистрибутива “Спектра” при помощи любого текстового редактора необходимо отредактировать файл inventory_samples/cluster.yml, введя параметры кластера и узлов, узнать их можно в инсталляционной карте Машины МБД.П (должны быть указаны IP-адреса в сети управления).
Если каталог, в который распакован дистрибутив “Спектра” – это /root/spectrum-dist, то полный путь к нужному файлу будет /root/spectrum-dist/spectrum-rpm-dist-v1.1.70/inventory_samples/cluster.yml. Проверить наличие файла можно командой ls:
ls /root/spectrum-dist/spectrum-rpm-dist-v1.1.70/inventory_samples/cluster.yml
Просмотреть содержимое файла cluster.yml можно, например, командой cat:
cat /root/spectrum-dist/spectrum-rpm-dist-v1.1.70/inventory_samples/cluster.yml
![]() |
---|
3.2.1 Установка PgAdmin#
Дистрибутив PgAdmin представляет собой tar.gz архив pgadmin_dist_alt84_rpm.tar.gz, который необходимо распаковать в произвольный каталог на хосте “Спектра”, например в /root/spectrum-dist.
![]() |
---|
Распакованный архив содержит образы docker-контейнеров, необходимых для работы PgAdmin, а также скрипт установки deploy.sh.
Для установки необходимо перейти в директорию, в которую был распакован архив, и выполнить скрипт deploy.sh:
[root@spectrum-host ~]# mkdir -p spectrum-dist
[root@spectrum-host ~]# tar -xvf pgadmin-dist_altlinux84.tar.gz -C
[root@spectrum-host ~]# cd spectrum-dist/pgadmin-dist
[root@spectrum-host spectrum-rpm-dist-v1.1.70]# ./deploy.sh
3.2.2 Установка агента “Спектра”#
Для установки Агента “Спектра” в файле cluster.yml, описанном в п. 3.2, необходимо заполнить раздел hosts, в котором надо указать IP-адреса узлов кластера. Должны быть указаны IP-адреса в сети управления, узнать их можно в инсталляционной карте Машины МБД.П.
![]() |
---|
Полученный файл можно сохранить для использования в последующих обновлениях “Спектра”. Например, скопировать в домашний каталог пользователя, под которым выполняется установка “Спектра”. Для этого перейти в каталог, в который распакован архив с дистрибутивом “Спектра”. Например, если распаковали архив в /root/spectrum-dist, то выполнить команду
[root@spectrum-host ~]# cd /root/spectrum-dist/root/spectrum-dist/spectrum-rpm-dist-v1.1.70
и скопировать файл при помощи команды cp:
[root@spr-test-installer_v1_1 spectrum-rpm-dist-v1.1.70]# cp inventory_samples/cluster.yml ~
После заполнения IP-адресов узлов кластера можно перейти к установке Агента “Спектра” на узлы кластера.
Установка производится из каталога, в который распакован архив с дистрибутивом “Спектра”. Например, если распаковали архив в /root/spectrum-dist, то выполнить команду
cd /root/spectrum-dist/root/spectrum-dist/spectrum-rpm-dist-v1.1.70
И далее выполнить следующие команды:
source /opt/skala-r/spectrum/python-modules/bin/activate
ansible-playbook -i inventory_samples/cluster.yml deploy_spectrum_agent.yml -k
Если ранее была сделана копия файла cluster.yml, то последняя команда будет иметь вид:
ansible-playbook -i ~/cluster.yml deploy_spectrum_agent.yml -k
После запуска требуется ввести пароль пользователя root для доступа к узлам кластера.
При успешном выполнении команды должны отсутствовать сообщения об ошибках, а в итоговом отчете о запуске плейбука должны отсутствовать шаги со статусом failed.
Далее необходимо выполнить импорт кластера в “Спектр” с использованием графического веб-интерфейса. Подробнее об импорте кластеров см. в документе “Руководство пользователя», раздел 7.2 “Добавление найденного кластера”.
3.2.3 Установка агента уведомлений “Спектра”#
Перед установкой Агента уведомлений “Спектра” кластеры должны быть видны в графическом интерфейсе и иметь статус “Доступен”, например:
Для установки Агента уведомлений “Спектра” потребуются IP-адрес хоста “Спектра” и ID импортированного кластера.
IP-адрес отображается в адресной строке браузера, в котором открыт веб-интерфейс “Спектра”. ID кластера также отображаются в веб-интерфейсе в адресной строке браузера при переходе на страницу информации о кластере.
В приведенном примере IP-адрес “Спектра” - “192.168.190.138”, ID кластера — это значение “24ed3935-e6ce-4e72-8163-d2078f40d70c”.
Полученные ID кластера и IP-адрес необходимо вписать в соответствующие строки секции “recipients” того же файла cluster.yml, который использовался для установки Агента “Спектра” (см. п. 3.2.2):
Для кластера, приведенного в примере выше, итоговое содержимое файла inventory_samples/cluster.yml будет иметь вид:
all:
vars:
ansible_user: root
ansible_ssh_extra_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
rpm_mode: True
# Параметры для установки алерт-агента
recipients:
- name: spectrum
# указать uuid кластера в Спектре, полученный UI Спектра
cluster_id: 24ed3935-e6ce-4e72-8163-d2078f40d70c
# указать реальный IP адрес Спектра, доступ к котором есть с узла кластера
spectrum_host: 192.168.190.138
[root@spectrum-public-121 ~]#
hosts:
# указать реальные IP адреса узлов кластера, к которым есть доступ с узла Спектра
node01:
ansible_host: 192.168.190.116
node02:
ansible_host: 192.168.190.117
node03:
ansible_host: 192.168.190.118
Далее для установки Агента уведомлений перейти в каталог, в который распакован архив с дистрибутивом “Спектра”. Например, если распаковали архив в /root/spectrum-dist, то выполнить команду
cd /root/spectrum-dist/root/spectrum-dist/spectrum-rpm-dist-v1.1.70
и далее следующие команды:
source /opt/skala-r/spectrum/python-modules/bin/activate
ansible-playbook -i inventory_samples/cluster.yml deploy_spectrum_alert_agent.yml -k
Если ранее была сделана копия файла cluster.yml, то последняя команда будет иметь вид:
ansible-playbook -i ~/cluster.yml deploy_spectrum_alert_agent.yml -k
После запуска требуется ввести пароль пользователя root для доступа к узлам кластера.
При успешном выполнении команды в отчете о запуске плейбука должны отсутствовать шаги со статусом failed, при первой установке агента уведомлений будут присутствовать шаги со статусом ignored и сообщение об ошибке с пометкой “…ignoring”:
4 Установка обновлений программы#
Установка обновлений ПО “Спектр” и дополнительного ПО выполняется в случае, если на хосте “Спектра” уже существует ранее установленные версии ПО. Для установки и для обновления “Спектра” используется один и тот же пакет установочных файлов, поставляемый в виде архива с именем spectrum-dist-altlinux<номер версии>-v<номер версии Спектра>.tar.gz, например spectrum-dist-altlinux8.4-v1.1.70.tar.gz.
4.1 Обновление ПО “Спектр”#
Новый архив с дистрибутивом “Спектра” необходимо распаковать в произвольный каталог на хосте “Спектра”, например в /root/spectrum-dist.
Распакованный архив содержит все RPM-пакеты, необходимые для работы “Спектра”, а также скрипт установки install.sh и скрипт обновления update.sh.
Для обновления необходимо перейти в директорию, в которую был распакован архив, и выполнить скрипт update.sh:
[root@spectrum-host ~]# mkdir -p spectrum-dist
[root@spectrum-host ~]# tar -xvf spectrum-dist-altlinux8.4-v1.2.0.tar.gz -C ./spectrum-dist
[root@spectrum-host ~]# cd spectrum-dist/spectrum-rpm-dist-v1.2.0
[root@spectrum-host ~]# rpm -Uvh rpm/spectrum-venv-*.rpm
[root@spectrum-host spectrum-rpm-dist-v1.2.0]# ./update.sh
4.2 Обновление дополнительного ПО “Спектр”#
Шаги, необходимые для обновления дополнительного ПО “Спектр”, за исключением PgAdmin, полностью повторяют шаги первичной установки. Подробно установка дополнительного ПО описана в разделе 3.2 “Установка дополнительного ПО “Скала^р Спектр”.
При выполнении обновления “Спектра” для кластеров, импортированных в “Спектр” до выполнения обновления, необходимо выполнить процедуру перевода в режим использования Агента.
Для этого требуется выполнить HTTP запрос к API “Спектра”, например, при помощи команды curl. В адресе, на который выполняется запрос, используется ID кластера, который может быть получен из веб-интерфейса “Спектра”:
curl http://localhost:8092/api/spectrum/001/cluster/24ed3935-e6ce-4e72-8163-d2078f40d70c/agent -d '{"use_agent": true}' -X PUT -H "Content-Type: application/json"
Если команда введена корректно, то в выводе будут отсутствовать сообщения об ошибках:
{"result": {"update_cluster_agent_use_mode": 0}, "errors": []}
4.2.1 Обновление PgAdmin#
Дистрибутив PgAdmin представляет собой tar.gz архив pgadmin_dist_alt84_rpm.tar.gz, который необходимо распаковать в произвольный каталог на хосте “Спектра”, например в /root/pgadmin-dist.
![]() |
---|
Распакованный архив содержит образы docker-контейнеров, необходимые для работы PgAdmin, а также скрипт обновления update.sh.
Для обновления необходимо перейти в директорию, в которую был распакован архив, и выполнить скрипт update.sh. Для этого нужно выполнить следующие команды:
[root@spectrum-host ~]# mkdir -p spectrum-dist
[root@spectrum-host ~]# tar -xvf pgadmin_dist_alt84_rpm.tar.gz -C ./spectrum-dist
[root@spectrum-host ~]# cd spectrum-dist/pgadmin-dist
[root@spectrum-host pgadmin-dist]# ./update.sh
5 Проверка программы#
5.1 Отображение веб-интерфейса#
По завершении процесса установки, должен быть доступен веб-интерфейс “Спектра” через браузер по адресу https://<хост “Спектра”>:8092:
5.2 Проверка установки модулей#
Модули системы установлены в каталог /opt/skala-r/spectrum:
- dashboards - конфигурация мониторинга “Спектра”;
- spectrum-api — REST API “Спектра”;
- spectrum-scheduler — модуль выполнения задач по расписанию;
- spectrum-task-daemon — модуль выполнения задач по запросу;
- spectrum-ui — файлы веб интерфейса;
- modules/spectrum_pcs_pgsql — модуль управления кластером Postgres;
- python-modules - дополнительные python-библиотеки, необходимые для работы “Спектра”.
Проверить наличие модулей командой ls -l:
ls -l /opt/skala-r/spectrum
Пример вывода команды:
5.3 Проверка состояния и управление сервисами “Спектра”#
По завершении процессов установки в системе будут запущены сервисы:
- spectrum-api.service — сервис http API, реализующего взаимодействие пользовательского интерфейса с системой;
- spectrum-tasks.service — демон, предназначенный для выполнения задач (выполняет запрос к spectrum-api и получает список невыполненных заданий);
- spectrum-scheduler.service — демон, предназначенный для выполнения задач по расписанию.
Логи работы spectrum-api, spectrum-tasks, spectrum-scheduler сохраняются в /var/log/spectrum/spectrum_api.log, spectrum_task_daemon.log, spectrum_scheduler.log соответственно с ротацией.
5.3.1 Ручная остановка, запуск или перезапуск сервисов#
Для ручной остановки, запуска или перезапуска сервисов используются стандартные механизмы systemctl, например:
systemctl stop spectrum-tasks
systemctl start spectrum-tasks
systemctl restart spectrum-tasks
5.3.2 Проверка статусов сервисов#
Для проверки статуса сервисов используется стандартный механизм systemctl. Проверить состояние сервисов можно посредством выполнения следующих команд:
systemctl status spectrum-tasks
Пример активного сервиса spectrum-tasks:
systemctl status spectrum-api
Пример активного сервиса spectrum-api:
systemctl status spectrum-scheduler
Пример активного сервиса spectrum-scheduler:
5.4 Проверка состояния дополнительного ПО “Спектра”#
Проверка состояния агента “Спектра” и агента уведомлений “Спектра” выполняется на узлах кластера.
5.4.1 Проверка состояния агента “Спектра”#
Проверить корректность настройки можно, выполнив команду:
systemctl status spectrum-agent
Пример активного сервиса spectrum-agent:
5.4.2 Проверка состояния агента уведомлений “Спектра”#
Проверить корректность настройки можно, выполнив команду:
pcs alert
Пример вывода команды:
В выводе команды используются имена файлов, наличие которых можно проверить при помощи команды ls:
Файл, указанный в блоке Recipient команды pcs alert, должен содержать IP-адрес “Спектра” и ID кластера, который был настроен на этапе установки дополнительного ПО “Спектр”, см. раздел 3.2 данного документа. Посмотреть содержимое файла можно при помощи команды cat:
5.4.3 Проверка состояния PgAdmin#
На хосте “Спектра” выполнить команду:
docker ps
При корректной установке PgAdmin должен отобразиться список контейнеров со статусом Up. Пример вывода команды:
Также, в веб-интерфейсе при нажатии на пункт меню “PgAdmin” в новой вкладке браузера должна открываться форма авторизации PgAdmin:
5.5 Просмотр состояния системного ПО#
При работе “Спектр” использует следующее системное ПО, существенно влияющее на функционирование “Спектра”:
- Веб-сервер Nginx;
- СУБД PostgreSQL.
Состояние веб-сервера Nginx можно проверить при помощи команды:
systemctl status nginx
Пример вывода команды:
Состояние СУБД PostgreSQL можно проверить при помощи команды:
[root@spectrum-host ~]# systemctl status postgresql
Пример вывода команды:
5.6 Просмотр логов сервисов#
5.6.1 Просмотр логов основного ПО “Спектра”#
Просмотреть логи работы сервисов за интересующий период возможно, используя службу журналирования логов journalctl, например:
journalctl -u <имя сервиса> --since "начало интервала YYYY-MM-DD hh:mm:ss" --until "конец интервала YYYY-MM-DD hh:mm:ss"
Просмотреть текущие логи в режиме онлайн можно, используя службу журналирования логов journalctl, выполнив команду:
journalctl -fu <имя сервиса>
где <имя сервиса> - название одного из сервисов “Спектра”:
- spectrum-api;
- spectrum-tasks;
- spectrum-scheduler;
- spectrum-agent.
![]() |
---|
Пример запуска команды:
journalctl -u spectrum-api --since "2022-10-26 11:05:00" --until "2022-10-26 11:10:00"
Пример вывода команды:
Возможно также просмотреть лог-файлы сервисов “Спектра”:
-
/var/log/spectrum/spectrum-api.log;
-
/var/log/spectrum/spectrum-task-daemon.log;
-
/var/log/spectrum/spectrum-scheduler.log.
Для Агентов “Спектра” файлы расположены на узлах кластера:
-
/var/log/spectrum/alert_manager/alert_manager.log;
-
/var/log/spectrum/spectrum-agent.log.
Для просмотра логов в режиме онлайн можно использовать команду tail:
tail -f /var/log/spectrum/spectrum-api.log
5.6.2 Просмотр логов дополнительного ПО “Спектра”#
Просмотр логов Nginx
Просмотреть логи работы веб-сервера Nginx за интересующий период можно, используя службу журналирования логов journalctl, например:
journalctl -u nginx --since "2023-06-01 16:00:00" --until "2023-06-01 16:05:00"
Просмотреть текущие логи в режиме онлайн можно, используя службу журналирования логов journalctl, выполнив команду:
journalctl -fu nginx
Веб-сервер Nginx также записывает логи запросов и ошибок в файлы /var/log/nginx/access.log и /var/log/nginx/error.log соответственно.
Для просмотра логов в режиме онлайн можно использовать команду tail:
tail /var/log/nginx/access.log tail /var/log/nginx/error.log
![]() |
---|
5.6.3 Просмотр логов PostgreSQL#
Просмотреть логи СУБД PostgreSQL за интересующий период можно, используя службу журналирования логов journalctl, например:
journalctl -u postgresql --since "2023-06-01 16:00:00" --until "2023-06-01 16:05:00"
Просмотреть текущие логи в режиме онлайн можно, используя службу журналирования логов journalctl, выполнив команду:
journalctl -fu postgresql
![]() |
---|
5.7 Просмотр файлов конфигурации#
При установке “Спектра” для каждого сервиса создаются файлы конфигурации. Файлы конфигураций могут быть изменены администратором в процессе эксплуатации.
Пути расположения файлов конфигурации:
Сервис Спектра | Расположение | Название systemd-юнита | Путь к файлу конфигурации |
---|---|---|---|
API “Спектра” | Хост “Спектра” | spectrum-api | /opt/skala-r/spectrum/spectrum-api/config.conf |
Служба выполнения фоновых задач | Хост “Спектра” | spectrum-tasks | /opt/skala-r/spectrum/spectrum-tasks-daemon/config.conf |
Служба выполнения задач по расписанию | Хост “Спектра” | spectrum-scheduler | /opt/skala-r/spectrum/spectrum-scheduler/config.conf |
Агент “Спектра” | Узлы кластера | spectrum-agent | /opt/skala-r/spectrum/spectrum-agent/config.conf |
Агент уведомлений “Спектра” | Узлы кластера | - | /opt/skala-r/spectrum/alert-agent/spectrum.json |
Для просмотра файла конфигурации можно использовать команду cat, например:
cat /opt/skala-r/spectrum/spectrum-api/config.conf
Примеры файлов конфигураций приведены в Приложении 1 данного руководства.
6 Устранение неисправностей “Спектра”#
6.1 Не открывается веб-интерфейс “Спектра”#
6.1.1 Описание неисправности#
В браузере отображается сообщение об ошибке браузера, например “Unable to connect”
6.1.2 Способ устранения#
1 Проверить корректность указания порта и протокола в адресной строке браузера. При использовании протокола HTTP-порт “Спектра” по умолчанию 8092, при использовании протокола HTTPS используется порт 443, который можно не указывать в явном виде.
Ниже приведены корректные способы указания адреса “Спектра” в браузере:
2 Если адрес введен корректно, проверить статус веб-сервера Nginx на хосте “Спектра”, выполнив команду:
systemctl status nginx
Если статус веб-сервера отличается от “active (running)”, запустить веб-сервер командой:
systemctl start nginx
6.2 В веб-интерфейсе отсутствуют данные об объектах управления#
6.2.1 Описание неисправности#
Веб-интерфейс “Спектра” открывается, но в списке кластеров, узлов, сервисов отображается сообщение “Нет данных”, хотя ранее данные были.
6.2.2 Способ устранения#
На хосте “Спектра” проверить статус СУБД PostgreSQL командой:
systemctl status postgresql
1 Если статус отличается от “active (running)”, запустить веб-сервер командой:
systemctl start postgresql
2 Если в выводе статуса присутствуют сообщения о том, что закончилось свободное место на диске, необходимо освободить место на диске. Например, могут быть удалены или перемещены на другой диск старые файлы логов “Спектра”, расположенные в папке /var/log/spectrum. После очистки места на диске повторить запуск PostgreSQL, см. п. 1.
6.3 В веб-интерфейсе отображаются сообщения об ошибках при получении данных#
6.3.1 Описание неисправности#
При открытии страницы спектра появляются сообщения об ошибках.
6.3.2 Способ устранения#
1 На хосте “Спектра” проверить статус сервиса spectrum-api:
systemctl status spectrum-api
2 Если статус отличается от “active (running)”, запустить сервис командой:
systemctl start spectrum-api
3 Проверить работоспособность веб-сервера Nginx. См. описание неисправности “Не открывается веб-интерфейс “Спектра””.
6.4 В веб-интерфейсе отображаются устаревшие данные об объектах управления#
6.4.1 Описание неисправности#
В веб-интерфейсе “Спектра” отображаются статусы объектов управления, не соответствующие реальным статусам объектов. Например, в “Спектре” отображается статус узла “Резерв”, а в выводе команды управления кластерным ПО Pacemaker/Corosync “pcs status” статус узла Online.
6.4.2 Способ устранения#
1 На хосте “Спектра” проверить статус сервиса spectrum-scheduler, отвечающего за обновление данных об объектах управления в “Спектре”:
systemctl status spectrum-scheduler
Если статус отличается от “active (running)”, запустить сервис командой:
systemctl start spectrum-scheduler
2 Если сервис spectrum-scheduler работает корректно, то необходимо проверить доступность узлов кластера с хоста “Спектра”.
Для этого через веб-интерфейс получить IP-адреса узлов кластера, через которые “Спектр” осуществляет управление кластером, они отображаются на странице, доступной через пункт левого меню “Узлы”:
С хоста “Спектра” при помощи команды ping проверить доступность узла:
ping 192.168.190.71
Если в выводе команды ping присутствуют сообщения о недоступности узла – устранить проблему сетевой связности между хостом “Спектра” и узлом кластера.
3 Если узел доступен с хоста “Спектра”, на узле необходимо проверить статус Агента “Спектра”:
systemctl status spectrum-agent
Если статус отличается от “active (running)”, запустить сервис командой:
systemctl start spectrum-agent
6.5 Операция завершается с сообщением об ошибке Агента “Спектра”#
6.5.1 Описание неисправности#
При запуске операций над объектами управления одна из задач завершается с сообщениями об ошибках выполнения запросов к Агенту “Спектра”.
6.5.2 Способ устранения#
На всех узлах кластера, над которым выполнялась операция, проверить статус Агента “Спектра” и при необходимости запустить сервис spectrum-agent, см. шаг 3 в разделе “В веб-интерфейсе отображаются устаревшие данные об объектах управления”.
ПРИЛОЖЕНИЯ#
Приложение 1. Примеры файлов конфигураций#
Файл конфигурации spectrum-api#
[database_config]
host_db=127.0.0.1
port_db=5432
dbname=spectrum
username_db=admin
password_db=gvYviwgskDug
[bottle]
modules_dir=/opt/skala-r/spectrum/modules
dashboards_dir=/opt/skala-r/spectrum/dashboards
[genome_config]
host=192.168.190.100
port=50888
base_url=/api/genome/v001/ spectrum
username_db=genome
password_db=Ohs7ingohs2W
[vision_config]
host=192.168.190.133
port=8428
base_url=/vision/victoriametrics/api/v1
; Пример конфигурации для аутентификации
; В случае использования аутентификации - раскомментировать секцию auth
; и заполнить реальными параметрами
[auth]
auth_server=http://192.168.191.19:8080
realm=spectrum
client id=spectrum-users
client_secret=7Mqg3pEgRK@SPCdnujv3mNrSINmOFUjF
enabled=1
Файл конфигурации spectrum-tasks#
[app]
modules_dir=/opt/skala-r/spectrum/modules
log_level=DEBUG
[database_config]
database_config.dbname=postgres
database_config.username_db=genome
database_config.password_db=Ohs7ingohs2W
[spectrum__api]
host=localhost
port=8000
Файл конфигурации spectrum-scheduler#
[app]
modules_dir=/opt/skala-r/spectrum/modules
1og_level=DEBUG
[database_config]
database_config.dbname=postgres
database_config.username_db=genome
database_config.password_db=0hs7ingohs2W
[spectrum]
host=localhost
port=8000
[spectrum_agent]
port=9000
Файл конфигурации spectrum-agent#
{
"log": {
"level": "debug",
"type": "file"
"path": "/var/log/spectrum/"
},
"host": {
"port": "9000"
},
"status": {
"frequency": 5
}
}
Описание полей файла конфигурации:
Поле файла конфигурации | Описание поля |
---|---|
log | Параметры логирования |
log.level | Уровень логирования |
log.type | Тип логирования. В примере используетя логирование в файл |
log.path | Путь к каталогу, в котором располагаются файлы логов Агента “Спектра” |
host.port | Порт, на котором запущен Агент “Спектра” |
status.frequency | Частота расчета конфигурации кластера в секундах |
Файл конфигурации Агента уведомлений “Спектра”#
{
"spectrum_host": "192.168.186.201",
"spectrum_port": "8092",
"cluster_id": "e219blae-94bf-4e0e-a9db-a/f206f1666e",
"proto": "https",
}
Описание полей файла конфигурации:
Поле файла конфигурации | Описание поля |
---|---|
spectrum_host | IP-адрес Спектра, на который будут отправляться уведомления о событиях кластера |
spectrum_port | Порт, на котором запущен API Спектра |
cluster_id | id кластера в Спектре, для которого настраиваются уведомления |
proto | Протокол, с помощью которого будут отправляться уведомления. Может принимать значения “https” или “http” |
Приложение 2. Настройка пользователей в KeyCloak#
![]() |
---|
Для работы со “Спектром” при включенной авторизации необходимо настроить пользователей в KeyCloak.
Сначала необходимо выбрать нужный Realm (рабочее пространство) в выпадающем списке над меню или создать новый (на скриншоте ниже выбрано значение “test-docs-realm”). После задания нужного Realm надо перейти в раздел “Клиенты” (”Clients”) и нажать на кнопку “Создать клиента” ("Create client"):
В поле “Client ID” нужно ввести идентификатор клиента и нажать кнопку “Далее” ("Next"). Заданный ID клиента будет в дальнейшем использоваться в параметрах конфигурации “Спектра”:
На следующей странице:
- включить переключатель “Аутентификация клиента” ("Client authentication"),
- выставить флаг “Standart Flow”,
- выставить флаг “Direct access grants”,
после чего нажать кнопку “Сохранить” ("Save").
Эти параметры позднее можно изменить в настройках клиента.
Перейти во вкладку “Настройки” ("Settings"), в поле “Валидация URI перенаправления” ("Valid redirect URIs") добавить IP-адрес “Спектра” в формате
PROTO://IP:XXXX/*
где
- PROTO - http или https, в зависимости от настроек SSL “Спектра” (см. п. 3.3);
- IP - IP адрес “Спектра”;
- XXXX - порт “Спектра” для доступа к веб-интерфейсу.
Нажать кнопку “Сохранить” ("Save").
Во вкладке “Учетные данные” ("Credentials") есть поле “Секрет” ("Client secret"), значение которого будет в дальнейшем использоваться в параметрах конфигурации “Спектра”. Значение можно скопировать в буфер обмена, нажав на соответствующую кнопку возле поля:
Перейти во вкладку “Роли” ("Roles"), нажать кнопку “Создать роль” ("Create role"):
На экране создания роли ввести имя роли и нажать “Сохранить” ("Save"):
В примере, приведенном в данном руководстве, должны быть созданы две роли: “spectrum-ro” и “spectrum-rw”.
Перейти в пункт меню “Пользователи” ("Users") и на странице “Пользователи” ("User list") нажать кнопку “Создать пользователя” ("Create new user"):
На экране создания пользователя:
- ввести желаемое имя пользователя,
- включить “E-mail подтвержден” ("Email verified"),
- нажать кнопку “Создать” ("Create").
В примере, приведенном в данном руководстве, будет создано два пользователя: “sprtest” и “sprtest-rw”.
Перейти в пункт меню “Пользователи” и выбрать созданного пользователя, кликнув по его имени:
Перейти во вкладку “Учетные данные” ("Credentials"), нажать на кнопку “Установить пароль” ("Set password"):
В появившемся окне задать пароль, повторить пароль и выключить признак “Временный” ("Temporary"), если не требуется смена пароля пользователем при первом входе. Нажать кнопку “Сохранить” ("Save"):
Перейти во вкладку “Сопоставление ролей” ("Role mapping"), нажать кнопку “Назначить роль” ("Assign role"):
На экране назначения ролей:
- в выпадающем списке фильтра выбрать “Отсортировать по клиентам” ("Filter by client"),
- ввести полностью или частично имя необходимой роли/общей части имени ролей, созданной ранее,
- выбрать роли для назначения данному пользователю, выставив соответствующие флаги,
- нажать кнопку “Назначить” ("Assign").
В примере, приведенном в данном руководстве, пользователю sprtest назначается роль spectrum-ro, а пользователю sprtest-rw – spectrum-ro и spectrum-rw.
После настройки необходимо включить настроенный Realm, если этого не было сделано ранее. Для этого нужно перейти в пункт меню “Настройки реалма” ("Realm settings") и включить переключатель “Включен” ("Enabled"):