Что такое лог-файлы и зачем они нужны администратору

Лог-файлы используются почти в любом ПО, и они нужны для внесения информации о процессе работы ПО и другой важной информации. Данная информация очень важна и может использоваться для анализа службы или ПО.

 

Основные цели журналирования на сервере

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

  • Почтового сервера;
  • Веб-сервера (у каждой службы свои логи);
  • Подсистемы авторизации;
  • FTP-сервер;
  • Системные логи;
  • Подсистемы авторизации;
  • Сервера базы данных.

 

Какие события записываются в логи

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

Где найти системные лог-файлы в Linux и Windows

 

Расположение логов в Linux: /var/log и другие директории

В Linux, логи обычно сохраняются в каталоге /var/log, в котором создаются отдельные папки/файлы для конкретного сервиса. Конечно, наименования каталогов могут значительно отличатся в зависимости от версии ОС.

 

Системные логи в Windows Server: Event Viewer и .evtx

Системные логи в Windows Server можно просмотреть через приложение Event Viewer. Данное приложение можно запустить следующим образом:

  • Пуск – Просмотр событий (event viewer);
  • В окне Выполнить ввести eventvwr.msc.

 

Читайте также: CDN: что это за технология и как она ускорит ваш сайт

Журналы веб-сервера: анализ ошибок и запросов

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

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

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

 

Где находятся логи Apache: access.log и error.log

Логи Apache можно поделить на 2 категории:

  • Ошибки (error.log).
  • Логи посещений (access.log).

Такого рода файлы хранятся отдельно для каждого сайта на сервере. К примеру в панели ispmanager — логи сохраняются в /var/www/httpd-logs. В данной директории логи могут сохранятся в domain. error.log и domain. access.log где вместо domain будет зафиксировано имя конкретного домена.

Если говорить о стандартной реализации, то логи будут сохранятся в каталоге /var/log/apache2 на Debian системах.

 

Пути к логам Nginx и как их читать

В Nginx система журналы функционирует подобным образом, создаются 2 типа файлов и находятся в каталоге /var/log/nginx. Когда есть связка Nginx с Apache, журналы могут записываться в одном файле.

Также в Nginx, можно настроить логи для каждого сайта отдельно.

 

Журналы веб-сервера: анализ ошибок и запросов

 

Отладка PHP с помощью логов: php_error.log

Обычно PHP-интерпретатор относится к конфигурации Apache. Таким образом в стандартном варианте, PHP храниться вместе с логами Apache.

Если же PHP функционирует в виде службы PHP-FPM тр логи хранятся в отдельном каталоге /var/log/php-fpm.

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

Лог-файлы почтового сервера

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

 

Где искать логи Postfix, Exim, Sendmail

Наиболее популярным вариантом сейчас есть – Exim. Процесс в этой конфигурации функционирует с помощью протокола SMTP. Чаще всего логи об ошибках содержаться в panic.log, а все события, касающиеся почтовой службы в – mainlog в каталоге /var/log/exim.

Файлы для Postfix обычно находятся в каталоге /var/log/mail, а для Sendmail в /var/log/mail.log. В зависимости от используемой операционной системы, каталог может немного отличатся.

 

Как расшифровать ошибки доставки писем

Существует множество возможных вариантов ошибок в доставке писем. Давайте рассмотрим несколько из них:

  • 550 5.1.1 – Данного получателя не существует.
  • 554 5.7.1 – Запрет на передачу почти, возможно из-за неправильной настройки SMTP.
  • 421 4.3.2 – Сервер временно недоступен.
  • 550 5.7.1 – Письмо заблокировано из-за спам фильтра.

 

Часто спрашивают: Виртуальный хостинг против выделенного: какой вариант станет лучшим решением?

Ротация логов: настройка logrotate и управление объемом

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

 

Как работает logrotate в Linux

Данный инструмент ротации логов функционирует способом сжатия файла логов и переименования в конкретно заданное время. К примеру, у вас создается новый сжатый файл access.log.1.gz, а вместо него создается пустой access.log файл. На следующий день, происходит сжатие нового файла, и этот файл будет иметь тоже имя только с цифрой 2. Количество архивов, и период архивации можно настроить в зависимости от потребностей.

 

Предотвращение переполнения диска логами

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

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

 

Ротация логов: настройка logrotate и управление объемом

Как правильно читать и анализировать лог-файлы

Хорошим вариантом для просмотра содержимого есть использование команды:

cat имя.лога

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

 

Утилиты для просмотра: tail, less, grep, journalctl

Для удобства, можно сразу использовать команду grep для поиска конкретной ошибки:

grep ‘err’ имя.лога

Также просмотр лога можно осуществлять с помощью утилиты tail:

  • tail имя.лога – отображает последний 10 строк.
  • tail -n 100 имя.лога – отображает последние 100 строк. Цифру можно изменять в зависимости от нужного числа.
  • tail -f имя.лога – отображение лога в “прямом эфире”.

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

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