Проверить лог на наличие ошибок

Блоги, форумы, посадочные страницы и другие интернет-ресурсы представляют собой совокупность графического, текстового, аудио- и видео-контента, размещенного на веб-страницах в виде кода. Чтобы обеспечить к ним доступ пользователей через интернет, файлы размещают на серверах. Это аппаратное обеспечение (персональный компьютер или рабочая станция), на жестком диске которого и хранится код. Ключевые функции выполняются без участия человека, что актуально для всех типов оборудования, включая виртуальный выделенный сервер. Но это не означает, что контроль не осуществляется. Большинство событий, которые происходят при участии оборудования, пользователей и софта, включая ошибки, логи сервера фиксируют и сохраняют. Из этой статьи вы узнаете, что они собой представляют, зачем нужны, и как их читать.

Как читать логи с ошибками сервера

Что такое логи

Это текстовые файлы, которые хранятся на жестком диске сервера. Создаются и заполняются в автоматическом режиме, в хронологическом порядке. В них записываются:

  • системная информация о переданных пользователю данных;
  • сообщения о сбоях и ошибках;
  • протоколирующие данные о посетителях платформы.

Посмотреть логи сервера может каждый, у кого есть к ним доступ, но непосвященному обывателю этот набор символов может показаться бессмысленным. Интерпретировать записи и получить пользу после прочтения проще профессионалу.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Классификация логов

Для каждой разновидности софта предусмотрены соответствующие файлы. Все логи сервера могут храниться на одном диске или даже на отдельном сервере. Существует довольно много разновидностей логов, вот наиболее распространенные:

  • доступа (access_log) — записывают IP-адрес, время запроса, другую информацию о пользователях;
  • ошибок (error_log) — показывают файлы, в которых выявлены ошибки и классифицируют сбои;
  • FTP-авторизаций — отображают данные о попытках входа по FTP-соединению;
  • загрузки системы — с его помощью выполняется отладка при появлении проблем, в файл записываются основные системные события, включая сбои;
  • основной — содержит информацию о действиях с файерволом, DNS-сервером, ядром системы, FTP-сервисом;
  • планировщика задач — в нем выполняется протоколирование задач, отображаются ошибки при запуске cron;
  • баз данных — хранит подробности о запросах, сбоях, ошибки в логах сервера отображаются наравне с другой важной информацией;
  • хостинговой панели — включает статистику использования ресурсов сервера, время и количество входов в панель, обновление лицензии;
  • веб-сервера — содержит информацию о возникавших ошибках, обращениях;
  • почтового сервера — в нем ведутся записи о входящих и исходящих сообщениях, отклонениях писем.

Записи в системные журналы выполняет установленный софт.

Классификация логов

Зачем нужны логи

Анализ логов сервера — неотъемлемая часть работы системного администратора или веб-разработчика. Обрабатывая их, специалисты получают массу полезных сведений. Используются в следующих целях:

  • поиск ошибок и сбоев в работе системы;
  • выявление вредоносной активности;
  • сбор статистики посещения веб-ресурса.

После изучения информации можно получить точную статистику в виде сводных цифр, информацию о юзерах, выявить поведенческие закономерности пользовательских групп.

Читайте также

Настройка Iptables для чайников

Как установить и настроить NTP на сервере

Где посмотреть логи

Расположение определяется хостинг-провайдером или настройками установленного софта. На виртуальном хостинге доступ к лог-файлам предоставляется из панели управления хостингом. Если администратор не открыл его для владельца сайта, получить информацию не получится. Но большинство провайдеров разрешают свободно пользоваться журналами и проводить анализ логов сервера. Независимо от разновидности сервера лог-файлы хранятся в текстовом документе. По умолчанию он называется access.log, но настройки позволяют переименовать файл. Это актуально для Nginx, Apache, прокси-разновидностей squid, других типов. Для просмотра их надо скачать и открыть в текстовом редакторе. В качестве альтернативы можно использовать Grep и схожие утилиты. Они позволяют открыть и отфильтровать логи прямо на сервере.

VDS Timeweb арендовать

Как читать логи. Пример

Существует довольно много форматов записи, combined — один из наиболее распространенных. В нем строчка кода может выглядеть так:

%h %l %u %t \»%r\» %>s %b \»%{Referer}i\» \»%{User-Agent}i\»

Директивы имеют следующее значение:

  • %h — IP-адрес, с которого был сделан запрос;
  • %l — длинное имя удаленного хоста;
  • %u — удаленный пользователь, если запрос был сделан аутентифицированным юзером;
  • %t — время запроса к серверу и его часовой пояс;
  • %r — тип и содержимое запроса;
  • %s — код состояния HTTP;
  • %b — количество байт информации, отданных сервером;
  • %{Referer} — URL-источник запроса;
  • %{User-Agent} — HTTP-заголовок.

Еще один пример чтения логов можно посмотреть в статье «Как читать логи сервера».

