Установка модуля Расширенной аналитики (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 '
deadlock_timeout = 1000
log_statement = none
log_min_duration_statement = 10000
shared_preload_libraries = 'pg_stat_statements, 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 экземпляра СУБД.

Редактирование ssh-порта

Чтобы отредактировать информацию, выполните следующие действия:

  1. Авторизуйтесь в Платформе и перейдите к пространствам тенанта.

  2. Перейдите на страницу «Системные действия» по следующему адресу:

    https://<platform-domain>/syslog/dashboard
    
  3. На открывшейся странице в списке выберите нужный хост и нажмите на иконку карандаша edit.

  4. Проверьте, что в разделе «Доступ к логу» выбран тип ssh.

  5. Выберите тип подключения «custom».

  6. Измените данные и нажмите на «Сохранить».