Установка компонента Kintsugi agent (DBDA) (опциональный)#

Цель выполнения#

Установка компонента Kintsugi agent (DBDA) необходима в случае, если необходимо получать метрики хоста (CPU, память) и обнаруживать установленные СУБД (PostgreSQL) на том же хосте, где установлен агент.

Последовательность действий#

Установка компонента Kintsugi agent (DBDA) делится на этапы:

  1. Ручная установка

  2. Настройка интеграций

  3. Проверка результата

Ручная установка#

Для установки Kintsugi agent (DBDA) выполните следующие шаги из-под привилегированного пользователя:

  1. Распакуйте содержимое архива kgagent-std.tar.gz:

    unzip /path/to/standard/DBDA-bin-X.X.X-XX_std-distrib.zip && \
    tar -xvf /path/to/standard/package/bh/kgagent-std.tar.gz
    
  2. Скопируйте пакет kgagent-X.X.X-XX.x86_64.rpm на хост с наблюдаемой БД и выполните его установку:

    rpm -i /path/to/standard/kgagent-X.X.X-XX.x86_64.rpm
    
  3. Если используются самоподписанные сертификаты, скопируйте сертификаты agent.crt и root_cert.crt из /path/to/standard/package/conf/conf/secrets/ssl на хост с наблюдаемой БД в директорию /etc/kgagent.

  4. Выполните конфигурацию компонента kgagent:

    • Запустив /etc/kgagent/configure.sh и ответив на вопросы мастера установки:

      sudo /etc/kgagent/configure.sh
      Enter path to kgagent client certificate [kgagent.crt]: /Абсолютный/путь/к/agent.crt
      Enter path to root certificate [ca.crt]: /Абсолютный/путь/к/root_cert.crt
      Enter kintsugi host address [kintsugi.localhost]: ДОМЕН-ИЛИ-IP-АДРЕС-KINTSUGI
      
    • Вручную в файле /etc/kgagent/config.yaml:

      Название

      Значение

      Описание

      certificate.inmemory.path_to_client_cert

      /etc/kgagent/agent.crt

      Путь до файла сертификата agent.crt

      certificate.inmemory.path_to_root_cert

      /etc/kgagent/root_cert.crt

      Путь до файла сертификата удостоверяющего центра

      auth.base_url

      https://<KINTSUGI_ADDRESS>

      URL аутентификации

      auth.api_path

      /

      Путь к ресурсу аутентификации

      auth.header_client_cert

      x-forwarded-client-cert

      Заголовок запроса с сертификатом технического пользователя

      uploader.host

      <KINTSUGI_ADDRESS>

      Адрес хоста загрузки метрик

      uploader.port

      443

      Порт хоста загрузки метрик

      uploader.endpoint

      /agents/stream

      Endpoint для загрузки метрик

      uploader.ssl_enabled

      true

      Режим работы SSL

      metadata.hosts

      <OBSERVED_DB_HOST>

      Перечень адресов хостов наблюдаемых БД

      luavm.entry_point

      /etc/kgagent/plugins/init.lua

      Путь к основному Lua-приложению, с которого начинается выполнение

      luavm.std_libs

      ["", "math", "string", "table", "io", "os", "package", "debug", "channel", "kgsys"]

      Список стандартных библиотек Lua, доступных в виртуальной машине. Пустая строка - базовые функции (_G)

      luavm.memory_limit

      512

      Максимальный объем памяти (в МБ), выделяемый для Lua-машины

      luavm.execution_timeout_sec

      300

      Максимальное время выполнения скрипта в секундах

      luavm.path

      /etc/kgagent/plugins

      Дополнительные пути поиска Lua-приложению (аналог package.path)

      Примечание

      Для запуска компонента kgagent из конфигурации по умолчанию необходимо исключить конфигурацию внешнего хранилища секретов certificate.secman.

  5. Выполните запуск компонента kgagent:

    systemctl start kgagent
    
  6. Убедитесь, что запуск прошел штатно и журнал событий не содержит ошибок:

    systemctl status kgagent
    journalctl -u kgagent
    
  7. Выполните вход в веб-интерфейс Kintsugi (DBCM) и на вкладке Метрики создайте объект мониторинга для заданной БД.

    На дашборде Метрики отобразится информация по собранным метрикам хоста.

