Установка модуля Расширенной аналитики (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 |
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 экземпляра СУБД.