Для установки агента Tantor и последующем добавлении инстанса СУБД в платформу необходимо перейти на сервер СУБД и произвести предложенные Платформой действия. https://docs.tantorlabs.ru/tp/5.3/instance_adding.html
!! Установку агента всегда начинаем на лидере в кластере !!
Узнаем IP адрес нашего сервера СУБД
ip a
пример вывода:
inet 10.2.0.11/24 brd 10.2.0.255 scope global eth0
Установка PMA агента Платформы Tantor при условии если везде вход по паролю и через графический интерфейс команда не проходит, то установку делаем через доп ключи читайте оф документацию https://docs.tantorlabs.ru/tp/5.3/ug_agents_config.html пример:
pmaagent configure --config_postgres_patroni -h 10.2.0.11 -p 5432 -d postgres -U postgres -W postgres -P 8008 -D
дополнительно смотрите тех документацию по ссылке выше, а также help
агента после его установки
pmaagent --help pmaagent instances add --help
sudo systemctl daemon-reload sudo systemctl start pmaagent.service sudo systemctl status pmaagent.service
Если нет связи с агентом, перезапустить демон агента
systemctl stop pmaagent.service systemctl start pmaagent.service
Конфиг агента
/var/lib/pma/agent/agent.yml
Лог агента
/var/lib/pma/agent/logs/pmaagent.log
https://docs.tantorlabs.ru/tp/5.3/pg_monitor_installation.html
Для работы Advanced analytics, создание ключей RSA под root на сервере tplatform
sudo -i ssh-keygen -t rsa
Скопируйте в нужные директории созданные ключи следующей командой:
cp /root/.ssh/id_rsa* /opt/tantor/eco/ssh/
Скопируйте созданный публичный ключ на сервер базы данных, выполнив следующую команду:
ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@db1 ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@db2 ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@db3
Проверьте возможность зайти на сервер базы данных с помощью добавленного ключа:
ssh postgres@db1 ssh postgres@db2 ssh postgres@db3
Текущий вариант через «alter system set», создаст отдельный файл /var/lib/postgresql/tantor-be-16/data/postgresql.auto.conf , который будет преобладать в приоритете при запуске СУБД над файлом postgresql.conf, что очень удобно, если мы хотим отделить изменяемые параметры от дефолтных.
Данный способ работает только в рамках текущего сервера СУБД в standalone.
В отказоустойчивых кластерах типа Patroni, необходимо использовать единую конфигурацию для всех узлов.
Также данные настройки можно применить с помощью Платформы через модуль Конфигурации.
Подключаемся к одному из серверов, где установлена СУБД Tantor, например db1 В дальнейшем эти операции нужно выполнить на каждой наблюдаемой БД.
sudo -iu postgres psql
Выполняем команды на создание расширений и параметров:
Если в параметре shared_preload_libraries
уже указаны другие расширения, то добавить pg_stat_statements, pg_store_plans
через запятую.
create EXTENSION pg_stat_statements; create EXTENSION pg_store_plans; alter system set shared_preload_libraries = pg_stat_statements, pg_store_plans, auto_explain; alter system set logging_collector = on; alter system set log_line_prefix = '%m [%p:%v] [%d] %r %a '; alter system set log_lock_waits = on; alter system set lc_messages = 'en_US.UTF-8'; alter system set track_io_timing = on; alter system set deadlock_timeout = 1000; alter system set log_min_duration_statement = 1000; alter system set log_filename = 'postgresql-%F.log'; alter system set log_destination = 'stderr'; alter system set log_statement = 'all';
Перезагрузка СУБД и проверка сервиса СУБД, должно быть active (running)
sudo systemctl restart tantor-be-server-16.service sudo systemctl status tantor-be-server-16.service
Добавляем параметры auto_explain
sudo -iu postgres psql
alter system set pg_store_plans.min_duration = 1000; alter system set auto_explain.log_min_duration = 1000; alter system set auto_explain.log_nested_statements = 'true'; alter system set auto_explain.log_analyze = on; alter system set auto_explain.log_buffers = on; SELECT pg_reload_conf();
Сколько параметров установлено в файлах параметров конфигурации
select sourcefile, count(*) from pg_settings group by sourcefile;
Какие параметры из каких файлов конфигурации были считаны и применены при запуске экземпляра Так же через этот вывод можно проверить себя, правильно ли вы задали параметры до перезагрузки СУБД.
select name, setting, substring(sourcefile, 39) file, sourceline, applied from pg_file_settings;
Для корректной работы модуля Advanced Analytics
требуется добавить следующее разрешение в файле pg_hba.conf
:
nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf
host postgres postgres 127.0.0.1/32 trust
Чтобы новые параметры pg_hba.conf
применились, выполните:
sudo -iu postgres psql -c "SELECT pg_reload_conf();"
или restart
наблюдаемой СУБД.
sudo systemctl restart tantor-be-server-16.service
Чтобы изменения вступили в силу для Advanced analytics, на сервере tplatform перезапустите контейнер
docker restart pg_monitor_collector
Посмотрите результат в Платформе, обновив страницу Overview с открытым инстансом БД в браузере.
Должны появится графики
В модуле Advanced analytics
инстансом БД также должны появиться данные
Эти параметры уже заданы, при необходимости измените под требования заказчика.
Для просмотра или изменения можно использовать Платформу Tantor или командами в psql:
alter system set <параметр = значение>; – изменить
show <параметр>; – посмотреть
logging_collector = on # Включение сбора логов log_directory = 'log' # Директория для логов (относительно PGDATA) log_filename = 'postgresql-%F.log' # Шаблон имени файла log_rotation_age = 1d # Ротация ежедневно log_rotation_size = 10MB # Или при достижении размера
Посмотреть логи по примеру, имя файла у вас будет свой:
less /var/lib/postgresql/tantor-be-16/data/log/postgresql-2023-10-01_135334.log
Даем привилегии УЗ postgres на использование crontab
sudo usermod -aG crontab postgres
Логинимся под УЗ postgres
su - postgres
Создаем скрипт очистки Вставляем строки, скрипт будет искать файлы с расширением и удалять, оставляя за последние 14 дней. Не забудьте указать правильный путь на ваши логи.
nano cleanup_logs.sh
#!/bin/bash find /var/lib/postgresql/tantor-be-16/data/log/ -type f -name "*.log" -mtime +14 -exec rm {} \; find /var/lib/postgresql/tantor-be-16/data/log/ -type f -name "*.csv" -mtime +14 -exec rm {} \;
Применяем бит исполнения файла скрипта
chmod +x cleanup_logs.sh
Вставляем задание на выполнение в cron, сохраняем и проверяем.
crontab -e
0 0 * * * /var/lib/postgresql/cleanup_logs.sh ## выполнение раз в день в 0:00
проверяем, что запись добавилась
crontab -l