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

Содержание
  1. Просмотр и анализ логов сайта на Linux сервере
  2. Сейчас читают:
  3. Важные логи сайта
  4. Расположение логов
  5. Стандартные пути до Error.log
  6. Nginx
  7. Php-Fpm
  8. Apache (CentOS)
  9. Apache (Ubuntu, Debian)
  10. Стандартные пути до Access.log
  11. Nginx
  12. Php-Fpm
  13. Apache (CentOS)
  14. Apache (Ubuntu, Debian)
  15. Чтение записей в логах
  16. Примеры записей
  17. Error.log
  18. Access.log
  19. Просмотр логов сервера с помощью команды tail
  20. Первый вариант использования Tail
  21. Второй вариант использования Tail
  22. Аналог команды Tail
  23. Изменение стандартного количества строк для вывода
  24. Просмотр логов с помощью ISPManager
  25. Программы для анализа логов
  26. Статические программы
  27. WebLog Expert
  28. Web Log Explorer
  29. Программы для анализа в режиме реального времени
  30. GoAccess
  31. Logstash
  32. Ведения логов медленных запросов сервера
  33. MySQL
  34. PHP-FPM
  35. Анализ логов медленных запросов
  36. Ведение логов в Logrotate
  37. Логи сервера: что это, зачем нужны, как включить, посмотреть, проанализировать
  38. Зачем нужны логи?
  39. Как включить журнал записей?
  40. Как посмотреть логи сервера?
  41. Анализ логов сервера
  42. Лог ошибок error.log
  43. Заключение

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

Сейчас читают:

Содержание:

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

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

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

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

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

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

Nginx

Php-Fpm

Apache (CentOS)

Apache (Ubuntu, Debian)

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

Nginx

Php-Fpm

Apache (CentOS)

Apache (Ubuntu, Debian)

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

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

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

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

Error.log

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

  • [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 — 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    WebLog Expert

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

    Web Log Explorer

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

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

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

    GoAccess

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

    Logstash

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

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

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

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

    MySQL

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

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

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

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

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

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

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

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

    PHP-FPM

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

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

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

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

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

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

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

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

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

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

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

    Ubuntu, Debian:

    CentOS:

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

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

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

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

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

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

    Начни экономить на хостинге сейчас — 14 дней бесплатно!

    Источник

    Логи сервера: что это, зачем нужны, как включить, посмотреть, проанализировать

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

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

    Есть несколько видов логов:

    1. Логи доступа. Показывают, какой пользователь, в какую дату и время, по какой ссылке перешел на ресурс и каков был получен ответ. Данные записи помогают найти уязвимое место, если ресурс взломают.
    2. Логи ошибок. Показывают ошибки, выдаваемые при функционировании сайта либо в процессе обращения к его некоторым функциям. Здесь есть возможность отыскать и ликвидировать баг, приводящий к ошибке.
    3. Другие логи. Фиксируют события в различных серверских компонентах: логи почты сервера и т.п.

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

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

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

    Как включить журнал записей?

    В большинстве случаев хостер отключает функцию записи логов на хостинге, чтобы сохранить больше места на диске. На примере админки хостинга Beget.com рассмотрим, как активировать запись логов:

    1. Заходим в панель администратора и находим вкладку Журналы — логи доступа.
    2. В соответствующем поле выбираем домен ресурса и кликаем на ползунки Журнал доступа, Журнал ошибок, чтобы он перешел в положение ВКЛ.

    Здесь же вы видите путь, где располагаются ваши логи

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

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

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

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

    Отыскать логи можно и через панель управления хостинга, а именно в разделах Логи или Журналы.

    Анализ логов сервера

    Рассмотрим строку, взятую с записи одного из логов сервера:

    И рассмотрим значение всех символов, которые здесь есть:

    • site.ru – адрес рассматриваемого ресурса
    • 85.91.97.104 – IP-адрес пользователя, посетившего сайт, после которого идет дата и время перехода на страницу и часовой пояс
    • GET – запрос, означающий получение данных. Может быть еще запрос POST, то есть, отправка данных, к примеру, авторизация на сайте
    • page/3 – обращение сделано к 3-й странице
    • HTTP/1.0 – протокол пользователя, посредством которого он зашел на ресурс
    • 200 – код ответа, отправленного сервером посетителю
    • 70214 – число байт, переданных пользователю
    • Ahrefs Bot (http://www.ahrefs.com/bot; bot@ahrefs.com) – данные о пользователе или боте, с какого устройства он зашел, какую ОС использует и т.п. В нашем случае это бот парсера ahrefs.

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

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

    На некоторых хостингах их можно установить при включении логов. Например в ранее нами рассматриваемом хостинге Beget.com когда мы включаем логи, нам предлагается установить Awstats.

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

    Лог ошибок error.log

    Это файл, где тоже протоколируются логи, но они относятся не к пользователям, а к ошибкам, возникающим на сервере. Аналогично файлу access.log, в error.log каждая отдельная строка показывает запись только одной ошибки. Благодаря этому файлу можно узнать причину возникновения ошибки и ее тип, а также IP пользователя, которому она была показана. Рассмотрим пример:

    • Первая строка: дата и время/тип записи error (ошибка), а также IP адрес пользователя.
    • Вторая: событие PHP Notice – уведомление, расшифровка Undefined variable – неизвестная переменная.
    • Третья: путь к файлу с уведомлением и строка.

    Здесь мы наблюдаем ошибку в модуле контактов, в файле default.php в строке 14.

    Заключение

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

    Оцените эту статью. Чтобы мы могли делать лучший контент! Напишите в комментариях, что вам понравилось и не понравилось!

    Рейтинг статьи: 4.6 / 5. Кол-во оценок: 14

    Пока нет голосов! Будьте первым, кто оценит эту статью.

    Источник

    Оцените статью