pg_diag
Описание
Данный проект предназначен для выполнения диагностики кластеров PostgreSQL. Он состоит из двух основных приложений:
Collector:
- Отвечает за сбор всесторонней информации с нод кластера.
- Получает системные данные, информацию о железе, переменные окружения, конфигурацию PostgreSQL и другие важные параметры.
- Создает архивы с собранными данными, которые можно использовать для последующего анализа.
Report:
- Использует созданные Collector архивы для каждой из нод.
- Компилирует отчеты в формате Markdown.
- Отчет включает как текущие параметры конфигурации, так и рекомендации по настройкам системы и PostgreSQL, чтобы улучшить их производительность и надежность.
Параметры запуска приложений
Collector
Приложение collector
собирает статистику из баз данных PostgreSQL. Для его запуска используются команда collect
и следующие флаги:
--db-host
,-h
: Указывает хост сервера базы данных. (Обязательно)--db-port
,-p
: Указывает номер порта сервера базы данных (по умолчанию: 5432). (Обязательно)--db-name
,-d
: Задает имя базы данных для подключения (по умолчанию: postgres). (Обязательно)--db-user
,-U
: Задает имя пользователя для подключения к базе данных (по умолчанию: postgres). (Обязательно)--db-pass
,-W
: Указывает пароль пользователя базы данных (по умолчанию: postgres). Предпочтительнее использовать флаг--ask-password
. (Не обязательно)--all
,-a
: Собирает статистику для всех баз данных (по умолчанию: false).--ask-password
: Запрашивает пароль из командной строки (по умолчанию: false).--format
: Форматирует выходной JSON файл. (по умолчанию: false)
Report
Приложение report
создает отчет на основе собранной статистики из архива с данными. Для его запуска используются команда make
и следующие флаги:
--file
,-f
: Указывает один или несколько архивов.tar.gz
, содержащих статистику, для обработки.--dir
,-d
: Указывает директорию, в которой находятся файлы статистики формата.tar.gz
.--out
,-o
: Определяет имя выходного файла отчета (по умолчанию: report.md).--master
,-m
: Указывает имя хоста мастера.
Примечание: Параметры
--file
и--dir
являются взаимоисключающими, необходимо указать один из них. Параметр--master
является необязательным, т.к. приложение может самостоятельно определить роль сервера, использовать флаг стоит в случаях, когда мастер определен неверно.
Примеры команд запуска
Сбор информации коллектором
./pg_diag_collector_linux_amd64 collect --db-host localhost --db-port 5432 --db-name postgres --db-user postgres --ask--password -a
Создание отчета (с указанием файлов коллектора)
./pg_diag_report_linux_amd64 make -f pg_diag_collect.htz-patroni-stg-1.tar.gz -f pg_diag_collect.htz-patroni-stg-2.tar.gz -f pg_diag_collect.htz-patroni-stg-3.tar.gz
Создание отчета (с указанием директории с файлами коллектора)
./pg_diag_report_linux_amd64 make --dir collector_results
Применение
Рекомендуется размещать pg_diag_collector на сервере БД и запускать его локально с ключом --db-host localhost. В этом случае собирается диагностическая информация не только об экземпляре PostgreSQL, но и об ОС. Удаленный запуск с другого сервера соберет информацию только по экземпляру, информация по ОС будет нелевантна т.к. не будет относиться к серверу БД. Ведутся работы по синхронизации.