Шаг 1.

Проверить, что в директории:

/opt/tantor/eco/ssh

лежат ключи:

id_rsa

id_rsa.pub

Для этого выполните:

ls -la /opt/tantor/eco/ssh
CODE

Если указанных файлов там нет, то переходим к решению.

  • Решение

Если указанные ключи сгенерированы и лежат в домашней папке:

ls -la $HOME/.ssh
CODE

То необходимо просто их скопировать:

cp $HOME/.ssh/id_rsa* /opt/tantor/eco/ssh/
CODE

Если же их нет и там, то сгенерировать ключи командой:

ssh-keygen -t rsa
CODE

И после этого скопировать в требуемую папку:

cp $HOME/.ssh/id_rsa* /opt/tantor/eco/ssh/
CODE

Шаг 2.

Проверить доступ с хоста платформы к хосту с целевой БД (выполнять от имени пользователя под которым запущена платформа и для которого сгенерированы ключи):

ssh postgres@<DB host name or ip>
CODE

Если вход не осуществляется, то необходимо выполнить:

ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa.pub postgres@<DB host name or ip>
CODE

*При выполнении может потребоваться ввести пароль для пользователя postgres


Аналогичное действие если скопировать содержимое ключа id_rsa.pub в файл authorized_keys расположенный на хосте с БД в домашней директории пользователя postgres. Как правило это:

/var/lib/postgresql/

В итоге у вас должен появиться файл:

/var/lib/postgresql/.ssh/authorized_keys

Результат проверить всё той же командой:

ssh postgres@<DB host name or ip>
CODE

Шаг 3.

В платформе на вкладке Configurations найти параметр log_line_prefix и убедиться что ему присовено значение(после %a идёт знак пробела):

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


Если нет то поменяйте его.

Шаг 4.

Убедитесь что логирование включено. В платформе на вкладке Configurations найти параметр logging_collector и убедиться что ему присовено значение:

on

Если нет то поменяйте его.

Шаг 5.

# Настройки для  Advanced analytics BEGIN
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_stat_statements , pg_store_plans’ указать pgpro_stats
shared_preload_libraries = 'pg_stat_statements, pg_store_plans, auto_explain'
# Настройки для  Advanced analytics END

Шаг 6.

Перезапустите контейнер отвечающий за аналитику:

docker restart pg_monitor_collector
CODE

Шаг 7.

Проверьте работу модуля.


Если проблема всё еще не решена — обращайтесь в поддержку.