Опытные веб-мастера для сбора и чтения лог-файлов используют программы-анализаторы. Они позволяют читать логи сервера без значительных временных затрат. Вот некоторые из наиболее востребованных:

  • Analog. Один из самых популярных анализаторов, что во многом объясняется высокой скоростью обработки данных и экономным расходованием системных ресурсов. Хорошо справляется с объемными записями, совместим с любыми ОС.
  • Weblog Expert. Программа доступна в трех вариациях: Lite (бесплатная версия), Professional и Standard (платные релизы). Версии отличаются функциональными возможностями, но каждая позволяет анализировать лог-файлы и создает отчеты в PDF и HTML.
  • SpyLOG Flexolyzer. Простой аналитический инструмент, позволяющий получать отчеты с высокой степенью детализации. Интегрируется c системой статистики SpyLOG, позволяет решать задачи любой сложности.

Логи сервера с ошибками error.log

Это журнал с информацией об ошибках на сайте. В нем можно посмотреть, какие страницы отсутствуют, откуда пришел пользователь с конкретным запросом, имеются ли «битые» ссылки, другие недочеты, включая те, которые не удалось классифицировать. Используется для выявления багов и погрешностей в коде.

Каждая ошибка в логе сервера error.log отображается с новой строки. Идентифицировав и устранив ее, программист сможет наладить работу сайта. Используя журнал, можно выявить и слабые места веб-платформы. Это простой и удобный инструмент анализа, которым должен уметь пользоваться каждый веб-мастер, системный администратор и программист.

Сервер хостинга — довольно самостоятельная система. Если все настроено правильно, его программы могут месяцами работать без вмешательства человека. При этом на сервере постоянно происходит множество событий:

  • посетители заходят на сайт, открывают страницы и заполняют формы;
  • почтовый сервер домена получает и отправляет письма,
  • система бекапов создает резервные копии сайта;
  • работает операционная система, SQL-сервер.

Для контроля и анализа всего этого и ведутся логи.

Что такое logs server или логи сервера? Это текстовые файлы, в которых протоколируется информация о всех событиях на сервере. Log server переводится как «журнал сервера». Запись информации проводится автоматически.

В статье мы рассмотрим, какие виды логов бывают, как устроены логи, как их найти и прочитать и т. д.

Виды логов

Существует несколько типов логов сервера:

  • журналы ошибок. Эти логи фиксируют сбои работы ПО;
  • журналы доступа. Фиксируется информация об авторизациях пользователей — удачно или неудачно, IP-адрес, страна посетителя;
  • журналы действий пользователей. Например, лог веб-сервера записывает, к каким страницам обращался посетитель, из какого источника зашел;
  • протоколы действий программного обеспечения, куда записываются все события, происходящие в той или иной программе.

Каждое ПО часто ведет свои собственные логи. Так, на сервере хостинга отдельно протоколируются события:

  • операционной системы сервера;
  • главных компонентов системы (работа DNS, Firewall);
  • базы данных (SQL-сервера);
  • FTP-сервера;
  • веб-сервера;
  • панели управления хостингом (хронология использования ресурсов хостинга, авторизации);
  • доменной почты (почтовые логи) и других программ.

Где можно найти логи сервера

Посмотреть логи сервера можно:

  • непосредственно в каталоге на жёстком диске, где они лежат. Доступ ко всем логам есть только на виртуальном или выделенном сервере. Если у вас виртуальный хостинг, доступ будет только к тем логам, которые находятся непосредственно в вашем каталоге;
  • из панели хостинга;
  • на FTP-сервере;
  • запросив логи у техподдержки хостинг-провайдера.

Что касается панели хостинга, то здесь логи часто размещают прямо в веб-интерфейсе панели, в разделах с аналогичным названием: «лог FTP-сервера», «лог ошибок сайта». Точное расположение разделов можно посмотреть в справке или уточнить у техподдержки.

На виртуальном или выделенном сервере журналы сервера ищем на жёстком диске. В зависимости от типа сервера, операционной системы, настроек программного обеспечения точное местоположение может быть разным — уточните у техподдержки, где искать тот или иной лог. Но есть универсальные моменты, которые помогут вам найти логи самостоятельно:

  • папка с логами называется logs или log;
  • файл с логами содержит в названии log (access_log, error_log).

Зачем нужно смотреть логи?

Часто о логах никто не вспоминает, пока не появляются проблемы: сайт тормозит, сайт взломали. Правильнее смотреть логи сервера регулярно. Тем более, многие хостеры хранят некоторые виды логов непродолжительное время: 2 недели, месяц, 3 месяца.

Просматривая логи, можно увидеть:

  • попытки взлома сайта, внедрения вредоносного ПО;
  • рост нагрузки на сервер с определенных IP-адресов;
  • превышение допустимой нагрузки на сервер и другие предвестники проблем.

Обнаружив начинающиеся проблемы заранее, можно предпринять соответствующие меры: заблокировать зловредные IP-адреса, оптимизировать SQL-запросы, перейти на тариф с большим количеством ресурсов.

Как читать логи

Логи в панели управления хостингом представлены в удобном виде в виде таблиц. Например, лог FTP-сервера на хостинге содержит колонки:

  • дата;
  • IP, с которого подключались;
  • логин пользователя;
  • действия пользователя.

