ОписаниеLink to Описание

Данный проект предназначен для выполнения диагностики кластеров PostgreSQL. Он состоит из двух основных приложений:

  1. Collector:

    • Отвечает за сбор всесторонней информации с нод кластера.
    • Получает системные данные, информацию о железе, переменные окружения, конфигурацию PostgreSQL и другие важные параметры.
    • Создает архивы с собранными данными, которые можно использовать для последующего анализа.
  2. Report:

    • Использует созданные Collector архивы для каждой из нод.
    • Компилирует отчеты в формате Markdown.
    • Отчет включает как текущие параметры конфигурации, так и рекомендации по настройкам системы и PostgreSQL, чтобы улучшить их производительность и надежность.

Параметры запуска приложенийLink to Параметры запуска приложений

CollectorLink to 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)

ReportLink to Report

Приложение report создает отчет на основе собранной статистики из архива с данными. Для его запуска используются команда make и следующие флаги:

  • --file, -f: Указывает один или несколько архивов .tar.gz, содержащих статистику, для обработки.
  • --dir, -d: Указывает директорию, в которой находятся файлы статистики формата .tar.gz.
  • --out, -o: Определяет имя выходного файла отчета (по умолчанию: report.md).
  • --master, -m: Указывает имя хоста мастера.

Примечание: Параметры --file и --dir являются взаимоисключающими, необходимо указать один из них. Параметр --master является необязательным, т.к. приложение может самостоятельно определить роль сервера, использовать флаг стоит в случаях, когда мастер определен неверно.

Примеры команд запускаLink to Примеры команд запуска

Сбор информации коллекторомLink to Сбор информации коллектором

./pg_diag_collector_linux_amd64 collect --db-host localhost --db-port 5432 --db-name postgres --db-user postgres --ask--password -a
BASH

Создание отчета (с указанием файлов коллектора)Link to Создание отчета (с указанием файлов коллектора)

./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
BASH

Создание отчета (с указанием директории с файлами коллектора)Link to Создание отчета (с указанием директории с файлами коллектора)

 ./pg_diag_report_linux_amd64 make --dir collector_results
BASH

ПрименениеLink to Применение

  Рекомендуется размещать pg_diag_collector на сервере БД и запускать его локально с ключом --db-host localhost. В этом случае собирается диагностическая информация не только об экземпляре PostgreSQL, но и об ОС. Удаленный запуск с другого сервера соберет информацию только по экземпляру, информация по ОС будет нелевантна т.к. не будет относиться к серверу БД. Ведутся работы по синхронизации.