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

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

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

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

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

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

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

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

Подпишитесь и будьте в курсе последних 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 отображается с новой строки. Идентифицировав и устранив ее, программист сможет наладить работу сайта. Используя журнал, можно выявить и слабые места веб-платформы. Это простой и удобный инструмент анализа, которым должен уметь пользоваться каждый веб-мастер, системный администратор и программист.

Логи сервера

Если вы хотите знать всё про логи сервера, читайте нашу статью. Мы расскажем, что такое logs, для чего они нужны и покажем, как посмотреть их.

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

Чтобы объяснить, что такое логи сервера, скажем несколько слов о самих серверах.

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

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

Можно выделить несколько основных типов логов:

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

Где хранятся логи сервера

В некоторых случаях для хранения логов используют отдельный файловый сервер. Но чаще всего логи хранятся на жёстком диске основного сервера. Они располагаются в корневой директории хостинга в системной папке logs. Точный путь до лога будет зависеть от операционной системы сервера. Например, логи SSH Ubuntu хранятся в /var/log/auth.log, а логи SSH CentOS в /var/log/secure.

Зачем проверять логи

Чаще всего обращаться к содержимому логов и анализировать его приходится системным администраторам. Анализ логов необходим в следующих ситуациях:

  • сбои в работе сервера,
  • резкое повышение нагрузки,
  • подозрение на спам-атаки и другое.

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

Как устроены логи

Каждый тип logs имеет свою структуру. В качестве примера разберём структуру access_log:

123.123.123.123 - - [01/Janr/2021:10:00:00 +0300] "GET /wp-includes/feed.php HTTP/1.0" 200 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"

Здесь:

  • 123.123.123.123 — IP-адрес, с которого был сделан запрос,
  • [01/Janr/2021:10:00:00 +0300] — дата и время запроса,
  • GET — метод запроса,
  • /wp-includes/feed.php — объект запроса,
  • HTTP/1.0 — протокол, по которому прошёл запрос,
  • 200 — код ответа,
  • Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 — информация о посетителе.

Также структура логов зависит от операционной системы сервера. Например, логи сервера Windows устроены в виде структурированной таблицы. Поэтому, чтобы научиться «читать» логи, нужна практика.

Если вы разобрались со структурой logs, можно приступать к их просмотру. Существует несколько способов, с помощью которых можно посмотреть журнал сайта. Выбор способа будет зависеть от типа платформы, на которой расположен ваш сайт — VPS-сервер или хостинг.

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

Чтобы посмотреть логи:

  1. 1.

  2. 2.

    Введите команды cd logs и ls —all, чтобы посмотреть содержимое папки logs:

    Логи сервера Linux

  3. 3.

    Откройте нужный файл.

Готово.

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

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

  • в хостинг-панели управления, если вы являетесь клиентом REG.RU,
  • через подключение по FTP.

В панели управления хостингом

  1. 1.

  2. 2.

    Перейдите в Менеджер файлов, а затем в директорию logs:

  3. 3.

    Выделите строку с названием нужного типа файла и нажмите Скачать:

Готово.

Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с paper_lantern на jupiter.

  1. 1.

  2. 2.

    В разделе «Файлы» нажмите Менеджер файлов:

  3. 3.

    Кликните на папку logs:

  4. 4.

    Выделите строку с названием нужного типа файла и нажмите Скачать:

Готово.

  1. 1.

  2. 2.

    Перейдите во вкладку «Файлы», а затем в директорию logs:

  3. 3.

    Выделите строку с названием нужного типа файла и нажмите Скачать:

Готово.

По FTP

Чтобы скачать логи:

  1. 1.

  2. 2.

    Перейдите в директорию logs:

  3. 3.

    Выделите строку с названием нужного типа файла и нажмите Просмотр/Правка:

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

В работе системного администратора, нередко возникает необходимость посмотреть логи сервера (Server Logs), с какими задачами работал сервер в конкретное время, какие действия совершали пользователи. Причины возникновения этой необходимости могут быть разные:

  • Сбой в работе сервера;
  • Выявление неблагонамеренных действий;
  • Анализ рабочих процессов.

Всю необходимую информацию можно получить в логи сервера (Server Logs), то есть файлах, в которые вносятся записи о различных процессах, действиях пользователей, и т.п. Но, для этого необходимо понимать, где хранятся эти данные, а главное, как с ними работать.

Что такое логи сервера?

Собственно говоря, само слово «логи сервера», является банальной транслитерацией, от словосочетания «server log», которое переводится как «журнал сервера».

