Диагностика работы модуля Advanced analytics
Шаг 1.
Проверить, что в директории:
/opt/tantor/eco/ssh
лежат ключи:
id_rsa
id_rsa.pub
Для этого выполните:
ls -la /opt/tantor/eco/ssh
Если указанных файлов там нет, то переходим к решению.
- Решение
Если указанные ключи сгенерированы и лежат в домашней папке:
ls -la $HOME/.ssh
То необходимо просто их скопировать:
cp $HOME/.ssh/id_rsa* /opt/tantor/eco/ssh/
Если же их нет и там, то сгенерировать ключи командой:
ssh-keygen -t rsa
И после этого скопировать в требуемую папку:
cp $HOME/.ssh/id_rsa* /opt/tantor/eco/ssh/
Шаг 2.
Проверить доступ с хоста платформы к хосту с целевой БД (выполнять от имени пользователя под которым запущена платформа и для которого сгенерированы ключи):
ssh postgres@<DB host name or ip>
Если вход не осуществляется, то необходимо выполнить:
ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa.pub postgres@<DB host name or ip>
*При выполнении может потребоваться ввести пароль для пользователя postgres
Аналогичное действие если скопировать содержимое ключа id_rsa.pub в файл authorized_keys расположенный на хосте с БД в домашней директории пользователя postgres. Как правило это:
/var/lib/postgresql/
В итоге у вас должен появиться файл:
/var/lib/postgresql/.ssh/authorized_keys
Результат проверить всё той же командой:
ssh postgres@<DB host name or ip>
Шаг 3.
На хосте с наблюдаемой базой данных убедиться что установлено расширение pg_stat_statements.
postgres@deb-127-2:~$ psql
psql (15.8 (Debian 15.8-0+deb12u1))
Type "help" for help.
postgres=# \dx
List of installed extensions
Name | Version | Schema | Description
--------------------+---------+------------+------------------------------------------------------------------------
pg_stat_statements | 1.10 | public | track planning and execution statistics of all SQL statements executed
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(2 rows)
postgres=#
Если расширение pg_stat_statements не установлено, установите его следующей командой
create extension pg_stat_statements;
Шаг 4.
На хосте с наблюдаемой базой данных убедиться что добавлены разрешения в файле pg_hba.conf
host all postgres 127.0.0.1/32 trust # pg-monitor : ssh port forwarding IPv4
host all postgres ::1/128 trust # pg-monitor : ssh port forwarding IPv6
Если нет то добавьте эти правила. Должна выполняться
Шаг 5.
Убедитесь что предыдущие шаги выполнены верно, выполнив проверку
root@deb-127-1:~# ssh 'postgres@deb-127-2.local.net'
Last login: Wed Oct 30 11:35:54 2024 from 192.168.5.214
postgres@deb-127-2:~$
postgres@deb-127-2:~$ psql -h 127.0.0.1 -p 5432 -U postgres -c "SELECT clock_timestamp(), count(*) FROM pg_stat_get_activity(NULL);"
clock_timestamp | count
-------------------------------+-------
2024-10-30 03:37:35.309063-05 | 9
(1 row)
postgres@deb-127-2:~$
Если данная команда не выполняется, проверьте предыдущие шаги
Шаг 6.
Для отображения логов обязательными параметрами postgresql являются
# требуется минимально для сбора логов со стороны Advanced Analytics
lc_messages = 'en_US.UTF-8'
logging_collector = on
log_destination = 'stderr'
log_filename = 'postgresql-%F.log'
log_line_prefix = '%m [%p:%v] [%d] %r %a '
Шаг 7.
# Настройки для Advanced analytics BEGIN log_lock_waits = on 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 |
Шаг 8.
Перезапустите контейнер отвечающий за аналитику:
docker restart pg_monitor_collector
Шаг 9.
Проверьте работу модуля.
Если проблема всё еще не решена — обращайтесь в поддержку.