Логи сервера на жестком диске представляют собой текстовые файлы, в которых в хронологическом порядке записывается информация. Открыть их можно любым текстовым редактором, предпочтительно специализированным, например, Notepad+++. Данные представлены в виде строк с разделителями и на первый взгляд часто выглядят как непонятное смешение символов.

Для удобного чтения можно скачать логи и просмотреть их через специальные программы: Analog, Weblog Expert и другие.

Логи сервера Windows более структурированы и понятны для изучения. В них есть несколько уровней событий: ошибка, предупреждение, информация, подробные сведения. Отдельно выделяются критические события.

Как проверить логи, если у вас VPS-сервер

Пользователям, арендующим VPS-сервер, для доступа к логам можно:

  • подключиться к серверу по SSH;
  • по очереди ввести команды cd logs, ls —all;
  • вы увидите список лог-файлов в папке logs — открывайте нужный и смотрите.

Как проверить логи на хостинге

Расскажем, как найти логи сервера в разных типах панели управления хостингом. Будем искать файлы логов, а не их представление в веб-интерфейсе панели.

В ISPmanager

В Менеджере файлов зайдите в папку logs, найдите и скачайте нужный файл. Просматривайте логи на своем ПК или ноуте.

В CPanel

Аналогично описанному выше, только внутренний файл-менеджер называется «Диспетчер файлов».

В Plesk

Здесь, чтобы зайти в папку logs и загрузить на свой ПК логи, вам нужно войти на вкладку «Файлы».

О чём могут рассказать логи: важный инструмент в работе тестировщика

Уровень сложности
Средний

Время на прочтение
6 мин

Количество просмотров 8.4K

Привет, Хабр! Меня зовут Анфиса Одинцова, я — наставница в Яндекс Практикуме на курсе «Инженер по тестированию». Сейчас работаю в JoomPay, а раньше — в Яндекс Дзен и ВК. В этой статье расскажу о важном аспекте тестирования — работе с логами. Ведь в мире разработки программного обеспечения логирование играет ключевую роль в обеспечении качества и отладке приложений. Для тестировщиков логи — ценный инструмент, который помогает нам понять работу приложения, обнаружить потенциальные проблемы и сделать наше тестирование более эффективным.

Мы рассмотрим, зачем в работе могут понадобиться логи, какие виды логирования существуют и что внутри лога может быть нам полезным.

Что такое логи и когда в них смотреть

Логи — это записи событий и сообщений, создаваемые программой или системой во время ее работы. Они представляют собой источник информации о том, что происходит внутри приложения в определённый момент времени. Логи содержат различные данные, такие как сообщения об ошибках, предупреждения, информацию о выполнении определённых действий и многое другое.

Когда тестировщик смотрит в логи

В зависимости от вида проводимого тестирования тестировщик может воспользоваться информацией из логов. 

  • При тестировании новой фичи. Стоит держать логи открытыми, они помогут отследить правильность выполнения определенных операций, последовательность событий и другие аспекты функциональности приложения.
    К примеру, если упадет ошибка (ERROR) или предупреждение (WARN) — о них мы подробнее поговорим дальше, — мы всегда могли сообщить разработчику и быстро нейтрализовать проблему.

  • При релизе приложения и проведении регрессионного тестирования нужно проверять логи, часто в командах это делают разработчики. 

  • При проверке взаимодействия с внешними системами, такими как базы данных, API или другие службы. Логи могут содержать информацию о запросах и ответах, передаваемых данным, кодах состояния и других деталях взаимодействия. 

  • Для более точного определения причины бага и отладки ошибки. В логах может содержаться необходимая информация для идентификации бага, логи могут содержать полезную информацию о возникших исключениях, трассировке стека, сообщениях об ошибках или недостаточных данных, которые могут помочь воспроизвести и понять причину ошибки. А чем больше информации мы принесём разработчику, тем быстрее он починит баг. 

  • Для оценки производительности приложения. Логи могут содержать информацию о времени выполнения определенных операций, использовании ресурсов (например, процессора, памяти) и других показателях производительности. Тестировщик может использовать эти данные для определения узких мест в приложении и предложения улучшений.

  • При работе с событиями системы. Вас могут попросить разработчики или вам самим потребуется более детальная информация для понимания работы системы. 

Типы и уровни логов

Для начала разберёмся в категориях логов. Логи бывают разных типов и уровней детализации и критичности. 

Уровни логирования 

Уровни логирования определяют, насколько важная информация будет записываться в лог-файлы или выводиться при выполнении программы. На верхнем уровне находятся самые важные сообщения. На них стоит обращать внимание в первую очередь. Чем ниже уровень логирования, тем менее критичная, но более подробная информация содержится в логе. 

Тестировщику они нужны для понимания того, есть ли ошибка / насколько она серьёзная и нужно ли заводить баг и отнести баг-репорт.

Уровни логирования бывают: 

  • FATAL: является наивысшим уровнем критичности логов и указывает на самые критические ошибки и проблемы, которые могут привести к немедленному завершению программы или системы. Логи с уровнем FATAL обычно означают серьезные сбои, которые требуют немедленного вмешательства и исправления. 

  • ERROR: этот уровень используется для записи ошибок и проблем, которые могут привести к некорректной работе приложения. Логи с уровнем ERROR указывают на проблемы, которые требуют вмешательства и исправления.

  • WARN: уровень WARN указывает на предупреждения и потенциальные проблемы, которые не являются критическими ошибками. Логи с уровнем WARN могут включать сообщения о неправильном использовании приложения, некорректных данных или других ситуациях, требующих внимания.

  • INFO: этот уровень предоставляет информацию о ходе работы приложения и важных событиях. Логи с уровнем INFO содержат сообщения, которые помогают отслеживать основные операции и состояние приложения. Например, они могут сообщать о начале и окончании определенных операций, загрузке ресурсов, отправке и получении запросов, изменении состояния приложения и других событиях, которые могут быть полезны для отслеживания хода выполнения программы.

  • DEBUG: содержат подробности о ходе выполнения приложения, значимые переменные и другие данные, которые могут быть полезными при обнаружении и исправлении ошибок.

  • TRACE: это наиболее подробный уровень логирования. Логи с уровнем TRACE содержат очень подробную информацию о состоянии приложения, включая значения переменных, шаги выполнения и другие детали. Они обычно используются во время отладки и разработки для более глубокого анализа приложения.

Уровни детализации, с которыми чаще всего сталкивается тестировщик

Тестировщик чаще всего работает с ошибками (ERROR, реже FATAL) и c предупреждениями (WARN). Но для получения информации иногда, бывает, обращается к информационным логам (INFO). 

Уровень логирования может быть настроен в зависимости от потребностей разработчика или тестировщика. 

Обычно в продакшене уровень детализации не устанавливается на самый высокий, чтобы не перегружать логи большим объёмом информации. В то время как во время разработки или отладки можно использовать такие уровни детализации, как DEBUG или TRACE, для более глубокого анализа и отслеживания проблем.

Визуально уровни логирования можно представить таким образом:

Сверху ошибки по уровню критичности, а ниже информационные логи, расположенные по степени подробности

Сверху ошибки по уровню критичности, а ниже информационные логи, расположенные по степени подробности

Какие виды логов бывают и зачем их знать тестировщику

Существует несколько различных видов логов, которые широко используются в программировании и системном администрировании.

Зачем их знать тестировщику? Чтобы понимать, к какому типу логов обратиться для проверки и дебага сервера или клиента,  например при тестировании бэкенда, нам скорее всего понадобятся логи сервера. 

Тестировщик чаще всего работает с логами приложения, логами сервера и системными логами. Разберёмся, что значит каждый из видов:

  1. Логи приложений (Application logs). Это логи, создаваемые самим приложением в процессе его работы. Это может быть веб, десктоп и мобильное приложение. Они содержат информацию о выполнении операций, событиях, ошибочных ситуациях, запросах, ответах и других событиях, внутри приложения.

  1. Логи сервера (Server logs). Это логи, генерируемые серверами и веб-серверами. Они содержат информацию о работе сервера, запросах, ошибочных ситуациях, подключениях и других событиях, происходящих на сервере. Логи сервера помогают администраторам серверов и разработчикам отслеживать состояние сервера, обнаруживать проблемы с производительностью, безопасностью и настраивать серверное окружение.

Логи сервера часто делятся на два типа: 

  • Error logs (это информация об ошибках)

  • Access Logs (общая информация о запросах и ответах к серверу) 

  1. Системные логи (System logs): Это логи, записываемые операционной системой. Они содержат информацию о работе операционной системы, событиях, ошибках, состоянии системы, процессах, сетевых подключениях и других системных событиях.

Это основные виды логов, с которыми обычно приходится сталкиваться тестировщику. Также существуют и другие виды, но чаще всего в работе тестировщик к ним не обращается. 

Схема с некоторыми примерами логов.

Схема с некоторыми примерами логов.

Что хранится в логах

Разные виды и логи разной детализации содержат в себе информацию разного вида. Информация в логах также зависит от того, что туда решил положить разработчик, также от решения разработки зависит, какие уровни детализации и критичности логов будут использованы. 

Большинство разработчиков стараются придерживаться общих правил написания логов. К примеру, практически любой лог имеет:

  • системную информацию (время и дата события, ID события и другая служебная информация);

  • уровень лога;

  • текст сообщения (например, сообщения об ошибке);

  • контекст (дополнительная информация).

Разберем, как это выглядит, на сообщении об ошибке: 

Дата и время: 2023-05-18 10:23:45 — указывает точное время, когда произошла ошибка.

Уровень лога: [ERROR] — указывает на уровень ошибки.

Контекст: [Server] — указывает на компонент или модуль системы, в котором произошла ошибка.

Сообщение об ошибке: Exception occurred while processing request — описание самой ошибки.

Стек вызовов: Последующие строки показывают стек вызовов и указывают на классы и методы, в которых произошла ошибка. В данном примере указывается, что ошибка возникла в методе handleRequest класса MyController (строка 32), затем в методе processRequest класса Server (строка 87) и так далее.

Заключение

Обладая знаниями о логировании системы, тестировщик может легко понять, что происходит во время его работы с приложением, быстро отследить ошибки и лучше описывать ошибки внутри своих репортов. Это серьёзно ускорит процесс исправления бага, а значит, и скорость разработки новых фич и релиза. 

