Журнал пространства ядраЖурналы пользовательского пространстваОсновные файлы журналовСлужбы журналов
Журналы являются неотъемлемой частью любой ОС. В журналы записывается хронология событий, происходящих в используемой ОС, ее приложениях и службах.
Журналы являются полезным инструментом при возникновении различного рода неполадок системы и позволяют точно определять проблемы путем изучения предупреждений и сообщений об ошибках. Журналы событий используются для выявления инцидентов безопасности, диагностики проблем с производительностью, а также для обеспечения соответствия требованиям и аудита.
Ядро ОС использует кольцевой буфер для хранения сообщений журнала, начиная с процесса загрузки системы. Этот буфер имеет фиксированный размер. После заполнения буфера новые сообщения будут перезаписывать старые. Все сообщения ядра записываются в кольцевой буфер с помощью функции printk(). Далее сообщения из кольцевого буфера ядра сохраняются в файлах журнала в постоянном хранилище системы – /var/log/kern.log. Параметр конфигурации ядра CONFIG_PRINTK позволяет вести журнал пространства ядра через printk(). Если он не установлен, системные вызовы ядра возвращают ошибку ENOSYS.
printk()
CONFIG_PRINTK
ENOSYS
Сообщения ядра имеют собственные уровни (приоритеты), которые определяются ядром ОС для выявления серьезности конкретного сообщения.
Далее приведены доступные уровни (приоритеты) сообщений ядра:
KERN_EMERG — экстренные сообщения (наивысший приоритет);
KERN_EMERG
KERN_ALERT — ошибка, требующая немедленного внимания;
KERN_ALERT
KERN_CRIT — критическая ошибка (аппаратная или программная);
KERN_CRIT
KERN_ERR — ошибка;
KERN_ERR
KERN_WARNING — предупреждение;
KERN_WARNING
KERN_NOTICE — замечание;
KERN_NOTICE
KERN_INFO — информационное сообщение;
KERN_INFO
KERN_DEBUG — отладочные сообщения;
KERN_DEBUG
KERN_DEFAULT — уровень ведения журнала ядра по умолчанию;
KERN_DEFAULT
KERN_CONT — продолжение ведения журнала (низший приоритет).
KERN_CONT
Все сообщения функции printk() записываются в кольцевой буфер ядра. Кольцевой буфер является файлом символьного устройства – /dev/kmsg. Устройство /dev/kmsg является абстракцией, предназначенной для чтения и записи в кольцевой буфер ядра.
Для управления кольцевым буфером ядра или его печати в стандартный вывод в консоли используется команда dmesg.
dmesg
dmesg [ 3.330401] PM: Image not found (code -22) [ 5.508468] kauditd_printk_skb: 4 callbacks suppressed [ 5.508471] audit: type=1130 audit(1719211645.071:15): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=systemd-fsck-root comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 5.539630] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Quota mode: none. [ 5.592869] audit: type=1334 audit(1719211645.157:16): prog-id=8 op=UNLOAD [ 5.592980] audit: type=1334 audit(1719211645.157:17): prog-id=7 op=UNLOAD
Журналирование может осуществляться как на локальной системе, так и в сети.
Ведение журналов пользовательского пространства основано на протоколе rsyslog. Rsyslog — это быстрый, расширяемый сервис для управления журналами с большим количеством возможностей. Среди его возможностей можно отметить поддержку фильтрации контента, а также передачу журналов по сети.
В конфигурационном файле /etc/rsyslog.conf возможна тонкая регулировка уровня журналирования. Журналирование осуществляется при помощи службы rsyslog.service, которая обычно получает входную информацию при помощи сокета /dev/log (локально) или с UDP-порта 514 (с удаленных машин).
Сообщения журналов пространства пользователя имеют собственные уровни (приоритеты) событий. Приоритеты системного журнала указывают на серьезность зафиксированного сообщения. Значения приоритетов сообщений варьируются от 0 до 7, где 0 является наиболее критическим уровнем.
Далее приведены приоритеты сообщений и их описание:
Приоритет
Ключевое слово
Серьезность инцидента
Описание
0
emerg
Экстренная ошибка
Система не может использоваться.
1
alert
Важное предупреждение
Необходимо немедленно принять меры.
2
crit
Критическая ошибка
Описание критической ошибки.
3
err
Ошибка
Описание ошибки.
4
warning
Предупреждение
Описание предупреждения.
5
notice
Уведомление
Важные сообщения.
6
info
Информация
Информационные сообщения.
7
debug
Отладка
Отладочные сообщения.
Важным значением в сообщениях журнала также является категория программы, которая сформировала данное сообщение. Значение категории программы варьируется от 0 до 23.
Далее приведены категории программ:
kern
Сообщения ядра ОС.
user
Сообщения на уровне пользователя.
mail
Сообщения почтовых систем.
daemon
Сообщения от прочих системных служб.
auth
Сообщения безопасности или аутентификации, генерируемые системами авторизации или программами, которые запрашивают имена пользователей и пароли. Например, su, login, ftpd.
syslog
Внутренние сообщения syslog.
lpr
Сообщения, связанные с системой печати.
news
Сообщения подсистемы сетевых новостей (nntp).
8
uucp
Сообщения подсистемы UUID.
9
cron
Сообщения от подсистемы cron.
10
authpriv
Сообщения безопасности или аутентификации, аналогичен auth.
11
ftp
Сообщения службы FTP.
12
ntp
Сообщения подсистемы сетевого времени (ntp).
13
security
Журнал аудита.
14
console
Журнал оповещений.
15
solaris-cron
Сообщения службы планирования заданий.
16-23
local0-local7
Зарезервировано для локального использования.
По умолчанию события журналируются в каталог /var/log/. В нем хранится множество различных файлов с расширением *.log, содержащих события от различных источников в текстовом виде.
К основным файлам журналов относятся:
/var/log/rsyslog или /var/log/messages — глобальный системный журнал, где хранятся события, произошедшие с момента запуска системы от различных компонентов ОС — ядра, служб, устройств и т. д.;
/var/log/kern.log — содержит сообщения от ядра и предупреждения, которые могут быть полезны при устранении ошибок, произошедших при работе пользовательских модулей, встроенных в ядро;
/var/log/auth.log или /var/log/secure — наиболее интересны для службы безопасности, так как содержат информацию об авторизации пользователей, т.е. попытки успешных/неуспешных входов в систему и методов аутентификации;
/var/log/dmesg – в файле фиксируются ошибки работы драйверов и оборудования;
/var/log/anaconda.log – в файле находятся события установки системы;
/var/log/boot.log – в файле находятся логи загрузки системы;
/var/log/audit — лог службы auditd;
/var/log/cron — содержит результаты выполнения различных событий планировщика задач cron.
Также в зависимости от установленных приложений в /var/log/ могут находиться журналы БД MySQL или веб-серверов Apache/Nginx.
Служба rsyslog обеспечивает расширенную фильтрацию, различные параметры конфигурации, ретрансляцию сообщений с защитой от шифрования, модули ввода и вывода, а также поддержку транспортировки по протоколам TCP или UDP.
Помимо rsyslog файлами журналов также может управлять системная служба ведения журналов journald (компонент systemd). Служба journald собирает сообщения системного журнала, сообщения журнала ядра, сообщения о начальной загрузке с диска RAM и сообщения о ранней загрузке, а также сообщения, записанные в стандартный вывод и стандартный вывод ошибок всех служб, индексирует их и делает доступными для пользователя.
Основное различие между rsyslog и journald заключается в том, что файлы журналов, создаваемые journald, по умолчанию не являются постоянными. Файлы журналов хранятся только в памяти или небольшом кольцевом буфере в каталоге /run/log/journal/. Rsyslog, в свою очередь, хранит журналы в файлах журналов, доступных по адресу /var/log/.
Для просмотра содержимого журналов службы journald необходимо использовать команду:
journalctl
Для вывода справки по использованию утилиты выполните:
journalctl -h
Все настройки journald находятся в файле /etc/systemd/journald.conf и других конфигурационных файлах из директории /etc/systemd/journald.conf.d. По умолчанию все параметры в файле /etc/systemd/journald.conf закомментированы — они сообщают, какие значения используются по умолчанию. Значения параметров, установленных в файле /etc/systemd/journald.conf могут быть переопределены в одном из файлов в директории /etc/systemd/journald.conf.d.
Дата последнего изменения: 19.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.