Керування журналами
Основний огляд¶
У цьому розділі ви дізнаєтеся, як керувати журналами в операційній системі.
Q: Що таке log (журнал)?
Log:Записує всі події та повідомлення, що відбуваються з моменту запуску операційної системи, включаючи журнали завантаження, журнали ініціалізації ядра, журнали ініціалізації systemd
та журнали запуску або роботи програм. Журнал є однією з найважливіших функцій операційної системи. Адміністратори можуть запитувати журнали для усунення існуючих або майбутніх проблем.
У RHEL 8.x та RHEL 9.x збір журналів здійснюється переважно за допомогою таких двох програм:
- rsyslog - Програма, яка швидко збирає та обробляє журнали. Це оновлена версія
syslog
. Офіційний веб-сайт - journald - Один з компонентів
systemd
rsyslog¶
У Rocky Linux 8.x або 9.x у каталозі /var/log/ є різні файли журналів. Давайте дізнаємося про них:
/var/log/boot.log
- Реєстрація подій, що відбуваються під час завантаження операційної системи. Вміст файлу — звичайний текст./var/log/btmp
- Записує журнал помилок входу. Щоб переглянути цей бінарний файл, скористайтеся командоюlastb
./var/log/cron
- Записує журнали, пов'язані із запланованими завданнями системи. Вміст файлу — звичайний текст./var/log/dmegs
- Записує журнал самоперевірки ядра після запуску. Вміст файлу — звичайний текст. Ви також можете скористатися командоюdmegs
для перегляду./var/log/lastlog
- Записує час останнього входу всіх користувачів в операційну систему. Щоб переглянути цей бінарний файл, потрібно скористатися командоюlastlog
./var/log/maillog
- Записує журнали, пов'язані з електронною поштою./var/log/messages
- Файл журналу системного рівня, який записує ядро операційної системи. Вміст файлу — звичайний текст. Коли у вашій операційній системі виникають помилки, спочатку слід переглянути файл журналу./var/log/secure
- Записує журнали, пов'язані з ідентифікацією користувача, такі як вхід користувача, перемикачsu
, додавання нового користувача, зміна пароля користувача тощо./var/log/wtmp
- Записує вхід та вихід користувачів, події запуску, завершення роботи та перезапуску операційної системи. Щоб переглянути цей бінарний файл, скористайтеся командоюlast
.
Для звичайних текстових файлів формат зазвичай такий:
- Час, коли відбулася подія
- На якій машині сталася подія
- Назва служби або програми, яка спричинила подію
- Конкретний опис та пояснення події
- Інформація про користувача та термінал
- Деякі ключові слова (наприклад, помилка, невдача, інформація тощо)
Формат журналів для різних цілей дуже різниться, тому наведений вище опис формату не може відображати всі журнали.
Якщо у вашій операційній системі відсутній rsyslog
, виконайте таку команду:
Shell > dnf install -y rsyslog
Файл конфігурації¶
/etc/rsyslog.conf
- Основні файли конфігурації/etc/rsyslog.d/
- Каталог зберігання додаткових файлів конфігурації
/etc/rsyslog.conf
складається переважно з кількох частин:
- Модуль завантаження
- Глобальні директиви
- Правила - Автор покаже це детально.
Після десятиліть розробки, rsyslog
наразі підтримує три різні формати конфігурації:
- базовий (sysklogd) - Цей формат підходить для представлення базової конфігурації в одному рядку.
mail.info /var/log/mail.log
mail.err @@server.example.net
- розширений (RainerScript) - Дуже гнучкий та точний формат конфігурації.
mail.err action(type="omfwd" protocol="tcp" queue.type="linkedList")
- застарілий (legacy) - цей формат вилучено з рекомендацій. Будь ласка, не використовуйте його.
Правила¶
Вміст цього розділу за замовчуванням як показано нижче:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
Кожен рядок правила складається з двох частин:
- поле вибору – складається з об’єктів та пріоритетів
- поле дії – Як ви хочете обробити ці відповідні повідомлення
Поля відокремлюються одне від одного одним або кількома пробілами.
Поле | Опис |
---|---|
auth | Записує події, пов'язані з безпекою системи, автентифікацією користувачів та керуванням авторизацією |
authpriv | Записує більш конфіденційні події безпеки (такі як операції sudo ). "priv" еквівалентно приватному |
cron | Запис подій, пов'язаних із запланованими завданнями |
daemon | Записує журнал роботи системного демона, що охоплює запуск служби, стан роботи та інформацію про помилки |
ftp | Записує журнали операцій, пов'язані з FTP-сервісами (такими як vsftpd та proftpd ), включаючи інформацію про підключення, передачу файлів та помилки |
kern | Записує журнал, що генерується під час роботи ядра Linux, охоплюючи основні події, такі як драйвери обладнання, модулі ядра та системні винятки |
lpr | Записує журнал роботи служби друку, що охоплює надсилання завдань друку, керування чергою та інформацію про помилки |
mail | Записує інформацію журналу поштових служб (таких як Postfix та Sendmail), включаючи надсилання, отримання пошти, обробку черги та події помилок |
news | Рідко використовується |
security | те саме, що й auth |
syslog | Журнали записів, створені службою syslog |
user | Записує інформацію журналу, створену програмами або користувачами простору користувача |
uucp | Записує журнали операцій, пов'язані з протоколом копіювання Unix-to-Unix (UUCP), включаючи передачу файлів, виконання віддалених команд та інші сценарії |
local0 | Зарезервовано |
local1 | Зарезервовано |
.... | Зарезервовано |
local7 | Зарезервовано |
*
представляє всі об'єкти. Ви також можете використовувати ,
та ;
для об'єднання об'єктів в однорядкову конфігурацію. ,
означає логічне або; ;
представляє роздільник правила.
auth,authpriv.* /var/log/auth.log
# Equivalent to
auth.* /var/log/auth.log
authpriv.* /var/log/auth.log
kern.err;mail.alert /var/log/critical.log
З'єднувач | Опис |
---|---|
. | Журнали записів мають вищий пріоритет, ніж ключові слова. Наприклад, cron.info означає, що записуватиметься в cron , пріоритет журналу якого вищий за info |
.= | Записує лише відповідний пріоритет ключового слова. Наприклад, *.=emerg вказує на те, що журнали з пріоритетом, що дорівнює emerg , записуватимуться у всіх програмах |
.! | Це означає виключено або не дорівнює |
Пріоритети відсортовані від низького до високого:
Назва | Опис |
---|---|
debug | Загальна інформація про налагодження |
info | Основна інформація про сповіщення |
notice | Загальна інформація певної важливості |
warning | Попереджувальне повідомлення, цей тип інформації не може вплинути на нормальну роботу операційної системи або служби |
err | Повідомлення про помилки, які можуть впливати на нормальну роботу операційної системи та служб |
crit | Критичний стан, серйозніший за "err" |
alert | Стан сповіщення серйозніший, ніж "crit", і системному адміністратору потрібно негайно ним зайнятися |
emerg | Надзвичайний стан, за якого операційна система зазвичай непридатна для використання |
*
представляє всі пріоритети журналу.
Чим нижчий пріоритет журналу, тим детальніший записаний вміст і тим нижчий рівень серйозності. Чим вищий пріоритет журналу, тим менше контенту записується і тим серйозніша проблема.
"action" стосується місця збереження або надсилання журналу:
/var/log/secure
- Зберігає журнал у локальному файлі@192.168.100.20:22
- Віддалена машина:omusrmsg:root,frank,jack
- Визначає список онлайн-користувачів.*
представляє всіх користувачів. "omusrmsg" стосується «модуля виводу для користувацьких повідомлень»./dev/tty12
- Спеціальні термінальні пристрої-
- Вимикає механізм буферизації під час запису у файл
Ротація Журналу¶
Log rotation - Ротація журналів вирішує проблеми зайнятості сховища та зниження продуктивності, спричинені постійним зростанням файлів журналів. Конкретні функції:
- Rotation - Автоматично архівує поточний файл журналу відповідно до певних правил (наприклад, часу або розміру файлу) та створює новий порожній файл журналу для запису, щоб запобігти його надмірному розміру.
- Compress - Стискає архівовані старі журнали для економії місця на диску.
- Delete - Зберігає відповідні файли журналів та видаляє старі, термін дії яких закінчився, згідно з відповідними політиками.
Ми часто використовуємо інструмент logrotate
для обертання журналів.
Правила іменування файлів журналів під час ротації:
- параметр
dateext
- Використовує дату як суфікс файлу для ротації журналу. Наприклад, під час першої ротації журналу старий файл журналу "secure" зміниться на "secure-20250424", аlogrotate
створить новий "secure" - Без параметра
dateetx
– Використовує номери ротації як суфікс файлу після ротації журналу. Наприклад, коли відбувається перша ротація журналу, старий файл журналу "secure" зміниться на "secure.1", аlogrotate
створить новий "secure"
/etc/logrotate.conf та /etc/logrotate.d/¶
Shell > grep -v -E "^#|^$" /etc/logrotate.conf
weekly
rotate 4
create
dateext
include /etc/logrotate.d
Shell > ls -l /etc/logrotate.d/
-rw-r--r-- 1 root root 130 Feb 7 2023 btmp
-rw-r--r--. 1 root root 160 Dec 5 2023 chrony
-rw-r--r--. 1 root root 88 Apr 12 2021 dnf
-rw-r--r-- 1 root root 93 Mar 11 17:29 firewalld
-rw-r--r--. 1 root root 162 Apr 16 19:49 kvm_stat
-rw-r--r-- 1 root root 289 Dec 18 01:38 sssd
-rw-r--r-- 1 root root 226 Nov 5 15:43 syslog
-rw-r--r-- 1 root root 145 Feb 19 2018 wtmp
/etc/logrotate.conf - Глобальний профіль для ротації журналів. Якщо елементи або параметри конфігурації перетинаються, перевагу мають останні зчитані елементи або параметри конфігурації. Порядок читання:
- Прочитати вміст файлу /etc/logrotate.conf зверху вниз
- Файли, включені за допомогою ключового слова "include"
Загальні елементи або параметри конфігурації:
Елементи | Опис |
---|---|
daily | Визначає цикл журналу у днях |
weekly | У тижнях |
monthly | У місяцях |
rotate <NUMBER> | Кількість файлів, збережених після ротації журналу |
compress | Стиснення старих журналів відбувається після ротації журналів |
create <MODE> <OWNER> <GROUP> | Після ротації журналу визначте власника, групу та дозволи нового файлу журналу. |
mail <E-MAIL ADDRESS> | Після ротації журналу надсилає вихідний вміст електронною поштою на вказану адресу електронної пошти |
missingok | Якщо файл журналу не існує, попереджувальна інформація журналу ігнорується |
notifempty | Якщо вміст файлу журналу порожній, ротація журналу не відбувається |
minsize <SIZE> | Умова розміру файлу для обертання журналу, тобто обертання журналу відбувається лише тоді, коли відповідає цій умові |
dateext | Використовує дату як суфікс файлу для ротації журналу |
Якщо ви встановлюєте програмний пакет з репозиторію, розробник програмного пакета визначає ротацію журналів програми, і користувачам зазвичай не потрібно змінювати правила ротації журналів. Якщо ви встановлюєте програму шляхом компіляції вихідного коду, вам потрібно врахувати та вручну налаштувати ротацію журналів.
Команда logrotate
¶
Використання: logrotate [OPTION...] <configfile>
-v
- Відображає процес обертання колод-f
- Застосування ротації журналів відбувається незалежно від того, чи виконано умови для ротації журналів
Shell > logrotate -v /etc/logrotate.conf
reading config file /etc/logrotate.conf
including /etc/logrotate.d
reading config file btmp
reading config file chrony
reading config file dnf
reading config file firewalld
reading config file kvm_stat
reading config file sssd
reading config file syslog
reading config file wtmp
Reading state from file: /var/lib/logrotate/logrotate.status
Allocating hash table for state file, size 64 entries
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Handling 8 logs
rotating pattern: /var/log/btmp monthly (1 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/btmp
Now: 2025-04-24 12:35
Last rotated at 2025-04-04 12:08
log does not need rotating (log has been rotated at 2025-4-4 12:8, that is not month ago yet)
rotating pattern: /var/log/chrony/*.log weekly (4 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/chrony/*.log
log /var/log/chrony/*.log does not exist -- skipping
not running postrotate script, since no logs were rotated
rotating pattern: /var/log/hawkey.log weekly (4 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/hawkey.log
Now: 2025-04-24 12:35
Last rotated at 2025-04-19 09:11
log does not need rotating (log has been rotated at 2025-4-19 9:11, that is not week ago yet)
rotating pattern: /var/log/firewalld weekly (4 rotations)
empty log files are rotated, only log files >= 1048576 bytes are rotated, old logs are removed
considering log /var/log/firewalld
Now: 2025-04-24 12:35
Last rotated at 2024-05-20 13:00
log does not need rotating ('minsize' directive is used and the log size is smaller than the minsize value)
rotating pattern: /var/log/kvm_stat.csv 10485760 bytes (5 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/kvm_stat.csv
log /var/log/kvm_stat.csv does not exist -- skipping
rotating pattern: /var/log/sssd/*.log weekly (2 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/sssd/sssd_implicit_files.log
Now: 2025-04-24 12:35
Last rotated at 2024-05-26 12:42
log does not need rotating (log is empty)
considering log /var/log/sssd/sssd_kcm.log
Now: 2025-04-24 12:35
Last rotated at 2025-02-08 13:49
log does not need rotating (log is empty)
considering log /var/log/sssd/sssd.log
Now: 2025-04-24 12:35
Last rotated at 2024-05-26 12:42
log does not need rotating (log is empty)
considering log /var/log/sssd/sssd_nss.log
Now: 2025-04-24 12:35
Last rotated at 2024-05-26 12:42
log does not need rotating (log is empty)
not running postrotate script, since no logs were rotated
rotating pattern: /var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
weekly (4 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/cron
Now: 2025-04-24 12:35
Last rotated at 2025-04-19 09:11
log does not need rotating (log has been rotated at 2025-4-19 9:11, that is not week ago yet)
considering log /var/log/maillog
Now: 2025-04-24 12:35
Last rotated at 2025-04-19 09:11
log does not need rotating (log has been rotated at 2025-4-19 9:11, that is not week ago yet)
considering log /var/log/messages
Now: 2025-04-24 12:35
Last rotated at 2025-04-19 09:11
log does not need rotating (log has been rotated at 2025-4-19 9:11, that is not week ago yet)
considering log /var/log/secure
Now: 2025-04-24 12:35
Last rotated at 2025-04-19 09:11
log does not need rotating (log has been rotated at 2025-4-19 9:11, that is not week ago yet)
considering log /var/log/spooler
Now: 2025-04-24 12:35
Last rotated at 2025-04-19 09:11
log does not need rotating (log has been rotated at 2025-4-19 9:11, that is not week ago yet)
not running postrotate script, since no logs were rotated
rotating pattern: /var/log/wtmp monthly (1 rotations)
empty log files are rotated, only log files >= 1048576 bytes are rotated, old logs are removed
considering log /var/log/wtmp
Now: 2025-04-24 12:35
Last rotated at 2024-05-20 13:00
log does not need rotating ('minsize' directive is used and the log size is smaller than the minsize value)
journald¶
systemd
— це програма, яка використовується для ініціалізації та бере на себе багато системних компонентів. Використовуйте journald
у systemd
, щоб перейняти вміст журналу.
journald
— це демон у systemd
, який бере на себе ведення журналів. Для читання журналів потрібно скористатися командою journalctl
.
Зверніть увагу, що journald
не вмикає збереження журналів за замовчуванням, тобто він зберігає та записує всі журнали лише з моменту запуску. Після перезавантаження операційної системи відбувається видалення журналів історії. Усі тимчасово збережені файли журналів за замовчуванням знаходяться в каталозі /run/log/journal/.
Shell > tree -hugp /run/log/journal/638c6d5d2b674f77be56174469099106/
/run/log/journal/638c6d5d2b674f77be56174469099106/
└── [-rw-r----- root systemd-journal 8.0M] system.journal
0 directories, 1 file
Цей тимчасовий файл є двійковим. Ви повинні скористатися командою journalctl
для його розбору.
journald
може записувати:
- boot log
- kernel log
- application log
journald
позначає журнали відповідно до пріоритету та засобу:
- пріоритет - Важливість логу. Як і у випадку з
rsyslog
, чим вищий пріоритет, тим менше інформації записується та тим серйозніша проблема. Чим нижчий пріоритет, тим більше інформації записується, і тим менша проблема. Сортувати за пріоритетом від низького до високого:
Числовий код | пріоритет | ключові слова |
---|---|---|
7 | Debug | debug |
6 | Informational | info |
5 | Notice | notice |
4 | Warning "Важливо" | warning |
3 | Помилка | err |
2 | Critical | crit |
1 | Alert | alert |
0 | Emergency | emerg |
- об'єкт - У цій таблиці показано об'єкт:
Числовий код | об'єкт |
---|---|
0 | kern |
1 | user |
2 | mail |
3 | daemon |
4 | auth |
5 | syslog |
6 | lpr |
7 | news |
8 | uucp |
9 | |
10 | authpriv |
11 | ftp |
12 | |
13 | |
14 | |
15 | cron |
16 | local0 |
17 | local1 |
18 | local2 |
19 | local3 |
20 | local4 |
21 | local5 |
22 | local6 |
23 | local7 |
Команда journalctl
¶
Використання: journalctl [OPTIONS...] [MATCHES...]
.
Ось список опцій у невпорядкованому списку:
-u
- Вказує «одиницю»; ви можете використовувати це кілька разів в команді одного рядка. Наприклад,journalctl -u crond.service -u sshd.service
--system
- Показує повідомлення від системних служб та ядра--user
- Показує повідомлення від служби поточного користувача-k
- Показує журнал повідомлень ядра з поточного завантаження--since=DATA
чи-S
- Показує записи, які не старіші за вказану дату. Формат дати: "YYYY-MM-DD HH:MM:SS". Наприклад,journalctl --since="2025-04-24 14:00:30
--until=DATA
чи-U
- Показує записи, які не новіші за вказану дату. Формат дати: "YYYY-MM-DD HH:MM:SS". Наприклад,journalctl --since="2025-04-01 05:00:10" --until="2025-04-05 18:00:30"
--list-boots
- Показує стислу інформацію про записані завантаження-n N
- Контролює кількість виведених записів. Якщо "N" не вказано, значення за замовчуванням дорівнює 10-p PRIORITY
- Визначає пріоритет або діапазон пріоритетів. Якщо вказати одне ключове слово пріоритету журналу, буде відображено цей пріоритет та записи з вищим пріоритетом. Наприклад,journalctl -p 3
абоjournalctl -p err
Еквівалентноjournalctl -p 0..3
абоjournalctl -p emerg..err
-b
- Запит журналу з початку поточного ідентифікатора завантаження. Не плутайте ідентифікатор завантаження з індексним номером завантаження ядра.-f
- Динамічний журнал запитів, подібний до командиtail -f
-x
- Додає пояснення повідомлень, де це можливо-e
- Переходить на кінцеву сторінку журналу, часто використовується з опцією-x
-r
- Зворотний лог.--disk-usage
- Відображає дисковий простір, зайнятий файлами журналів--rotate
- Запитує негайну ротацію файлів журналу--vacuum-size=BYTES
- Зменшує файл журналу до заданого розміру. Поступово видаляє старий вміст журналу, доки розмір файлу не досягне заданого значення. Підтримувані суфікси розміру: K, M, G, T--vacuum-time=TIME
- Ви можете видалити старі записи журналу, вказавши момент часу, тобто записи журналу, зроблені раніше, будуть видалені. Підтримувані суфікси часу: s, m, h, дні, місяці, тижні, роки--vacuum-files=INT
- Вказує, скільки файлів журналу потрібно зарезервувати-N
- Перелічує всі назви полів, що використовуються наразі. Користувачі можуть використовувати метод "FIELD=VALUE" для пошуку пов'язаного контенту. Наприклад,journalctl _SYSTEMD_UNIT=sshd.service
.-g
або-grep=PATTERN
- Зіставляє вміст журналу за шаблоном та підтримує регулярні вирази. Якщо PATTERN повністю записаний у нижньому регістрі, вміст журналу, що відповідає, за замовчуванням не враховує регістр. Ви можете налаштувати чутливість до регістру за допомогою опції--case-sensitive
--case-sensitive=[BOOLEAN]
- Налаштовує, чи враховувати регістр літер.-o
або--output=STRING
- Змінює режим виводуjournalctl
. РЯДОК може бути short, short-precise, short-iso, short-iso-precise, short-full, short-monotonic, short-unix, verbose, export, json, json-pretty, json-sse, cat та with-unit-q
або--quiet
- Тихий вихід--sync
- Синхронізує незаписані повідомлення журналу на диск
/etc/systemd/journald.conf¶
Shell > cat /etc/systemd/journald.conf
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=no
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
Використовує "[ ]" для розміщення заголовка, як і у файлах конфігурації інших компонентів systemd
, а під заголовком розташовані певні пари ключ-значення. У парі ключ-значення немає пробілу по обидва боки від знака рівності. Повну сторінку посібника з налаштування див. у man 5 journald.conf
Storage=
- Керує розташуванням сховища данихjournald
. Значення за замовчуванням — auto.volatile - Зберігає дані журналу в пам'яті, тобто у тимчасовому файлі, розташованому в каталозі /run/log/journal/.
- persistent - Зберігає дані журналу в каталозі /var/log/journal/. Вам потрібно створити це вручну. Якщо цей каталог недоступний для запису, дані журналу будуть записані в каталог /run/log/journal/.
- auto - схожий з persistent
none - Не зберігає жодних журналів, але це не вплине на журнали, що пересилаються іншим "цілям"
Compress=
- Чи вмикати функцію стиснення. Значення за замовчуванням — так.Seal=
- Чи використовувати FSS (Forward Secure Sealing) для захисту записів журналу від зловмисного втручання. Значення за замовчуванням — так.SplitMode=
- Визначте основу для розділення файлів журналів. Виконання передумови (Storage=persistent) має відбутися, перш ніж воно набуде чинності. Значення за замовчуванням — uid.SyncIntervalSec=
- Визначає часовий інтервал для синхронізації даних журналу в пам'яті з диском. Зверніть увагу! Це відбувається лише для пріоритетів журналів помилок, попереджень, повідомлень, інформації та налагодження. Інші пріоритети журналів негайно синхронізуються з диском. Значення за замовчуванням становить 5m.RateLimitIntervalSec=
- Визначає часовий інтервал для частоти створення журналу. Значення за замовченням - 30s.RateLimitBurst=
- Максимальна кількість записів, які журнал генерує за заданий інтервал часу. Значення за замовченням - 10000. Якщо кількість записів у журналі перевищує 10 000 протягом заданого інтервалу часу, надлишкові журнали будуть видалені, а нові записи не створюватимуться до наступного інтервалу часу.SystemMaxUse=
- Контролює загальний розмір усіх файлів журналу в каталозі /var/log/journal/.SystemKeepFree=
- Контролює обсяг дискового простору, який потрібно резервувати в каталозі /var/log/journal/. На основі 1024 року суфікси включають K, M, G, T, P, ESystemMaxFileSize=
- Обмежує розмір одного файлу в каталозі /var/log/journal/. Якщо розмір перевищує заданий розмір, відбудеться обертання журналуSystemMaxFiles=
- Визначає, скільки файлів зберігати в каталозі /var/log/journal/. Коли воно перевищує визначену кількість, найстаріший журнал буде видалено.RuntimeMaxUse=
- Контролює загальний розмір даних журналу в каталозі /run/log/journal/.RuntimeKeepFree=
- Контролює, скільки місця резервувати в каталозі /run/log/journal/.RuntimeMaxFileSize=
- Керує розміром одного файлу журналу в каталозі /run/log/journal/. Коли колода досягне заданого розміру, відбудеться її обертання.RuntimeMaxFiles=
- Скільки файлів журналу потрібно зберігати в каталозі /run/log/journal/?MaxRetentionSec=
- Визначає час зберігання файлів журналів; видаляє старі файли журналів, якщо вони перевищують визначений час. Значення 0 вказує на те, що функція вимкнена. Суфікс значення має рік, місяць, тиждень, день, год, хвMaxFileSec=
- Ротація журналів залежно від часу. Оскільки опитування на основі розміру файлу (SystemMaxFileSize
таRuntimeMaxFileSize
) вже існує, опитування журналу на основі часу зазвичай не потрібне. Встановіть значення 0, щоб вимкнути цю функцію.ForwardToSyslog=
- Чи пересилати зібрані повідомлення журналу традиційному демонуsyslog
. Значення за замовченням - no.ForwardToKMsg=
- Чи пересилати отримане повідомлення журналу до kmsg. Значення за замовченням - no.ForwardToConsole=
- Чи пересилати отримані повідомлення журналу до системної консолі. Значення за замовченням - no. Якщо встановлено значення «так», вам також потрібно налаштуватиTTYPath
ForwardToWall=
- Чи надсилати отримане повідомлення журналу як попередження всім зареєстрованим користувачам. Значення за замовчуванням — так.TTYPath=
- Вказує шлях до консолі. ВимагаєForwardToConsole=yes
. Значення за замовчуванням — /dev/consoleMaxLevelStore=
- Встановлює максимальний рівень запису у файлі журналу. Значення за замовчуванням — debugMaxLevelSyslog=
- Встановлює максимальний рівень журналу, що пересилається традиційному демонуsyslog
. Значення за замовчуванням — debugMaxLevelKMsg=
- Встановлює максимальний рівень журналу, що пересилається до kmsg. Значення за замовченням - noticeMaxLevelConsole=
- Встановлює максимальний рівень журналу, що пересилається до системної консолі. Значення за замовченням - infoMaxLevelWall=
- Встановлює максимальний рівень журналу, що надсилається всім зареєстрованим користувачам. Значення за замовчуванням —emerg
LineMax=
- Максимально допустима довжина (байти) кожного запису журналу під час перетворення потоку журналів на записи журналів. З основою 1024 суфікс може бути K, M, G або T. Значення за замовчуванням — 48K
Інші інструкції¶
Якщо ви не зміните жодної конфігурації в /etc/systemd/journald.conf, rsyslog
та journald
можуть співіснувати, не впливаючи один на одного.
Shell > cat /etc/rsyslog.conf
...
#### MODULES ####
module(load="imuxsock" # provides support for local system logging (e.g. via logger command)
SysSock.Use="off") # Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
module(load="imjournal" # provides access to the systemd journal
UsePid="system" # PID nummber is retrieved as the ID of the process the journal entry originates from
StateFile="imjournal.state") # File to store the position in the journal
#module(load="imklog") # reads kernel messages (the same are read from journald)
#module(load="immark") # provides --MARK-- message capability
...
journald
перешле отримані дані журналу до сокета /run/systemd/journal/syslog
для полегшення використання традиційних служб журналювання (rsyslog, syslog-ng). Однак, з конфігураційного файлу ми можемо дізнатися, що rsyslog
не збирає журнали з journald
за допомогою сокетів, а інтегрується через модуль введення (imjournal).
Q: Чи може операційна система не використовувати journald
для ведення журналу?
Так. За замовчуванням, rsyslog
та journald
можуть співіснувати в операційній системі, не впливаючи один на одного. Співіснування не є найкращим вибором для деяких сценаріїв використання, орієнтованих на продуктивність (таких як пропускна здатність даних та споживання пам'яті). Ви можете налаштувати роботу rsyslog
лише в режимі сокета, що покращує продуктивність та записує всі журнали у звичайному тексті. Однак, якщо вам потрібні структуровані журнали, ця зміна не підходить. Відповідні кроки такі:
Shell > vim /etc/rsyslog.config
...
module(load="imuxsock"
SysSock.Use="on")
# module(load="imjournal"
# UsePid="system"
# StateFile="imjournal.state")
module(load="imklog")
...
Shell > vim /etc/systemd/journald.conf
[Journal]
Storage=none
...
ForwardToSyslog=yes
...
Shell > reboot
Author: tianci li
Contributors: Ganna Zhyrnova, Steven Spencer