Анализ логов 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 был вызван скрипт - иногда может пригодиться.

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

 888     888   d888    888    d8P    d888   
888 888 d8888 888 d8P d8888
888 888 888 888 d8P 888
888 888 888 888d88K 888
888 888 888 8888888b 888
888 888 888 888 Y88b 888
Y88b. .d88P 888 888 Y88b 888
"Y88888P" 8888888 888 Y88b 8888888


Зарегистрируйтесь для добавления материалов без проверки.