Настройка интеграций#

Настройка интеграции с системой управления секретами#

Для интеграции Kintsugi agent (DBDA) c HashiCorp Vault/Secret Management System (далее – SecMan) определите следующие параметры в файле /etc/kgagent/config.yml:

Параметр

Пример

Обязательный к заполнению параметр (Да / Нет)

Описание

secman.host

"https://secman-example.test:8443"

Да

Адрес хоста SecMan

secman.path

"A/DEV/DBCM/KV/example-kintsugi-test/kintsugi-example-test"

Да

Путь к KV-хранилищу SecMan

secman.namespace

"EXAMPLE_NAMESPACE"

Да

Пространство имен SecMan

secman.ca_cert

"/path/to/secure_connection.crt"

Да

Цепочка доверенных удостоверяющих центров для установления безопасного соединения с SecMan

secman.certificate_parameters.secret_name

"kgagent"

Да

Имя объекта, хранящего данные о сертификатах ТУЗ

secman.certificate_parameters.client_secret_key

"client_cert.secret"

Да

Имя объекта, хранящего данные о персональном сертификате ТУЗ

secman.certificate_parameters.root_secret_key

"root_cert.secret"

Да

Имя объекта, хранящего данные о цепочке доверенных удостоверяющих центров, для установления безопасного соединения с Kintsugi (DBCM)

secman.approle.endpoint_login

"auth/approle/login"

Да

Адрес аутентификации Kintsugi agent в сервисе SecMan

secman.approle.role_id

"roleID"

Да

Идентификатор роли для аутентификации в сервисе SecMan

secman.wrapped.file

"/opt/tokens/wrapped.token"

Да

Путь до файла с упакованным токеном. При старте сервиса из этого файла считывается упакованный токен для получения secret_id. В дальнейшем в данный файл будет производиться запись обновленного упакованного токена с secret_id

secman.wrapped.key_to_get_secret_id

"secret_id"

Да

Ключ JSON-объекта, по которому будет получено значение токена

secman.wrapped.ttl

"12h"

Нет

