Установка модуля Расширенной аналитики (Advanced analytics)
Модуль Расширенной аналитики предназначен для выявления проблемных запросов, отображения планов проблемных запросов и выдачи рекомендаций по устранению проблем.
Для корректной работы модуля нужно дополнительно собирать статистику и планы запросов.
На каждой наблюдаемой СУБД выполните следующие действия:
Установите расширения pg_stat_statements, auto_explain.
Настройте конфигурацию.
Установите ssh сервер и ssh токен для подключения сборщика логов pg_monitor_collector.
Добавьте политику доступа в pg_hba.conf.
После настройки откройте первый раз раздел Расширенной аналитики (Advanced analytics).
Важно
Понадобится restart экземпляра СУБД
Решение возможных проблем установки
На сервере базы данных убедитесь, что текущей оболочкой для входа в систему является bash:
echo $SHELL /bin/bash
Если это не так, установите bash текущей оболочкой для входа командой chsh, после установки введите пароль:
chsh -s $(which bash)Чтобы проверить смену оболочки, перезайдите в систему и ещё раз выполните:
echo $SHELL /bin/bash
Убедитесь, что на сервере базы данных существует пользователь
postgres.Убедитесь, что на сервере базы данных доступна команда
psql.Убедитесь, что на сервере базы данных не отключен параметр ssh-сервера
AllowTcpForwarding:grep "AllowTcpForwarding" /etc/ssh/sshd_config
После создания ключей RSA перезапустите контейнер коллектора Расширенной аналитики. Для этого на сервере в папке с файлами Платформы выполните следующую команду:
docker restart pg_monitor_collector
В браузере перейдите на страницу pg-monitor и убедитесь, что хост наблюдаемой базы присутствует в списке:
В Платформе на странице Advanced analytics убедитесь, что список процессов (pid) не пуст:
Создание ключей RSA
На сервере с Платформой сгенерируйте ключи RSA в директории /opt/tantor/eco/ssh:
Скопируйте созданный публичный ключ на сервер СУБД (для примера 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.
На сервере СУБД убедитесь, что 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
Проверьте вход на сервер СУБД с помощью роли postgres и ssh-ключа:
ssh 'postgres@test-03.tantorlabs.ru'
После создания пары ключей 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-порта
Чтобы отредактировать информацию, выполните следующие действия:
Авторизуйтесь в Платформе и перейдите к пространствам тенанта.
Перейдите на страницу «Системные действия» по следующему адресу:
https://<platform-domain>/syslog/dashboard
На открывшейся странице в списке выберите нужный хост и нажмите на иконку карандаша
.Проверьте, что в разделе «Доступ к логу» выбран тип ssh.
Выберите тип подключения «custom».
Измените данные и нажмите на «Сохранить».