Логи сервера — так ли они важны?

Специалистам больше не приходится записывать файлы и анализировать их вручную, ведь у них есть логи сервера.

Давайте начнём с того, что такое логи, как их посмотреть и почему так важно их использовать.

Что такое логи

Ваши системы и приложения, включая серверы, автоматически генерируют журналы при возникновении событий. Например, программное обеспечение для резервного копирования создает журналы, которые дают вам представление о всём происходящем процессе.

Серверы постоянно создают определённые файлы, которые представляют собой необработанные данные о соответствующей активности сервера – например, благодаря им можно проверить веб-сервер и узнать о трафике сайта. Файлы журналов сервера также могут предоставить системным администраторам детали и понимание, необходимые для эффективного устранения неполадок.

Логи сервера или журнал сервера – это текстовые файлы, которые автоматически создаются и хранятся на жёстком диске веб-сервера в хронологическом порядке. В них содержится информация о пользователях и их активности на платформе, а также о работе сервера.

Каждый раз, когда любой браузер или пользовательский агент, включая Google, запрашивает какой-либо ресурс с вашего сервера – страницы, изображения, файл javascript, что угодно, – эта информация записывается в log file – логи сервера.

В них включается информация о запросе, включая IP-адрес клиента, дату и время запроса, запрошенную страницу, код HTTP и так далее. Эти данные можно объединить в один файл или разделить на отдельные логи, такие как access_log или error_log.

Как правило, эти файлы недоступны для обычных пользователей интернета, только для разработчика или других администраторов.

Существует множество различных типов логов, но основные это:

Системные логи представляют собой журнал событий, происходящих в операционной системе: уведомления о запуске, обновление системы, неожиданные завершения работы, сбои и предупреждения и прочее.

Логи авторизации и доступа содержат список пользователей или ботов, которые обращались к определённым программам или файлам.

Серверные логи отслеживают действия на сервере в течение некоторого периода времени.

Логи безопасности отслеживают события, непосредственно связанные с безопасностью вашего устройства.

Зачем нужны логи

Логи сервера важны, поскольку в них хранится ценная информация, благодаря которой можно:

  • найти бреши в системе безопасности;
  • оперативно выявить ошибки, сбои и вредоносное ПО;
  • проанализировать трафик веб-сайта.

Что хранится в логах

В журнале веб-сервера чаще всего встречаются следующие значения:

  • трафик и количество уникальных пользователей;
  • продолжительность посещения и последние посещения;
  • наиболее загруженные активностью дни недели и часы;
  • домены посетителей хоста;
  • список хостов;
  • авторизованные пользователи и их последние посещения;
  • количество просмотров веб-страниц;
  • самые просматриваемые страницы;
  • типы файлов;
  • ОС пользователя;
  • браузер пользователя;
  • поисковые системы, ключевые слова, используемые для поиска анализируемого веб-сайта.

Как читать логи

Так как существуют разные типы логов, они могут читаться абсолютно по-разному. Мы рассмотрим как интерпретировать логи доступа (access_log) на следующем примере:

11.222.333.44 — — [1/Dec/2021:11:01:28 –0600] «GET /blog/page-address.htm HTTP/1.1» 200 182 «-» «Mozilla/5.0 Chrome/60.0.3112.113»

Итак:

11.222.333.44 – IP-адрес, с которого был сделан запрос;

[1/Dec/2021:11:01:28 –0600] – дата и время запроса, а также часовой пояс;

GET – тип запроса,

/blog/page-address.htm – объект запроса;

HTTP/1.1 – протокол, по которому прошёл запрос;

200 – код ответа сервера;

182 – количество байт полученных посетителем;

Mozilla/5.0 Chrome/60.0.3112.113 – данные о посетителе.

Как проверить логи сервера

Просто открыть файл логов сервера, как правило, несложно. Хотя в некоторых случаях доступ к журналам сервера может быть ограничен в целях безопасности, и его придётся запросить у веб-разработчиков.

Однако давайте предположим, что у вас всё-таки есть доступ к ним. В таком случае встаёт вопрос: где хранятся логи сервера, и как их открыть?

Чтобы посмотреть содержимое логов, нужно открыть папку логов и скачать нужный файл на свой ПК. Это можно сделать с помощью различных сервисов: Plesk, ISPmanager и cPanel.

Plesk

  1. В первую очередь откройте панель управления хостингом.
  2. В меню слева выберите вкладку Файлы.
  3. Найдите папку logs и откройте её.
  4. Скачайте нужные вам файлы, выделив их и нажав Скачать.

cPanel

  1. Откройте панель управления хостингом.
  2. Раскройте меню Файлы и выберите опцию Менеджер файлов.
  3. Найдите папку с названием «logs».

  1. Скачайте нужные вам файлы. Для этого выделите их и нажмите Скачать.

ISPmanager

  1. Откройте панель управления хостингом.
  2. В левой панели выберите Менеджер файлов.
  3. Перейдите в logs.

  1. Скачайте необходимые файлы.

