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 — локальная установка не требуется.
Все уроки этого курса
- pg_stat_statements: самые ресурсоёмкие запросы
- pgBadger для анализа журналов
- Пулинг соединений: PgBouncer
- Планирование ёмкости и аудит раздувания