Логи – это инструмент, при помощи которого можно отслеживать рабочий процесс сервера или сайта. Поэтому знать, как читать логи это полезное умение для выявления сбоев в работе ПО, быстрого и результативного реагирования на другие проблемы (выявление злонамеренных действий), эффективного анализа рабочий процесс, противодействия DDoS-атакам.
Содержание:
- Что такое логи и зачем они нужны?
- Классификация логов
- Типы логов и где их найти
- Какая информация хранится в логах и как ее интерпретировать
- Программы для анализа логов
Что такое логи и зачем они нужны
Логи (log) – это специальные текстовые файлы, в которых в хронологическом порядке фиксируется информация обо всех действиях программы или пользователей. Проще говоря, это журнал регистрации всех событий происходивших в системе:
- ошибки сервера (сбои), возникающие при обращении к некоторым функциям сайта или задачам;
- данные о доступе – запись о подключении (или попытке входа) каждого пользователя, откуда и как он попал на сайт;
- прочие, записывающие информацию о работе компонентов сервера.
Классификация логов
В зависимости от того, какая информация записывается, и для каких целей она используется, логи ошибок сервера можно классифицировать по разным критериям:
- доступа (access_log) – для записи IP-адреса, времени запроса, типа запроса, кода ответа, объема переданных данных и других параметров, связанных с обращением пользователей к сайту;
- ошибок (error_log) – показывают ошибки, возникающие на сервере при обработке запросов пользователей или при выполнении других задач;
- FTP-авторизаций – для отображения информации об авторизации пользователей на FTP-сервере, который используется для загрузки и скачивания файлов с сайта;
- загрузки системы – для записи информации о запуске и остановке сервера, а также о состоянии его компонентов: процессора, памяти, дисков и т.д.;
- основные – с информацией о действиях, выполняемых на сервере администратором или другими пользователями (вход в систему, выполнение команд, изменение настроек и т.д.);
- планировщика задач – для протоколирования задач, запланированных для автоматического выполнения на сервере в определенное время (резервное копирование, очистка, обновление и т.д.);
- баз данных – для хранения подробностей о действиях, связанных с работой БД на сервере (подключение, запросы, ответы, транзакции, ошибки и т.д.);
- хостинговой панели — для хранения данных о действиях, касающихся использования хостинговой панели, которая предоставляет интерфейс для управления сайтом и сервером;
- веб-сервера – для анализа веб-сервера, оптимизации его производительности, настройки параметров и т.д.
- почтового сервера – для записи информации о почтовых сообщениях, отправляемых и получаемых пользователями сайта.
Типы логов и где их найти
Месторасположение логов зависит от используемого ПО, настроек, прописанного админом пути. Чаще всего server logs сохраняются в var/log/. Однако, не все сервисы помещают файлы регистрации в эту директорию. В любом случае, можно уточнить такую информацию у веб-хостера.
У дистрибутивов Linux CentOS или Fedora логи серверной машины лежат в /var/log/. Там можно найти:
- файл регистрации ошибок error.log;
- данные о доступах log;
- основной системный журнал syslog;
- файл загрузки ОС dmesg;
- журнал nginx.
Лог ошибок MySQL ($hostname.err) хранится в /var/lib/mysql/. Для Debian или Ubuntu местоположение логов аналогично, за исключением log file ошибок MySQL: /mysql/error.log. А также – логи веб сервера Apache сохраняются по пути /var/log/apache2.
У ОС Windows дружной метод структурирования log-файлов. События делятся на несколько уровней:
- предупреждение – Warning;
- подробности (System и EventData);
- ошибка – Error;
- сведения – Information;
- критический – Critical.
Их можно отсортировать или отфильтровать и выбрать необходимое.
Запуск и отключение логов осуществляется с административной панели. Как правило, доступ через раздел «журнал» или «логи». При этом стоит учитывать, что файлы не сохраняются годами. Поэтому, при необходимости посмотреть log, это нужно сделать своевременно.
Какая информация хранится в логах и как ее интерпретировать?
Для большинства пользователей содержимое log-файлов это бессмысленный набор символов. Как читать логи, чтобы понять, что в них зашифровано?
Строка access.log сервера содержит:
- адрес ресурса;
- IP-адрес пользователя;
- дата и время посещения, часовой пояс;
- GET/POST – запрос на получение или отправку данных;
- к какой странице обращались;
- протокол пользователя (как зашел на ресурс);
- код отклика сервера;
- число переданных байтов;
- информация о посетителе (боте) – устройство, ОС, другие данные.
Как правило, такой информации достаточно, чтобы проанализировать ситуацию и сделать нужные выводы. Например, заблокировать бота, который создал чрезмерную нагрузку на сайт.
Файл ошибок (error.log) регистрирует моменты, когда что-то пошло не так. Из них можно узнать:
- когда произошла ошибка (дата, время), ее тип и IP-адрес пользователя;
- тип события;
- где находится сам файл и строка с сообщением
Конечно, даже после расшифровки, данных логов еще нужно проанализировать. Для этого существует различное ПО, которое помогает отрабатывать данные из логов – Weblog Expert, WebAlyzer, Analog, Webtrends, Awstats, SpyLOG Flexolyzer и другие платные и бесплатные программы.
Программы для анализа логов
Чтобы лучше понимать и использовать информацию, нужно знать, где посмотреть логи сервера. Для этого существует 2 вида программ: статические и работающие в режиме реального времени. Статические программы для просмотра логов веб сервера анализируют уже записанные сведения и генерируют отчеты в виде графиков, таблиц, диаграмм и т.д. Такие программы позволяют получать общую картину о работе сайта и сервера за определенный период времени. Примерами статических программ являются WebLog Expert и Web Log Explorer.
Программы, работающие в режиме реального времени, анализируют логи, поступающие на сервер онлайн. Они отображают результаты анализа в виде интерактивных дашбордов, графиков, счетчиков и т.д. Такие программы позволяют наблюдать за текущей работой сайта и сервера и оперативно реагировать на возникающие ситуации. В качестве примера онлайн программ можно привести GoAccess и Logstash.