2.3.6 Журналирование событий в РЕД ОС
Скачать документЖурнал пространства ядра
Журналы пользовательского пространства
Основные файлы журналов
Службы журналов
Журналы являются неотъемлемой частью любой ОС. В журналы записывается хронология событий, происходящих в используемой ОС, ее приложениях и службах.
Журналы являются полезным инструментом при возникновении различного рода неполадок системы и позволяют точно определять проблемы путем изучения предупреждений и сообщений об ошибках. Журналы событий используются для выявления инцидентов безопасности, диагностики проблем с производительностью, а также для обеспечения соответствия требованиям и аудита.
Журнал пространства ядра
Ядро ОС использует кольцевой буфер для хранения сообщений журнала, начиная с процесса загрузки системы. Этот буфер имеет фиксированный размер. После заполнения буфера новые сообщения будут перезаписывать старые. Все сообщения ядра записываются в кольцевой буфер с помощью функции printk()
. Далее сообщения из кольцевого буфера ядра сохраняются в файлах журнала в постоянном хранилище системы – /var/log/kern.log. Параметр конфигурации ядра CONFIG_PRINTK
позволяет вести журнал пространства ядра через printk()
. Если он не установлен, системные вызовы ядра возвращают ошибку ENOSYS
.
Сообщения ядра имеют собственные уровни (приоритеты), которые определяются ядром ОС для выявления серьезности конкретного сообщения.
Далее приведены доступные уровни (приоритеты) сообщений ядра:
KERN_EMERG
— экстренные сообщения (наивысший приоритет);KERN_ALERT
— ошибка, требующая немедленного внимания;KERN_CRIT
— критическая ошибка (аппаратная или программная);KERN_ERR
— ошибка;KERN_WARNING
— предупреждение;KERN_NOTICE
— замечание;KERN_INFO
— информационное сообщение;KERN_DEBUG
— отладочные сообщения;KERN_DEFAULT
— уровень ведения журнала ядра по умолчанию;KERN_CONT
— продолжение ведения журнала (низший приоритет).
Все сообщения функции printk()
записываются в кольцевой буфер ядра. Кольцевой буфер является файлом символьного устройства – /dev/kmsg. Устройство /dev/kmsg является абстракцией, предназначенной для чтения и записи в кольцевой буфер ядра.
Для управления кольцевым буфером ядра или его печати в стандартный вывод в консоли используется команда 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 |
| Экстренная ошибка | Система не может использоваться. |
1 |
| Важное предупреждение | Необходимо немедленно принять меры. |
2 | | Критическая ошибка | Описание критической ошибки. |
3 |
| Ошибка | Описание ошибки. |
4 | | Предупреждение | Описание предупреждения. |
5 |
| Уведомление | Важные сообщения. |
6 | | Информация | Информационные сообщения. |
7 |
| Отладка | Отладочные сообщения. |
Важным значением в сообщениях журнала также является категория программы, которая сформировала данное сообщение. Значение категории программы варьируется от 0 до 23.
Далее приведены категории программ:
Приоритет | Ключевое слово | Описание |
0 |
| Сообщения ядра ОС. |
1 |
| Сообщения на уровне пользователя. |
2 | | Сообщения почтовых систем. |
3 |
| Сообщения от прочих системных служб. |
4 |
| Сообщения безопасности или аутентификации, генерируемые системами авторизации или программами, которые запрашивают имена пользователей и пароли. Например, su, login, ftpd. |
5 |
| Внутренние сообщения syslog. |
6 |
| Сообщения, связанные с системой печати. |
7 |
| Сообщения подсистемы сетевых новостей (nntp). |
8 |
| Сообщения подсистемы UUID. |
9 | | Сообщения от подсистемы cron. |
10 |
| Сообщения безопасности или аутентификации, аналогичен auth. |
11 |
| Сообщения службы FTP. |
12 |
| Сообщения подсистемы сетевого времени (ntp). |
13 |
| Журнал аудита. |
14 |
| Журнал оповещений. |
15 | | Сообщения службы планирования заданий. |
16-23 |
| Зарезервировано для локального использования. |
Основные файлы журналов
По умолчанию события журналируются в каталог /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.
Дата последнего изменения: 03.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.