Все эти файлы можно открыть вручную с помощью программ, которые уже есть в вашей системе:

  • Многие файлы логов записываются в виде обычного текста, что означает, что вы можете использовать любой текстовый редактор (Блокнот, Microsoft Office или TextEdit) для открытия и просмотра файла логов сервера.
  • Кроме того, можно воспользоваться браузером и открыть файл логов сервера в формате HTML.
  • Другой вариант открытия логов в операционной системе Windows – через Event Viewer, служебную программу с большей функциональностью, чем указанные выше варианты.

Заключение

Использование логов сервера даёт множество преимуществ. Они помогают обнаруживать вредоносное ПО, различные ошибки, повысить уровень безопасности сервера и даже проанализировать весь трафик сервера.

Если вам нужно доказать кому-то их необходимость, попробуйте рассказать о том, что узнали в этой статье: о ценности логов, какую информацию они содержат и в каких случаях к ним обращаются. Мы уверены, что уже этого будет достаточно, чтобы донести до человека важность этих файлов.

  Туториал: как проверить логи сервера

Просмотр и анализ логов сайта на Linux сервере

Содержание:

  • Важные логи сайта
  • Расположение логов
  • Чтение записей в логах
  • Просмотр с помощью команды tail
  • Просмотр с помощью ISPManager
  • Программы для анализа логов
  • Ведение логов медленных запросов сервера
  • Ведение логов с помощью Logrotate

Логи сайта — это системные журналы, позволяющие получить информацию о посещении сайта ботами и пользователями, а также выявить скрытые проблемы на сервере — ошибки, битые ссылки, медленные запросы от сервера и многое другое.

Важные логи сайта

  • Access.log — логи посещений пользователей и ботов. Позволяет составить более точную и подробную статистику, нежели сторонние ресурсы, выполняющие внешнее сканирование сайта и отправляющие ряд ненужных запросов серверу. Благодаря данному логу можно получить информацию об используемом браузере и IP-адрес посетителя, данные о местонахождении клиента (страна и город) и многое другое. Стоит обратить внимание, если сайт имеет высокую посещаемость, то анализ логов сервера потребует больше времени. Поэтому для составления статистики стоит использовать специализированные программы (анализаторы).
  • Error.log — программные ошибки сервера. Стоит внимательно отнестись к анализу данного лога, ведь боты поисковиков, сканируя, получают все данные о работе сайта. При обнаружении большого количества ошибок, сайт может попасть под санкции поисковых систем. В свою очередь из записей данного журнала можно узнать точную дату и время ошибки, IP-адрес получателя, тип и описание ошибки.
  • Slow.log (название зависит от используемой оболочки сервера) — в данный журнал записываются медленные запросы сервера. Так принято обозначать запросы с повышенным порогом задержки, выданные пользователю. Этот журнал позволяет выявить слабые места сервера и исправить проблему. Ниже будет рассмотрен способ включить ведение данного лога на разных типах серверов, а также настройка задержки, с которой записи будут заноситься в файл.

Расположение логов

Важно обратить внимание, что местоположение логов сайта по умолчанию зависит от используемого типа оболочки и может быть изменено администратором.

Стандартные пути до Error.log

Nginx

/var/log/nginx/error.log

Php-Fpm

/var/log/php-fpm/error.log

Apache (CentOS)

/var/log/httpd/error_log

Apache (Ubuntu, Debian)

/var/log/apache2/error_log

Стандартные пути до Access.log

Nginx

/var/log/nginx/access.log

Php-Fpm

/var/log/php-fpm/access.log

Apache (CentOS)

/var/log/httpd/access_log

Apache (Ubuntu, Debian)

/var/log/apache2/access_log

Чтение записей в логах

Записи в логах имеют структуру: одно событие – одна строка.

Записи в разных логах имеют общие черты, но количество подробностей отличается. Далее будут приведены примеры строк из разных системных журналов.

Примеры записей

Error.log

[Sat Sep 1 15:33:40.719615 2019] [:error] [pid 10706] [client 66.249.66.61:60699] PHP Notice: Undefined variable: moduleclass_sfx in /var/data/www/site.ru/modules/contacts/default.php on line 14

В приведенном примере:

  • [Sat Sep 1 15:33:40.719615 2019] — дата и время события.
  • [:error] [pid 10706] — ошибка и её тип.
  • [client 66.249.66.61:60699] — IP-адрес подключившегося клиента.
  • PHP Notice: Undefined variable: moduleclass_sfx in — событие PHP Notice. В данной ситуации — обнаружена неизвестная переменная.
  • /var/data/www/site.ru/modules/contacts/default.php on line 14 — путь и номер строки в проблемном файле.

Access.log

194.61.0.6 – alex [10/Oct/2019:15:32:22 -0700] "GET /apache_pb.gif HTTP/1.0" 200 5396 "http://www.mysite/myserver.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"

