Страницы

Сохранить статью у себя в соцсети:

четверг, 14 февраля 2013 г.

§ pgBadger: No! I'm not a fouine, I'm a badger!

PgBadger - анализатор логов PostgreSQL

pgBadger это анализатор логов PostgreSQL. Это небольшой perl скрипт призванный заменить собой такой инструмент как pgFouine который уже долгое время не развивается. pgBadger написан на чистом perl и для построения графиков использует javascript библиотеку, поэтому для их корректного отображения не придется устанавливать дополнительных модулей или пакетов. Лишь для работы с логами в CVS формате необходимо установить Text::CVS_XS модуль.  
Возможности pgBadger:
  • общая статистика по запросам;
  • самые часто выполняющиеся запросы;
  • информация по медленным запросам;
  • информация об ошибках;
  • почасовая статистика;
  • статистика по временным файлам и контрольным точкам (checkpoints);
  • статистика по блокировкам;
  • возможность разделения по типам запросов;
  • данные о соединениях и сессиях;
  • автоматическое определение формата лога;
  • возможность создания сценария для tsung (очень годный бенчмарк); 
  • и многое другое...
Хочу отметить, что по личному опыту, pgBadger более функционален и удобен чем его аналог pgFouine который к сожалению прекратил развитие. 

Установка pgBadger сводится к скачиванию архива исходных кодов и сборке скрипта. После чего его можно использовать по назначению
# wget http://sourceforge.net/projects/pgbadger/files/2.3/pgbadger-2.3.tar.gz
# tar xvzf pgbadger.tar.gz
# cd pgbadger-2.3/
# perl Makefile.pl
# make && make install

Предпочитаемая конфигурация PostgreSQL (postgresql.conf):
log_destination = 'stderr'
logging_collector = on
log_min_duration_statement = 0
log_checkpoints = on
log_connections = on
log_disconnections = on
# префикс строки для stderr формата журнала
log_line_prefix = '%t [%p]: [%l-1] '
# префикс строки для syslog формата журнала
log_line_prefix = 'db=%d,user=%u '
log_lock_waits = on
log_temp_files = 0
lc_messages = 'C'

Не рекомендуется включать log_statement так как это формат не подходит для обработки pgBadger'ом.

Как пользоваться: на обработку можно отдать как один файл так и сразу несколько. Также можно передать данные лог-файла через стандартный ввод (не работает в случае если используется cvslog формат).

формирование отчета из лога
# pgbadger /var/log/postgresql.log

формирование отчета из текущего лога и сротированных сжатых логов
# pgbadger /var/log/postgres.log.2.gz /var/log/postgres.log.1.gz /var/log/postgres.log

формирование отчета из логов попадающих в маску
# pgbadger /var/log/postgresql/postgresql-2012-05-*

исключение запросов
# pgbadger --exclude-query="^(COPY|COMMIT)" /var/log/postgresql.log

построение отчета по определенному временному промежутку
# pgbadger -b "2013-02-01 12:00:00" -e "2013-02-01 18:00:00" /var/log/postgresql.log

передача лога в stdin
# cat /var/log/postgres.log | pgbadger -

определение префикса строки для лога в stderr формате
# pgbadger --prefix '%t [%p]: [%l-1] user=%u,db=%d,client=%h' /var/log/postgresql.log
или
# pgbadger --prefix '%m %u@%d %p %r %a : ' /var/log/postgresql.log

определение префикса строки для лога в syslog формате
# pgbadger --prefix 'user=%u,db=%d,client=%h,appname=%a' /var/log/postgresql.log

формирование XML сценария с SELECT запросами для Tsung 
# pgbadger -S -o sessions.tsung --prefix '%t [%p]: [%l-1] user=%u,db=%d ' /var/log/postgresql.log

На главную "Virtualizing Linux"

Комментариев нет:

Отправить комментарий

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика