Анализ логов PHP

PHP - основной из сценарных языков, на котором базируются web сайты. Для быстрой отладки ошибок на production сайте важно, чтобы все из нижеперечисленных лог-файлов было настроены для записи.

Честно говоря, особых трюков для анализа этих логов нет. Главное уметь пользоваться grep командой.

php-error.log

Наверное, один из самых известных лог файлов. В этот лог пишутся ошибки выполнения PHP кода. Косвенно показывает на то, насколько чист и хорош ваш код. Хорошо, если нет никаких "Fatal error" записей:

  1. grep "Fatal\ error" logs/php-error.log

Также периодически использую этот файл для отладки кода. Можно логировать переменные, данные через log_error() функцию. И мониторить в live-режиме:

  1. tail -f logs/php-error.log

php-slow.log

Один из недооцененных когда-то мною лог файлов. Логирует медленные транзакции PHP с backtrace списком вызова функций и файлов. Если на сайте не подключено никакой аналитики типа NewRelic, то это просто палочка-выручалочка, чтобы отловить кусок кода, который конкретно тормозит ваш сайт.

Настройка в php.ini:

  1. slowlog = /var/log/php5/slow.log
  2. request_slowlog_timeout = 10s

Анализировать этот лог файл удобно либо через какой-то редактор или же через grep, если уже знаете какую функцию или же файл нужно искать.

Для беглого анализа частоты выполнения медленных транзакций + файла, с которого началось выполнение кода:

  1. grep -B 2 "script_filename\ \=" logs/php-slow.log

php-fpm-error.log

Редко используемый для анализа файл. Но если дело касается SIGKILL, то нигде в PHP логах вы ошибок больше не найдете, как только в этом файл. SIGKILL обычно сразу убивает PHP процесс, не давая возможности аписать никаких других логов. Заниматься отладкой таких ошибок крайне проблематично, особенно если не знаешь как воспроизвести.

  1. grep "SIGKILL" logs/php-fpm-error.log

Также в этом файле логируется информациия о записе в slow log файлы, указывая с какого URL'a был вызван скрипт - иногда может пригодиться.

Добавить комментарий

  .d88888b.              .d8888b.            
d88P" "Y88b d88P Y88b
888 888 Y88b. d88P
888 888 88888888 "Y88888" .d88888
888 888 d88P .d8P""Y8b. d88" 888
888 Y8b 888 d88P 888 888 888 888
Y88b.Y8b88P d88P Y88b d88P Y88b 888
"Y888888" 88888888 "Y8888P" "Y88888
Y8b 888
888
888
Зарегистрируйтесь для добавления материалов без проверки.