В приведенном примере:

  • 194.61.0.6 — IP-адрес пользователя.
  • alex — если пользователь зарегистрирован в системе, то в логах будет указан идентификатор.
  • [10/Oct/2019:15:32:22 -0700]— дата и время записи.
  • «GET /apache_pb.gif HTTP/1.0» — «GET» означает, что определённый документ со страницы сайта был отправлен пользователю. Существует команда «POST», наоборот отправляет конкретные данные (комментарий или любое другое сообщение) на сервер . Далее указан извлечённый документ «Apache_pb.gif», а также использованный протокол «HTTP/1.0».
  • 200 5396 — код и количество байтов документа, которые были возвращены сервером.
  • «http://www. www.mysite/myserver.html»— страница, с которой был произведён запрос на извлечение документа «Apache_pb.gif».
  • «Mozilla/4.08 [en] (Win98; I ;Nav)» — данные о пользователе, которой произвёл запрос (используемый браузер и операционная система).

Просмотр логов сервера с помощью команды tail

Выполнить просмотр логов в Linux можно с помощью команды tail. Данный инструмент позволяет смотреть записи в логах, выводя последние строки из файла. По умолчанию tail выводит 10 строк.

Первый вариант использования Tail

tail -f /var/log/syslog

Аргумент «-f» позволяет команде делать просмотр событий в режиме реального времени, в ожидании новых записей в лог файлах. Для прерывания процесса следует нажать сочетание клавиш «Ctrl+C».

На место переменной «/var/log/syslog» в примере следует подставить актуальный адрес до нужных системных журналов.

Второй вариант использования Tail

tail -F /var/log/syslog

В Linux логи веб-сервера не ведутся до бесконечности, поскольку это усложняет их дальнейший анализ. При преодолении лимита записей, система переименует переполненный строками файл журнала и отправит в «архив». Вместо старого файла создастся новый, но с прежним названием.

Если будет использоваться аргумент «-f», команда продолжит отслеживание старого, переименованного журнала. Данный метод делает невозможным просмотр логов в реальном времени, поскольку файл более не актуален.

При использовании аргумента «-F», команда, после окончания записи старого журнала, перейдёт к чтению нового файла с логами. В таком случае просмотр логов в режиме реального времени продолжится.

Аналог команды Tail

tailf /var/log/syslog

Отличие команды tailf от предыдущей заключается в том, что она не обращается к файлу и файловой системе в период, когда запись логов не происходит. Это экономит ресурсы системы и заряд, если используется нестационарное устройство — ноутбук, смартфон или планшет.

Недостаток данного способа — проблема с чтением больших файлов. Если системный журнал достаточно большой, возникает вероятность отказа в работе программы.

Изменение стандартного количества строк для вывода

Как и отмечалось выше, по умолчанию выводится 10 строк. Если требуется увеличить или уменьшить их количество, в команду добавляется аргумент «-n» и необходимое число строк.

Пример:

tail -f -n 100 /var/log/syslog

При использовании данной команды будут показаны последние 100 строк журнала.

Просмотр логов с помощью ISPManager

Если на сервере установлен ISPManager, логи можно легко читать, используя приведенный ниже алгоритм.

  1. На главной странице, в панели инструментов «WWW» нужно нажать на вкладку «Журналы».
    Просмотр логов с помощью ISPManager
  2. ISPManager выдаст журналы посещений и серверных ошибок в виде:
    • ru.access.log;
    • ru.error.log.*

    * Вместо «newdomen.ru» из примера в выдаче будет название актуального домена.

    Открыть файл лога можно, нажав на «Посмотреть» в верхнем меню.

  3. Для просмотра всех записей журнала, необходимо нажать на «Скачать» и сохранить файл на локальный носитель.
    Просмотр логов с помощью ISPManager
  4. Более старые версии логов можно найти во вкладке «Архив».
    Просмотр логов с помощью ISPManager

Программы для анализа логов

Анализировать журналы с большим количеством данных вручную не только сложно, но и чревато ошибками. Для упрощения работы с лог файлами было создано большое количество сервисов и утилит.

Инструменты для анализа логов делятся на два основных типа — статические и работающие в режиме реального времени.

Статические программы

Данный тип выполняет работу только с извлеченными логами, но обеспечивает быструю сортировку данных.

WebLog ExpertWebLog Expert

Возможности
  • Предоставление информации об активность сайта, количестве посетителей, доступ к файлам, URL страницы, ссылающиеся страницы, информацию о пользователе (браузер и операционная система).
  • Создание отчётов в формате HTML (.html), PDF (.pdf), CSV (.csv).
  • Поддерживает анализ логов Nginx, Apache, ISS.
  • Чтение файлов даже в архивах ZIP (.zip), GZ (.gz).

Web Log Explorer

Web Log Explorer
Возможности
  • Создание многоуровневых отчётов, включающих количество посетителей, маршруты пользователей по сайту, местоположение хостов (страна и город), указанные в поисковике ключевые слова.
  • Поддержка более 43 форматов логов.
  • Возможность прямой загрузки логов с FTP, HTTP сервера.
  • Чтение архивированных журналов.

Программы для анализа в режиме реального времени

Эти инструменты встраиваются в программную среду сервера, анализируют данные в реальном времени и записывают непрерывный отчёт.

GoAccess

GoAccess
Возможности
  • Автоматическая генерация отчёта в формате HTML (.html), JSON (.json), CSV (.csv).
  • При подключении к серверу через SSH, возможен анализ в браузере и в терминале
  • Поддержка почти всех форматов (Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront и др.).

