0Pricing
SQL Academy · Урок

pgBadger для анализа журналов

Запускайте pgBadger для журналов Postgres, чтобы создавать отчёты HTML о медленных запросах, ожидании блокировок и схемах подключений

«pgBadger для анализа журналов» — бесплатный урок SQL Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения SQL Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс SQL Academy содержит 4 уроков всего.

Что такое pgBadger

Анализатор журналов PostgreSQL на Perl, который создаёт наглядные отчёты в HTML о медленных запросах, ожидании блокировок, ошибках и шаблонах подключений. Периодически запускайте его для анализа журналов.

Настройка журналирования

postgresql.conf:

log_destination = 'csvlog'
logging_collector = on
log_directory = 'pg_log'
log_min_duration_statement = '500ms'
log_lock_waits = on
log_temp_files = 0
log_checkpoints = on
log_connections = on
log_disconnections = on
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '

Запуск pgBadger

Создайте отчёт:

pgbadger /var/log/postgresql/postgresql-2024-03-15.csv \
  -o report.html

# Multiple files:
pgbadger /var/log/postgresql/*.csv -o report.html

Что входит в отчёт

  • Самые медленные запросы с примерами
  • Самые частые запросы
  • Запросы, потребляющие больше всего времени
  • Ожидание блокировок
  • Ошибки
  • Изменение шаблонов подключений во времени
  • Использование временных файлов
  • Активность контрольных точек и очистки

Инкрементальный режим

Для непрерывного анализа журналов создавайте ежедневные отчёты:

pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/*.csv
# Updates an HTML dashboard incrementally.

Автоматический запуск через Cron

Ночная задача:

0 1 * * * pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/postgresql-`date +%F`.csv

Сравнение с pg_stat_statements

pg_stat_statements: агрегированные метрики внутри базы данных.
pgBadger: разбирает исходные журналы и находит шаблоны, которые не видны в агрегированных данных, например ожидание блокировок, ошибки и всплески подключений.

Поиск шаблонов ожидания блокировок

pgBadger обобщает ожидания блокировок: какие запросы блокировали другие запросы и как долго. Это отличный инструмент для диагностики взаимных блокировок и проблем конкуренции.

Раздел ошибок

Количество ошибок каждого кода. «23505 unique_violation: 12 000 раз» — тревожный сигнал: приложение повторяет попытки вставки дубликатов.

Временные файлы

Запросы, которые выгружают данные на диск (сортировка или хеширование слишком велики для work_mem):

log_temp_files = 0     -- log all temp file usage
-- pgBadger summarises queries that created temp files.

Облачные альтернативы

RDS Performance Insights, Cloud SQL Query Insights и другие сервисы выполняют похожий анализ в управляемых средах — обычно на основе тех же источников статистики.

Итоги

pgBadger превращает журналы PostgreSQL в панель мониторинга.

  • Задайте log_min_duration_statement
  • Создавайте периодические отчёты в HTML
  • Находите ожидания блокировок, временные файлы и шаблоны ошибок
  • Дополняйте им pg_stat_statements

Быстрая проверка

Вы видите, что приложение повторяет множество операторов INSERT. Какая настройка журналирования PostgreSQL поможет это подтвердить?

Часто задаваемые вопросы

Урок «pgBadger для анализа журналов» бесплатный?

Да — полный текст урока «pgBadger для анализа журналов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс SQL Academy, подпишись на CoddyKit PRO. Курс SQL Academy содержит 4 уроков всего.

Чему я научусь в уроке «pgBadger для анализа журналов»?

Запускайте pgBadger для журналов Postgres, чтобы создавать отчёты HTML о медленных запросах, ожидании блокировок и схемах подключений Ты практикуешь SQL Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать SQL Academy?

Предыдущий опыт не требуется. SQL Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «pgBadger для анализа журналов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке SQL Academy?

Да. Каждый урок SQL Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. pg_stat_statements: самые ресурсоёмкие запросы
  2. pgBadger для анализа журналов
  3. Пулинг соединений: PgBouncer
  4. Планирование ёмкости и аудит раздувания
← Назад к SQL Academy