Анализ логов 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    d8P   8888888888P  Y88b   d88P      d8888  
888 d8P d88P Y88b d88P d8P888
888 d8P d88P Y88o88P d8P 888
888d88K d88P Y888P d8P 888
8888888b d88P d888b d88 888
888 Y88b d88P d88888b 8888888888
888 Y88b d88P d88P Y88b 888
888 Y88b d8888888888 d88P Y88b 888


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