Установка модуля Расширенной аналитики (Advanced analytics)

Модуль Расширенной аналитики предназначен для выявления проблемных запросов, отображения планов проблемных запросов и выдачи рекомендаций по устранению проблем.

Для корректной работы модуля нужно дополнительно собирать статистику и планы запросов.

На каждой наблюдаемой СУБД выполните следующие действия:

  1. Установите расширения pg_stat_statements, auto_explain.

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

  3. Установите ssh сервер и ssh токен для подключения сборщика логов pg_monitor_collector.

  4. Добавьте политику доступа в pg_hba.conf.

  5. После настройки откройте первый раз раздел Расширенной аналитики (Advanced analytics).

Важно

Понадобится restart экземпляра СУБД

Решение возможных проблем установки

  1. На сервере базы данных убедитесь, что текущей оболочкой для входа в систему является bash:

    echo $SHELL
    /bin/bash
    

Если это не так, установите bash текущей оболочкой для входа командой chsh, после установки введите пароль:

chsh -s $(which bash)

Чтобы проверить смену оболочки, перезайдите в систему и ещё раз выполните:

echo $SHELL
/bin/bash
  1. Убедитесь, что на сервере базы данных существует пользователь postgres.

  2. Убедитесь, что на сервере базы данных доступна команда psql.

  3. Убедитесь, что на сервере базы данных не отключен параметр ssh-сервера AllowTcpForwarding:

    grep "AllowTcpForwarding"  /etc/ssh/sshd_config
    
  4. После создания ключей RSA перезапустите контейнер коллектора Расширенной аналитики. Для этого на сервере в папке с файлами Платформы выполните следующую команду:

    docker restart pg_monitor_collector
    
  5. В браузере перейдите на страницу pg-monitor и убедитесь, что хост наблюдаемой базы присутствует в списке:

    https://<platform-domain>/pg-monitor/hosts
    
  6. В Платформе на странице Advanced analytics убедитесь, что список процессов (pid) не пуст:

Создание ключей RSA

  1. На сервере с Платформой сгенерируйте ключи RSA в директории /opt/tantor/eco/ssh:

    ssh-keygen -t rsa -f /opt/tantor/eco/ssh/id_rsa
    

    Примечание

    Ключи должны быть без парольной фразы.

    При наличии старой пары ключей программа предложит их перезаписать.

  2. Скопируйте созданный публичный ключ на сервер СУБД (для примера test-03.tantorlabs.ru):

    ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@test-03.tantorlabs.ru
    

    Предупреждение

    Для Astra Linux версии 1.8.2 «Смоленск» после генерации вручную скопируйте публичный ключ id_rsa.pub на сервер с наблюдаемой СУБД в директорию /var/lib/postgresql/.ssh в файл authorized_keys.

  1. На сервере СУБД убедитесь, что id_rsa.pub находится в authorized_keys, и выставлены соответствующие права postgres:postgres файлам:

    chmod 700 /var/lib/postgresql/.ssh
    chmod 600 /var/lib/postgresql/.ssh/authorized_keys
    chown -R postgres:postgres /var/lib/postgresql/.ssh
    
  2. Проверьте вход на сервер СУБД с помощью роли postgres и ssh-ключа:

    ssh 'postgres@test-03.tantorlabs.ru'
    
  3. После создания пары ключей RSA перезапустите контейнер коллектора Расширенной аналитики. Для этого на сервере в папке с файлами Платформы выполните следующую команду:

    docker restart pg_monitor_collector
    

Настройка параметров наблюдаемой СУБД

Для корректной работы модуля установите следующие параметры в файле postgresql.conf:

Примечание

Эти настройки можно применить с помощью модуля конфигурации Платформы. Рекомендуемые значения для параметров будут указаны в соответствующем столбце.

Параметр

Значение

logging_collector

on

log_destination

stderr

log_checkpoints

on

log_connections

off

log_lock_waits

on

log_autovacuum_min_duration

0

log_line_prefix

%m [%p:%v] [%d] %Q %r %a

lc_messages

C

deadlock_timeout

1000

log_statement

none

log_min_duration_statement

10000

shared_preload_libraries

auto_explain

auto_explain.log_min_duration

10000

auto_explain.log_nested_statements

on

auto_explain.log_analyze

on

auto_explain.log_buffers

on

auto_explain.log_triggers

on

auto_explain.log_timing

on

track_io_timing

on

compute_query_id

on

Важно

Некоторые параметры потребуют restart экземпляра СУБД для вступления в силу.

Настройка политики доступа на наблюдаемой СУБД

Коллектор модуля Расширенной аналитики подключается к наблюдаемой БД, для этого ему нужна роль postgres, а также политика доступа в файле pg_hba.conf:

host    all        postgres        127.0.0.1/32            trust

Так как коллектор подключается по ssh на хост с СУБД, ему нужны лишь локальные политики доступа, вход нужно оставить без пароля.

Важно

Понаадобится restart экземпляра СУБД.