img

Логирование событий в Linux

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

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

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

Мы разберем, как настраивается стандартный демон syslog, понятия источников событий и приоритета событий. В операционной системе Windows тоже есть данный функционал, но развит не так хорошо, как в операционных системах Linux.

Итак, стандарт конфигурации событий выглядит следующим образом:

События

Мы пишем для каждого источника события, источник, приоритет и куда такие события отправлять, т.е действие. Формат:

источник.приоритет назначение

Источников в операционной системе Linux может быть много, более 20 штук. Самые популярные представлены на картинке.

В операционной системе Windows, есть 3 уровня приоритетов - информационные, предупреждения и ошибка. У операционной системы Linux приоритетов 8 штук, разберем их:

  • Emergency – чрезвычайная ситуация
  • Alert – тревога
  • Critical – критическое событие
  • Error – ошибка
  • Warning – предупреждение
  • Notice – замечание
  • Info – информационное сообщение
  • Debug – отладочное событие

И последняя колонка на картинке – это примеры куда мы можем записывать те или иные события:

  • Файл – мы можем записывать в журнал
  • Консоль – мы можем выводить в консоль
  • Конвейер – мы можем передавать с помощью конвейера сразу следующей команде
  • Удаленная система – можем передавать удаленной системе
  • Группа пользователей – можем передавать группе пользователей

К сожалению, открыть файл cat /etc/syslog.conf (CentOS 5) не получится, т.к является устаревшим, но подходит для объяснения принципа настройки. Например современный rsyslog, настраивается практически идентично в разных системах, находится в разных местах на виртуальной машине, в Ubuntu 20.04 расположен в /etc/rsyslog.d/ 50-default.conf

50-default.conf

Примерно таким образом выглядит конфигурационный файл. В данном файле все настройки демона. Мы можем увидеть, что все события ядра kern.* выводятся в файл /var/log/kern.log. Символ * говорит о том, что события с любым приоритетом. Мы можем изменить указав явно приоритет например kern.info или kern.debug, можем так же изменить куда выводить например в консоль /dev/console.

У нас в файле есть строчка закомментированная *.info; *.=notice;*.=warn; - отправлять в /var/log/messages, и если мы ее раскомментируем, то данные все события будут уходить в указанный файл.

Есть строчка auth,authpriv.* /var/log/auth.log, которая означает, что все события авторизации, в том числе и с вводом паролей будут записываться в отдельный файл /var/log/auth.log, это сделано специально, в целях информационной безопасности. На отдельный файл проще поставить особые права доступа.

Есть в файле еще интересная строчка mail.* -/var/log/mail.log, которая говорит нам о том, что все почтовые события будут записываться в журнал /var/log/mail.log.

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

Файлы логов можно читать командой cat, правда не все форматы и не все логи, но популярными являются утилиты less и tail. Причем утилита tail с ключем -f позволяет, читать файл лога в реальном времени. Пользоваться утилитами достаточно просто:

less [опции] [файл_лога]
tail [опции] [файл_лога]

Но работая с данными утилитами не все форматы можно прочитать.

Можно порекомендовать для чтения логов утилиту, которая сможет прочесть практически любой формат лога - lnav. Устанавливается стандартно - apt install lnav -y.

Синтаксис утилиты - lnsv [опции] [файл_лога]

lnav dmesg
lnav dmesg

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

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую под
img
Виртуализация серверов — популярная тема в мире ИТ, особенно на уровне предприятий. Она позволяет разным операционным системам з
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
21 ноября
20:00
Бесплатный вебинар
Введение в Docker