Установка компонента 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.memory_limit

      512

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

      luavm.execution_timeout_sec

      300

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

      Примечание

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

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

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

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

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

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

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

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

Параметр

Пример

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

Описание

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.encrypted_storage.data_dir

"./creds"

Да

Каталог для хранения зашифрованных креденшелов

secman.encrypted_storage.private_key_file

"private.key"

Да

Файл приватного ключа для шифрования креденшелов

secman.encrypted_storage.encrypted_creds_file

"creds.enc"

Да

Файл зашифрованных креденшелов

secman.encrypted_storage.key_context

"kgagent:dev:v1.2.3"

Да

Контекст ключа шифрования

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

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

Параметр

Пример

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

Описание

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

"kintsugi.localhost"

Да

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

uploader.port

443

Да

Порт agentway

uploader.endpoint

"/agents/stream"

Да

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

uploader.ssl_enabled

true

Да

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

uploader.min_sec_for_reconnect

10

Нет

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

uploader.max_sec_for_reconnect

40

Нет

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

scanner.scanner_buffer_size

10

Нет

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

scanner.scanner_period_to_collect_sec

50

Нет

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

scanner.script.exec.path

"sudo"

Да

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

scanner.script.exec.args

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

Да

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

collector.collector_buffer_size

10

Нет

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

collector.collector_period_to_collect_sec

10

Нет

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

metadata.hosts

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

Да

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

session.read_limit_bytes

32769

Нет

Лимит чтения (в байтах)

session.batch_size

30

Нет

Размер пакета

logging.log_level

info

Да

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

logging.fluent_config.inuse

false

Да

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

luavm.memory_limit

512

Нет

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

luavm.execution_timeout_sec

300

Нет

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

luavm.max_concurrency

10

Нет

Максимальная конкурентность Lua-скриптов

luavm.database_path.pangolin_manager_config_path

/etc/pangolin-manager/postgres.yml

Да

Путь к конфигурационному файлу Pangolin Manager

luavm.database_path.patroni_config_path

/etc/patroni/postgres.yml

Да

Путь к конфигурационному файлу Patroni

luavm.database_path.df_pg_path

/pg*

Да

Маска пути для определения директории PostgreSQL (df)

luavm.database_path.du_pg_path

/pgdata*

Да

Маска пути для определения директории данных PostgreSQL (du)

luavm.database_path.db_address

localhost:5432

Да

Адрес подключения к наблюдаемой БД

luavm.logger.timezone

Europe/Moscow

Нет

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

luavm.logger.logs_path

/pgdata/logs

Да

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

luavm.logger.log_prefix

%m [%p]

Да

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

luavm.logger.print_period_sec

15s

Нет

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

luavm.logger.release_period_sec

3600s

Нет

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

luavm.logger.process_period_sec

10s

Нет

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

luavm.logger.log_index_database_directory

/etc/kgagent/runtime/

Нет

Каталог для индекса базы данных логов

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

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

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

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

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