Анализ логов PHP
PHP - основной из сценарных языков, на котором базируются web сайты. Для быстрой отладки ошибок на production сайте важно, чтобы все из нижеперечисленных лог-файлов было настроены для записи.
Честно говоря, особых трюков для анализа этих логов нет. Главное уметь пользоваться
командой.grep
php-error.log
Наверное, один из самых известных лог файлов. В этот лог пишутся ошибки выполнения PHP кода. Косвенно показывает на то, насколько чист и хорош ваш код. Хорошо, если нет никаких "Fatal error" записей:
- grep "Fatal\ error" logs/php-error.log
Также периодически использую этот файл для отладки кода. Можно логировать переменные, данные через
функцию. И мониторить в live-режиме:log_error()
- tail -f logs/php-error.log
php-slow.log
Один из недооцененных когда-то мною лог файлов. Логирует медленные транзакции PHP с backtrace списком вызова функций и файлов. Если на сайте не подключено никакой аналитики типа NewRelic, то это просто палочка-выручалочка, чтобы отловить кусок кода, который конкретно тормозит ваш сайт.
Настройка в php.ini:
- slowlog = /var/log/php5/slow.log
- request_slowlog_timeout = 10s
Анализировать этот лог файл удобно либо через какой-то редактор или же через
, если уже знаете какую функцию или же файл нужно искать.grep
Для беглого анализа частоты выполнения медленных транзакций + файла, с которого началось выполнение кода:
- grep -B 2 "script_filename\ \=" logs/php-slow.log
php-fpm-error.log
Редко используемый для анализа файл. Но если дело касается SIGKILL, то нигде в PHP логах вы ошибок больше не найдете, как только в этом файл. SIGKILL обычно сразу убивает PHP процесс, не давая возможности аписать никаких других логов. Заниматься отладкой таких ошибок крайне проблематично, особенно если не знаешь как воспроизвести.
- grep "SIGKILL" logs/php-fpm-error.log
Также в этом файле логируется информациия о записе в slow log файлы, указывая с какого URL'a был вызван скрипт - иногда может пригодиться.
Добавить комментарий