Время жизни упакованного токена в SecMan. Поддерживаемый формат: *s/*m/*h

secman.wrapped.refresh_token_interval.min

"1h"

Нет

Минимальное значение интервала обновления упакованного токена. Поддерживаемый формат: s/*m/*h

secman.wrapped.refresh_token_interval.max

"8h"

Нет

Максимальное значение интервала обновления упакованного токена. Поддерживаемый формат: *s/*m/*h

Настройка интеграции Kintsugi agent (DBDA) с системой Kintsugi (DBCM)#

Для настройки интеграции Kintsugi agent (DBDA) с системой Kintsugi (DBCM) определите следующие параметры в файле /etc/kgagent/config.yml:

Параметр

Пример

Обязательный к заполнению параметр (Да / Нет)

Описание

application.svc_shutdown_timeout_sec

10

Нет

Максимальное время (в секундах) ожидания штатного завершения работы подсистемы сервиса

application.svc_ping_period_sec

15

Нет

Период (в секундах) проверки жизни подсистем сервиса

application.svc_ping_timeout_sec

30

Нет

Максимальное время (в секундах), в течение которого сервис ожидает подтверждения работоспособности его подсистем

application.termination_timeout_sec

30

Нет

Максимальное время (в секундах) ожидания штатного завершения работы всего сервиса

certificate.inmemory.path_to_client_cert

"/path/to/client.crt"

Да

Путь к файлу персонального сертификата технической учетной записи (ТУЗ). Параметр используется при отсутствии интеграции с сервисом SecMan

certificate.inmemory.path_to_root_cert

"/path/to/root.crt"

Да

Путь к файлу цепочки сертификатов удостоверяющих центров. Параметр используется при отсутствии интеграции с сервисом SecMan

auth.base_url

"https://example-kintsugi-test"

Да

Базовый URL для аутентификации Kintsugi agent в сервисе Kintsugi (DBCM)

auth.api_path

"/"

Да

Точка подключения для аутентификации в сервисе Kintsugi (DBCM)

auth.header_client_cert

"x-forwarded-client-cert"

Да

Заголовок, содержащий данные об общем сертификате авторизации ТУЗ в сервисе Kintsugi (DBCM)

uploader.host

"proxy-example-kintsugi-test"

Да

Адрес хоста для отправки данных о метриках

uploader.port

5050

Да

Порт agentway

uploader.endpoint

"/agents/stream"

Да

Адрес для отправки данных о метриках

uploader.ssl_enabled

false

Нет

Использование защищенного соединения с agentway

uploader.period_to_connection_check_sec

5

Нет

Период проверки WebSocket-соединения с agentway

uploader.waiting_response_from_server_sec

2

Нет

Время ожидания ответа от agentway при проверке WebSocket-соединения

uploader.min_sec_for_reconnect

1

Нет

Минимальное значение (в секундах) попытки подключения к agentway

uploader.max_sec_for_reconnect

10

Нет

Максимальное значение (в секундах) попытки подключения к agentway

uploader.scanner_period_to_send_sec

40

Нет

Период отправки собранной информации о БД

uploader.collector_period_to_send_sec

30

Нет

Период отправки собранных метрик

uploader.agent_message_buffer

10

Нет

Максимальное количество сообщений, которое может быть сохранено одновременно в канале сообщений агента

uploader.system_message_buffer

10

Нет

Максимальное количество сообщений от agentway, которое может быть сохранено одновременно в канале системных сообщений

scanner.script.exec.path

"sudo"

Да

Режим запуска скрипта поиска файлов СУБД PostgreSQL на хосте

scanner.script.exec.args

["-u", "postgres", "/usr/share/kgagent/find_postgres.sh"]

Да

Команда запуска скрипта поиска файлов СУБД PostgreSQL на хосте

scanner.scanner_buffer_size

10

Нет

Размер буфера для сбора информации о БД

scanner.scanner_period_to_collect_sec

20

Нет

Период сбора информации о БД

logging.log_level

info

Да

Уровень логирования

logging.fluent_config.inuse

false

Да

Включение / отключение отправки логов в Fluent Bit

metadata.hosts

- "hostname" - "10.XX.XX.XX"

Да

Имя / IP-адрес хоста для сбора данных о метриках

logger.timezone

UTC

Нет

Настройка таймзоны

logger.logs_path

/path/to/postgres/logs

Да

Путь до директории, где расположены логи PostgreSQL

logger.log_prefix

%t [%p]: [%l-1] app=%a,user=%u,db=%d,client=%h,type=%b

Да

Формат строки логов. Значение необходимо взять из log_line_prefix в файле postgres.conf. Если в формате в конце строки присутствует пробел - его тоже нужно прописать

logger.print_period_sec

60s

Нет

Периодичность вывода общей статистики о доступном интервале данных лог-файлов в лог приложения

logger.release_period_sec

3600s

Нет

Периодичность освобождения ресурсов чтения лог-файлов (ридеров)

logger.process_period_sec

20s

Нет

Периодичность запуска основного цикла обработки логов

Проверка результата#

Для валидации установки Kintsugi agent (DBDA) убедитесь, что:

  1. Выполнена установка Kintsugi agent (DBDA) на хосте с наблюдаемыми БД.

  2. Выполнена интеграция Kintsugi agent (DBDA) с системой управления секретами.

  3. Выполнена интеграция Kintsugi agent (DBDA) с системой Kintsugi (DBCM).