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

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

 8888888   .d8888b.   888b    888                
888 d88P Y88b 8888b 888
888 888 88888b 888
888 888d888b. 888Y88b 888 88888b.d88b.
888 888P "Y88b 888 Y88b888 888 "888 "88b
888 888 888 888 Y88888 888 888 888
888 Y88b d88P 888 Y8888 888 888 888
8888888 "Y8888P" 888 Y888 888 888 888


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