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

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

 888b     d888            888                
8888b d8888 888
88888b.d88888 888
888Y88888P888 88888b. 88888b. 888 888
888 Y888P 888 888 "88b 888 "88b 888 888
888 Y8P 888 888 888 888 888 888 888
888 " 888 888 d88P 888 d88P Y88b 888
888 888 88888P" 88888P" "Y88888
888 888
888 Y8b d88P
888 "Y88P"
Зарегистрируйтесь для добавления материалов без проверки.