Logstash

Logstash
Возможности
  • Постоянная генерация отчёта в файл JSON (.json).
  • Получение и анализ информации из нескольких источников.
  • Возможность пересылать журналы с помощью Filebeat.
  • Поддержка анализа системных журналов.
  • Поддерживается большое количество форматов: от Apache до Log4j (Java).

Ведения логов медленных запросов сервера

Анализ данного лога позволяет определить на какие типы запросов сервер отвечает долго. В идеале задержка должна составлять не более 1 секунды.

На некоторых типах оболочек (MySQL, PHP-FPM) ведение данного лога по умолчанию отключено. Процесс запуска и ведения зависит от сервера.

MySQL

Если сервер управляется с помощью MySQL, то необходимо создать каталог и сам файл для ведения журнала с помощью команд:

mkdir /var/log/mysql
touch /var/log/mysql/mysql-slow.log

Стоит изменить владельца файла, чтобы избежать дальнейших проблем с записью логов. Делается это командой:

chown mysql:mysql /var/log/mysql/mysql-slow.log

После выполнения предыдущих действий, нужно совершить вход в командную строку MySQL под учётной записью суперпользователя:

mysql -uroot -p

Для запуска и настройки ведения логов нужно последовательно ввести в терминале следующие команды:

> SET GLOBAL slow_query_log = 'ON';

> SET GLOBAL slow_launch_time = 2;

> SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';

> FLUSH LOGS;

В примере:

  • slow_query_log — запускает ведение журналов медленных запросов.
  • slow_launch_time — указывает максимальную задержку отклика, после которой статистика запроса попадёт в журнал. В данном случае запись в логи происходит при преодолении откликом порога 2 секунды.
  • slow_query_log_file — задаёт путь до используемого журнала.

Проверить статус и параметры ведения лога медленных запросов можно командой:

> SHOW VARIABLES LIKE '%slow%';

Выход из консоли MySQL выполняется командой:

> exit

После выполнения всех предыдущих действий, можно просмотреть логи сервера. Для этого в терминале вводится:

tail -f /var/log/mysql/mysql-slow.log

PHP-FPM

Для ведения журнала на данной оболочке, необходимо отредактировать параметры в конфигурационном файле. Для этого в терминале вводится команда:

vi /etc/php-fpm.d/www.conf

Далее нужно найти строки:

  • request_slowlog_timeout = 10s — параметр, позволяющий указать задержку, с которой запись о длительном запросе попадёт в журнал.
  • slowlog = /var/log/php-fpm/www-slow.log — параметр, указывающий путь до актуального файла логирования (.log).

После применения изменений, необходимо перезагрузить сервер PHP-FPM. Для этого в консоль вводится команда:

systemctl restart php-fpm

Просмотр логов запускается командой:

tail -f /var/log/php-fpm/www-slow.log

Анализ логов медленных запросов

Логи медленных запросов могут за незначительное время вырасти до огромных размеров. Для сортировки и отображения повторяющихся запросов рекомендуется использовать программу MySQLDumpSlow.

Для запуска просмотра логов с помощью этой утилиты, нужно составить команду по приведенному ниже алгоритму:

mysqldumpslow местонахождение/файла

Ведение логов в Logrotate

На больших ресурсах журналы могут достигать огромных размеров, поэтому нужно своевременно архивировать или очищать логи. С помощью утилиты Logrotate можно управлять ведением журналов: настроить период ротации (архивирование старого журнала и создание нового), период и количество хранения журналов и многое другое.

Изначально программа отсутствует в системе. Ниже приведены команды для инсталляции Logrotate из официальных репозиториев.

Ubuntu, Debian:

sudo apt install logrotate

CentOS:

sudo yum install logrotate

После установки необходимо проверить путь для будущих конфигурационных файлов. Для правильной работы они должны находится в папке «logrotate.d». Проверить данный параметр можно открыв конфигурационный файл  командой:

nano /etc/logrotate.conf

В директории «RPM packages drop log rotation information into this directory» должна присутствовать строка:

include /etc/logrotate.d

Теперь создаётся конфигурационный файл «rsyslog.conf». В нём будет находиться конфигурацию по работе с логами. Для создания файла в терминале вводится команда:

sudo nano /etc/logrotate.d/rsyslog.conf

В окне терминала откроется текстовой редактор. Теперь нужно внести конфигурацию, как указано в образце. В качестве примера будет использоваться журнал посещений «Access.log» (Nginx).

/var/log/nginx/access.log {
daily
rotate 3
size 500M
compress
delaycompress
}

Теперь остаётся только запустить Logrotate. Для этого вводится команда:

sudo logrotate -d /etc/logrotate.d/rsyslog.conf

Для проверки правильности работы программы в терминале можно ввести команду:

ls /var/cron.daily/

Понравилась статья? Поделить с друзьями:
  • Проверить большой текст на ошибки
  • Проверить курсовую работу на ошибки
  • Проверить виндовс 10 на ошибки и исправить
  • Проверить коробку передач рено каптур ошибка
  • Проверить комп на ошибки и исправить windows 10