Существуют следующие типы логов:

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

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

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

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

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

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

Итак, запись лога доступа, из файла access.log:

mysite.biz 25.34.94.132 — — [21/Nov/2017:03:21:08 +0200] «GET /blog/2/ HTTP/1.0» 200 18432 «-» «Unknow Bot (http://www.unknow.com/bot; [email protected])»

Что она обозначает:

  • mysite.biz – домен сайта, которым вы интересуетесь;
  • 34.94.132 – IP-адрес, который использовал пользователь при заходе на сайт;
  • [21/Nov/2017:03:21:08 +0200] – дата, точное время и часовой пояс пользователя;
  • GET – запрос, который отправляется для получения данных. В том случае, если пользователь передает данные, запрос будет «POST»;
  • /blog/2/ — относительный адрес страницы, к которой был обращен запрос;
  • HTTP/1.0 – используемый протокол;
  • 200 – код ответа на запрос;
  • 18432 – количество данных, переданных по запросу, в байтах;
  • Unknow Bot (http://www.unknow.com/bot; [email protected]) – данные о роботе, или реальном человеке, который зашел на сайт. В том случае, если это человек, будет отображена ОС, тип устройства и т.д. В конкретном примере на сайт зашел робот-парсер, принадлежащий ресурсу unknow.com.

Таким образом, мы узнали, что с IP-адреса 25.34.94.132, двадцать первого ноября, 2017-го года, в три часа, двадцать одну минуту и восемь секунд, на наш сайт заходил бот, принадлежащий другому веб-ресурсу. Он отправил запрос на получение данных, и получил 18432 байт информации.

Теперь можно заблокировать доступ для ботов от этого сайта, либо от всех, кто пользуется этим IP, разумеется, если в этом есть необходимость.

Логи ошибок, можно посмотреть в файле с говорящим именем – error.log. Они выглядят следующим образом:

[Sat Oct 1 18:23:28.719615 2019] [:error] [pid 10706] [client 44.248.44.22:35877]

PHP Notice: Undefined variable: moduleclass_sfx in

/var/data/www/mysite.biz/modules/contacts/default.php on line 13

Что здесь написано?

  1. Дата, время и тип ошибки, а также IP-адрес, который использовал посетитель;
  2. Тип события, в данном случае – «PHP Notice» (уведомление), а также уточнение, что в данном случае, мы имеем дело с неизвестной переменной;
  3. Местоположение файла с уведомлением, а также строка, на которой оно находится.

Если говорить просто, то в данном случае мы имеем сообщение о том, что первого октября, в 18:23, 2019-го года, произошла ошибка, связанная с модулем контактов.

Разумеется, даже после расшифровки, полученные данные не так просто проанализировать. Именно поэтому, для удобной обработки данных из логов сервера, используется различное программное обеспечение. К таким программам относятся: Awstats, Webtrends, WebAlyzer, и многие другие.

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

Логи серверов на Windows

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

Существует несколько уровней событий:

  • Подробности;
  • Сведения;
  • Предупреждение;
  • Ошибка;
  • Критический.

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

Логи SQL сервера

На сегодняшний день, базы данных SQL, являются наиболее распространенным способом работы с большими объемами информации. В первую очередь, логи sql сервера, стоит изучить, если вы не уверены в том, что какие-то процессы были успешно завершены. Этими процессами могут быть:

  • Резервное копирование;
  • Восстановление данных;
  • Массовые изменения;
  • Различные скрипты, и программы для обработки данных.

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

  • Сбор данных;
  • Database Mail;
  • SQL Сервер;
  • События Windows;
  • Журнал заданий;
  • Коллекция аудита;
  • SQL Сервер, агент.

Для того, чтобы получить доступ к журналам, необходимо иметь права «securityadmin».

Как включить или выключить запись логов сервера?

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

Где находятся логи сервера?

Расположение журналов, зависит в первую очередь от используемой вами операционной системы.

Логи серверов с CentOS, или Fedora, хранятся в дирректории «/var/log/».

Названия файлов:

  • Журнал ошибок – «error.log»;
  • Журнал nginx – «nginx»;
  • Журнал доступов – «log»;
  • Основной журнал – «syslog»;
  • Журнал загрузки системы – «dmesg».

Логи ошибок, связанных с работой MySQL, находятся в директории «/var/lib/mysql/», в файле «$hostname.err».

Для операционных систем Debian и Ubuntu, логи сервера располагаются в папке «/var/log/», в файлах:

  • Nginx — журнал nginx;
  • /mysql/error.log – журнал ошибок для баз данных MySQL;
  • Syslog – основной журнал;
  • Dmesg – загрузка системы, драйвера;
  • Apache2 – журнал веб-сервера Apache.

Как видите, у всех ОС, основанных на Linux, логи сервера, как правило имеют одинаковые названия, и директории.

С логами для Windows server, дело обстоит несколько иначе. Если нужно просмотреть журналы, необходимо войти в систему, нажать клавиши «Win» и «R», после чего откроется окно просмотра событий, где есть возможность подобрать интересующие нас логи.

Если вы хотите посмотреть логи PowerShell, то необходимо открыть программу и ввести команду: «Get-EventLog -Logname ‘System’».

Все данные будут выведены в виде удобной таблицы.

Пример работы с логами сервера

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

Можно потратить много времени на выяснения причины, а можно просто посмотреть логи доступа и проверить, с каких IP, и кто заходил на ваш сайт, в выбранные промежуток времени. Вполне вероятно, что вы обнаружите большое количество переходов с нескольких IP-адресов, которые делались автоматически, то есть ваш сайт попал под DDoS-атаку.

В этом случае, можно заблокировать доступ к сайту с выбранных IP, и в дальнейшем расширять этот список, при необходимости.

Вывод

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

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

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

У систем, основанных на Linux, как правило примерно одинаковое расположение файлов с логами, что существенно упрощает работу с ними.

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

”FAQ

Какие виды логов сервера существуют?

Существует несколько видов логов сервера, которые могут быть полезны при обнаружении проблем и улучшении производительности вашего сервера.
Системные логи — это логи, которые ведутся самой операционной системой и хранят информацию о событиях, происходящих в системе. Они могут включать в себя ошибки, предупреждения, информационные сообщения и другую полезную информацию.
Важная информация:
Системные логи могут быть использованы для обнаружения проблем в работе сервера и операционной системы.
Информация в системных логах может помочь в анализе причин отказов и сбоев на сервере.
Хранение системных логов может потребовать дополнительной памяти и ресурсов сервера.
Логи веб-сервера — это логи, которые создаются веб-сервером и содержат информацию о запросах клиентов, ответах сервера и других событиях, связанных с работой веб-сервера.
Важная информация:
Логи веб-сервера могут быть использованы для анализа производительности и оптимизации веб-сайта.
Информация в логах веб-сервера может помочь в обнаружении атак и уязвимостей безопасности.
Хранение логов веб-сервера может занимать большой объем дискового пространства.
Логи приложений — это логи, которые создаются приложениями, установленными на сервере, и содержат информацию о работе приложений.
Важная информация:
Логи приложений могут помочь в обнаружении ошибок и проблем в работе приложений.
Информация в логах приложений может быть полезна для анализа производительности приложений и оптимизации их работы.
Хранение логов приложений может занимать много места на диске, поэтому их необходимо регулярно очищать.

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

Файлы логов сервера находятся на самом сервере и могут быть найдены в разных местах, в зависимости от операционной системы и типа сервера.
В операционной системе Linux файлы логов обычно находятся в директории /var/log. В этой директории находятся различные поддиректории, которые содержат различные логи, такие как системные логи (syslog), логи веб-сервера (apache, nginx), логи баз данных (mysql, postgresql) и т.д.
Важная информация:
Для доступа к файлам логов необходимы права администратора.
Файлы логов могут быть сохранены в различных форматах, включая текстовые файлы и бинарные файлы.
Некоторые серверные приложения и сервисы могут хранить свои логи в других местах, поэтому необходимо проверять документацию для каждого приложения.
В операционной системе Windows файлы логов могут находиться в различных местах, в зависимости от конфигурации системы. Некоторые из распространенных мест для логов включают директории C:WindowsSystem32LogFiles и C:inetpublogsLogFiles.
Важная информация:
Для доступа к файлам логов также необходимы права администратора.
Файлы логов могут быть сохранены в различных форматах, включая текстовые файлы и бинарные файлы.
Некоторые серверные приложения и сервисы могут хранить свои логи в других местах, поэтому необходимо проверять документацию для каждого приложения.

Как просмотреть файлы логов сервера?

Чтение файлов логов сервера может помочь в анализе производительности и обнаружении проблем на сервере. Способы просмотра файлов логов зависят от операционной системы и типа сервера.
В Linux можно использовать команду less для просмотра содержимого файлов логов. Например, чтобы просмотреть содержимое файла syslog, нужно ввести команду less /var/log/syslog.
Важная информация:
Команда less позволяет просматривать содержимое файлов логов постранично.
Для поиска конкретных фрагментов в файле логов можно использовать команду grep.
В Windows можно использовать инструмент Event Viewer для просмотра логов системы. Event Viewer позволяет просматривать системные логи, логи приложений и логи безопасности.
Важная информация:
Для доступа к Event Viewer необходимо иметь права администратора.
В 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/

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

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

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

Что такое логи сервера

Логи сервера (англ. Server Logs ― журнал сервера) ― это текстовые файлы, в которые в хронологическом порядке записывается информация. Обычно это системная информация о работе сервера и взаимодействии пользователей с ним.

Логи отличаются тем, к каким приложениям они относятся, и тем, какую информацию они несут. Вот несколько типов логов:

  • логи доступа (access.log) — в них фиксируются обращения к сайтам, 
  • логи ошибок (error.log) — в них веб-сервер фиксирует ошибки при обращении к сайтам, 
  • логи баз данных — в них фиксируются действия с базами данных, 
  • почтовые логи — в них содержится информация о недоставленных, отправленных и принятых письмах. 

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

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

Рассмотрим несколько вариантов логов на серверах с операционными системами Ubuntu и CentOS. И в Ubuntu, и в CentOS директория /var/log ― это место, где хранятся логи сервера. Мы расскажем о некоторых лог-файлах из этой папки.

Обратите внимание: чтобы выполнить команды, приведённые ниже, подключитесь к серверу по SSH.

Логи SSH CentOS

Логи авторизаций (в том числе SSH-подключений) на сервере с CentOS находятся в файле /var/log/secure. Чтобы открыть этот файл, воспользуйтесь командой:

sudo nano /var/log/secure

Чтобы получить из файла только неудачные попытки подключений по SSH, введите:

grep -a "Failed password" /var/log/secure

Чтобы вывести логи только SSH-подключений:

grep -a “sshd” /var/log/secure

Если вы хотите посмотреть логи подключений конкретного пользователя: 

grep -a “username” /var/log/secure

Вместо username введите имя пользователя.

Логи SSH Ubuntu

Журнал авторизации пользователей в Ubuntu находится в файле /var/log/auth.log.

Открыть всё содержимое файла:

sudo nano /var/log/auth.log

Вывести неудачные попытки подключений:

grep -a "Failed password" /var/log/auth.log

Вывести логи всех SSH-подключений:

grep -a "sshd" /var/log/auth.log

Логи подключений конкретного пользователя:

grep -a "username" /var/log/auth.log

Вместо username введите имя пользователя.

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

Посмотреть логи хостинга можно через панель управления ISPmanager или через подключение по FTP или SSH.

ISPmanager

  1. Откройте панель управления хостингом ISPmanager.
  2. В левом меню нажмите Менеджер файлов:Менеджер файлов в ISPmanager
  3. Откройте директорию logs:
  4. Папка с логами в менеджере файлов
    В этой папке вы найдёте лог-файлы ваших сайтов:
    Содержимое папки с логами
    В названии каждого файла указано имя сайта и тип логов:
  • domain-name.ru.access.log ― это логи доступа к сайту domain-name.ru,
  • domain-name.ru.error.log ― это логи ошибок сайта domain-name.ru

Готово, теперь вы знаете, как посмотреть логи ваших сайтов через панель управления ISPmanager. 

FTP

  1. Подключитесь к хостингу по FTP.
  2. Откройте директорию /logs:
    Логи по FTP
  3. Чтобы, не скачивая, открыть лог-файл в текстовом редакторе, кликните правой кнопкой мыши на нужный файл и нажмите на Просмотр/правка:
    Просмотр логов по FTP

Готово, теперь вы знаете, как проверить логи сайтов на хостинге через FTP. 

SSH

  1. Подключитесь к услуге хостинга по SSH.
  2. Перейдите в директорию /logs при помощи команды:
    cd logs
  3. Выведите список файлов на экран:
    ls -la
  4. Откройте нужный файл при помощи текстового редактора Vim:
    vim log-file-name

    Вместо log-file-name введите имя лог-файла. 

  5. Чтобы закрыть редактор без сохранения изменений в файле, нажмите ESC и введите:
    :q!

Готово, теперь вы знаете, как проверить логи сайтов на хостинге через SSH.

Понравилась статья? Поделить с друзьями:
  • Как посмотреть код ошибки на солярисе
  • Как понять ошибка спорадическая
  • Как посмотреть код ошибки на синем экране смерти
  • Как понять ошибка сервера 400
  • Как посмотреть код ошибки на опель астра