Установка модуля анализа логов (Advanced analytics)

Важно

Для корректной работы модуля анализа логов (Advanced analytics) важно установить расширения: pg_stat_statements, pg_store_plans, auto_explain. Если у вас версия PostgresPro Standard, скачайте и установите расширение pgpro-stats-std

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

  1. Сгенерируйте ключи на сервере с Платформой:

ssh-keygen -t rsa

Важно

Ключи должны быть без парольной фразы. Это нужно для сбора статистики с наблюдаемой базы данных.

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

Для Astra Linux версии 1.8.2 «Смоленск» генерировать ключи нужно в директории /opt/tantor/eco/ssh:

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

После генерациии вручную скопируйте публичный ключ id_rsa.pub на целевой сервер в директорию /var/lib/postgresql/.ssh в файл authorized_keys.

Примечание

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

  1. Скопируйте в нужные директории созданные ключи следующей командой:

cp /root/.ssh/id_rsa* /opt/tantor/eco/ssh/
  1. Скопируйте созданный публичный ключ на сервер базы данных, выполнив следующую команду:

ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa admin@test-03.tantorlabs.ru
  1. На сервере баз данных скопируйте публичный ключ в директорию рядом с postgres и поменяйте права доступа:

mv /home/admin/.ssh /var/lib/postgresql

chmod 700 /var/lib/postgresql/.ssh
chmod 600 /var/lib/postgresql/.ssh/authorized_keys
chown -R postgres:postgres /var/lib/postgresql/.ssh
  1. Проверьте вход на сервер базы данных с помощью добавленного ключа:

ssh 'postgres@test-03.tantorlabs.ru'
  1. На сервере базы данных убедитесь, что текущей оболочкой для входа в систему является bash:

echo $SHELL
/bin/bash

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

chsh -s $(which bash)

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

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

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

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

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

Примечание

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

# Настройки для  Advanced analytics
logging_collector = on
log_line_prefix = '%m [%p:%v] [%d] %r %a '
log_lock_waits = on
lc_messages = 'en_US.UTF-8'
auto_explain.log_analyze = on
auto_explain.log_buffers = on
track_io_timing = on
auto_explain.log_nested_statements = 'true'
# установить подходящее вам значение
deadlock_timeout = 1000ms
log_min_duration_statement = 10s
pg_store_plans.min_duration = 10s
auto_explain.log_min_duration = 10s
# Обязательное условие
log_filename = 'postgresql-%F.log'
# требуется минимально для сбора логов со стороны Advanced Analytics
log_destination = 'stderr'
# минимум none для показа ошибок
log_statement = 'none'
# Для СУБД типа PostgresPro вместо ‘pg_store_plans’ указать pgpro_stats
shared_preload_libraries = 'pg_stat_statements, pg_store_plans, auto_explain'
# Настройки для  Advanced analytics end
  1. Для корректной работы модуля добавьте следующее разрешение в файле pg_hba.conf:

    host    all        postgres        127.0.0.1/32            trust
    
  2. Выполните restart наблюдаемой СУБД, чтобы применить новые параметры.

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

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

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