RES. Руководство администратора
Материал из Флора AI
Общее описание
Сервис предназначен для обеспечения доступа к отчетам kibana в интерфейсе URS и отправки в elasticsearch статистики работы роботов ses.
Термины и определения
Report Engine Service (RES) – сервис проксирования запросов к отчетам kibana в интерфейсе UPS. Сервис отображает все отчеты kibana.
Требования к окружению
Для нормальной работы сервис должен быть установлен на сервере с UPS. В процессе работы сервис взаимодействует со следующими сервисами:
• UPS – настройка осуществляется через файл /opt/ups/config.json • Kibana – настраивается через файл /opt/res/config.json. kibana может быть расположена на другом хосте • elasticsearch - настраивается через файл /opt/res/config.json. elasticsearch может быть расположена на другом хосте • SES – настраивается через файл /opt/res/config.json. SES может быть расположена на другом хосте
Установка RES
Раздел в разработке
Настройка
Файл config.json
Настройка параметров сервиса res производится в файле /opt/res/config.json
Описание параметров приведено в таблице
| Параметр | По умолчанию | Назначение |
|---|---|---|
| port | 6189 | порт api интерфейса, используется в UPS - настройка servers.res в конфиге UPS |
| servers.ses.urls | "http://127.0.0.1:6190/ses" | список серверов ses для получения статистики |
| servers.ses.timers.connect | 60 | таймаут на подключение к серверам ses. При превышении в журнал будет записана ошибка таймаута |
| servers.ses.timers.read | 120 | таймаут на чтение статистики с серверов ses. При превышении в журнал будет записана ошибка таймаута |
| servers.elastic.url | "https://10.2.0.30:9200" | сервер elasticsearch для выгрузки статистики |
| servers.elastic.username | "elastic" | пользователь elasticsearch |
| servers.elastic.password | " " | пароль пользователя elasticsearch |
| servers.elastic.timers.connect | 60 | таймаут на подключение к серверам elasticsearch. При превышении в журнал будет записана ошибка таймаута |
| servers.elastic.timers.read | 120 | таймаут на выгрузку статистики на сервер elasticsearch. При превышении в журнал будет записана ошибка таймаута |
| servers.kibana.url | "https://10.2.0.30:5601" | сервер kibana для получения отчетов |
| servers.kibana.timers.connect | 60 | таймаут на подключение к серверу kibana. При превышении в журнал будет записана ошибка таймаута |
| servers.kibana.timers.read | 120 | таймаут на чтение отчетов с сервера kibana. При превышении в журнал будет записана ошибка таймаута |
| loader.time | ["05:00", "17:00"] | ежедневное расписание загрузки статистики |
| logs.path | "logs/" | папка хранения журналов |
| logs.backups | 10 | максимальное количество журнальных файлов |
| logs.maxSize | 5242880 | максимальный размер журнального файла |
Установка и настройка kibana + elasticsearch
Для работы res нужно установить и соответствующим образом настроить elasticsearch и kibana. Без настроенного подключения к рабочим elasticsearch и kibana RES не стартует и пишет в логи ошибку.
Пример установки на один хост, без кластера.
Устанавливаем elasticsearch
dpkg -i elasticsearch-8.15.3-amd64.deb
Инсталлятор должен выдать
--------------------------- Security autoconfiguration information ------------------------------
.........
The generated password for the elastic built-in superuser is : j9Of2HyCHcK55ElgziyW
.........
-------------------------------------------------------------------------------------------------
Копируем пароль - он будет использован в разделе servers.elastic.password файла конфигурации RES.
Генерируем CA
/usr/share/elasticsearch/bin/elasticsearch-certutil ca --pem --out /etc/elasticsearch/certs/ca.zip;
cd /etc/elasticsearch/certs/;
unzip ca.zip;
С использованием CA генерируем сертификаты для elastik
/usr/share/elasticsearch/bin/elasticsearch-certutil cert \
--out /etc/elasticsearch/certs/elastic.zip \
--name elastic \
--ip 10.2.0.31, 127.0.0.1 \
--ca-cert /etc/elasticsearch/certs/ca/ca.crt \
--ca-key /etc/elasticsearch/certs/ca/ca.key \
--pem;
cd /etc/elasticsearch/certs/;
unzip elastic.zip
Правим конфиг elasticsearch /etc/elasticsearch/elasticsearch.yml
Результат:
cluster.name: res # имя кластера - призвольно
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.2.0.31 # здесь ip хоста
http.port: 9200
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
key: /etc/elasticsearch/certs/elastic/elastic.key
certificate: /etc/elasticsearch/certs/elastic/elastic.crt
certificate_authorities: /etc/elasticsearch/certs/ca/ca.crt
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
cluster.initial_master_nodes: ["hostname"] # здесь подставить имя хоста
http.host: 0.0.0.0
Внимание - копировать конфиг отсюда напрямую не получится, wiki добавляет в начало строки вместо пробела "неразрывный пробел" - yaml его не воспринимает
Стартуем сервис
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch
Проверяем с использованием пароля, сгенерированного в начале
curl -X GET -u elastic:j9Of2HyCHcK55ElgziyW https://10.2.0.31:9200 --cacert /etc/elasticsearch/certs/ca/ca.crt
Устанавливаем kibana
dpkg -i kibana-8.15.3-amd64.deb
Папка для сертификатов : mkdir -p /etc/kibana/certs/
Копируем корневой сертификат: cp -r /etc/elasticsearch/certs/ca /etc/kibana/certs/
Генерируем сертификаты для kibana
/usr/share/elasticsearch/bin/elasticsearch-certutil cert \
--out /etc/kibana/certs/kibana.zip \
--name kibana \
--ip 10.2.0.31, 127.0.0.1 \
--ca-cert /etc/elasticsearch/kibana/ca/ca.crt \
--ca-key /etc/elasticsearch/kibana/ca/ca.key \
--pem;
cd /etc/kibana/certs/;
unzip kibana.zip;
Протоколы и порты
Сервис использует порты 6157/tcp, 6170/tcp для реверс-прокси и порт 6189/tcp для доступа к api интерфейсу. Порт доступа к api может быть изменен в конфигурационном файлк
Журналы работы
Для проверки состояния сервиса выполните sudo systemctl status res.
Журнал ошибок пишется в системный журнал, для просмотра можно воспользоваться командой sudo journalctl -u res
Для увеличения информативности журналов можно выполнить от суперпользователя команду:
sed -i 's/log-level error/log-level debug/g' /etc/systemd/system/res.service && systemctl daemon-reload && systemctl restart res.service
Удаление и обновление URS
Для удаления выполните команду:
/opt/res/uninstall
Команда удалит сервис и рабочий каталог, включая все файлы конфигурации. Для обновления запустите скрипт установки как указано в п 4. При этом, обновление не изменяет файл /opt/res/config.json.