дізнатися про загальну реєстрацію / логротацію на Linux?


13

Припустимо, що поруч із журналами веб-сервера Apache я жодного разу не контактував із будь-якими (професійними) журналами в будь-якій операційній системі. Тож ведення журналів, хоча я розумію деякі основи, все разом є досить новою темою. На даний момент інвестиції для повного ознайомлення з цією темою здаються досить великими, але я навіть ще не знаю, чи варто навіть знати більше, ніж самі абстрактні поняття.

Які ресурси ви б запропонували, щоб хтось у цій ситуації споживав (підручники, довідники, книги), щоб дізнатися про ведення журналу?

Які журнали повинен читати звичайний користувач Linux щодня / щомісяця? Чи є правильним припущення, що вони написані для читабельності для людини чи їх загалом оцінюють та використовують інші інструменти?

Що повинні знати звичайні користувачі та розробники програмного забезпечення * nix про ці журнали?

Що потрібно знати про обертання журналу, якщо від вас не очікується керування професійними веб-серверами з величезною кількістю подій?


Ви не заперечуєте, якщо я (або ви) редагуєте заголовок, щоб читати "в Linux" замість "на ubuntu", оскільки це, по суті, те саме питання (див. Мою відповідь)? Таким чином, ми рідше стикаємося із закритими повторюваними питаннями на тему "навчання журналу з арки", "навчання журналу на centOS" тощо.
goldilocks

Я не проти таких змін, доки відповіді хороші :)
erikbwork

Відповіді:


18

[Це було написано за кілька років до широкого прийняття журналу про системні системи, і це не стосується. В даний час (кінець 2018 року) і журнал, і (r) syslog, описані нижче, використовуються на дистрибутивах, таких як Debian. Для інших, можливо, доведеться встановити rsyslog, якщо ви хочете використовувати його поряд, але інтеграція з journald є простою.]

Я не буду особливо обговорювати ведення журналів щодо ubuntu, оскільки тема в цілому стандартизована для Linux (і я вважаю, що більшість або все те, що я маю сказати, також справедливо в цілому для будь-якого смаку * nix, але не візьміть за це моє слово). Я також не скажу багато про те, як читати журнали, окрім відповіді на це запитання:

Чи є правильним припущення, що вони написані для читабельності для людини чи їх загалом оцінюють та використовують інші інструменти?

Я думаю, це залежить від програми, але в цілому, принаймні, що стосується того, що входить у syslog (див. Нижче), вони повинні бути зрозумілими для людини. "Мені значуще" - це ще одне питання, lol. Однак вони можуть бути також структуровані таким чином, щоб полегшити їх аналіз зі стандартними інструментами (grep, awk тощо) для конкретних цілей.

У будь-якому випадку, по-перше, існує різниця між додатками, які здійснюють власну реєстрацію, та програмами, які використовують системний реєстратор. Apache за замовчуванням є першим, хоча це можна налаштувати робити пізніше (що, на мою думку, більшість людей вважає небажаним). Програми, які здійснюють свій власний журнал, можуть робити це будь-яким чином, використовуючи будь-яке місце для файлів (файлів), тому про це говорити не багато. Зазвичай системний реєстратор називається syslog.

syslog

"Syslog" - це дійсно стандарт, який реалізується з демоновим процесом, який загалом називається syslogd (d - для демона!). Переважним демоном syslog, який зараз використовується в Linux, включаючи ubuntu, є rsyslogd. Rsyslogd може зробити багато, але, налаштований поза полем у більшості дистрибутивів, він імітує традиційний syslog, який сортує матеріали у звичайні текстові файли /var/log. Ви можете знайти документацію на нього /usr/share/doc/rsyslog-doc-[version](будьте уважні, є також /usr/share/doc/rsyslog-[version], але це лише повідомлення від вихідного пакету, такі як NEWSі ChangeLog). Якщо він є, це html, але Stack Exchange не дозволяє вставляти локальні посилання на файли:

file://usr/share/doc/rsyslog-doc/index.html

Тож ви можете спробувати скопіювати це вставлення. Якщо його там немає, він може бути частиною окремого пакету, який не встановлений. Запитайте систему упаковки (наприклад, apt-cache search rsyslog | grep doc).

Конфігурація входить /etc/rsyslog.conf, має сторінку вручну man rsyslog.conf, хоча, хоча на сторінці вручну є чіткі посилання, вона може бути менш проникною як вступ. На щастя, основи запасу rsyslog.conf відповідають принципам традиційного syslog.conf, для яких існує багато вступів та навчальних посібників. Цей , наприклад; те, що ви хочете забрати від цього, вдивляючись у ваш місцевий rsyslog.conf, - це розуміння можливостей та пріоритетів ("пріоритет" іноді називають loglevel), оскільки вони є частиною згаданого стандарту syslog. Причина, що цей стандарт є важливою, полягає в тому, що rsyslog фактично отримує свої речі через ядро, а те, що реалізує ядро, це стандарт.

Що стосується $директив у rsyslog.conf, це специфічні для rsyslog, і якщо ви встановите цей необов'язковий пакет документів, ви знайдете посібник з них rsyslog_conf_global.html.

Будьте веселі ... якщо вам цікаво, як програми використовують системний реєстратор, подивіться man loggerі man 3 syslog.

Обертання журналу

Нормативний засіб обертання колод - це інструмент, який називається logrotate(і є man logrotate). Нормативний метод використання логротату здійснюється через демон cron , хоча це не потрібно робити так (наприклад, якщо ви схильні щодня вимикати робочий стіл, ви можете просто зробити це один раз під час завантаження до запуску syslog, але, очевидно, після встановлення файлової системи rw).

Там це введення добре LogRotate тут . Зауважте, що logrotate - це не лише для syslog , але він може взагалі використовуватись із будь-яким файлом. Базовий файл конфігурації є /etc/logrotate.conf, але оскільки конфігурація має директиву "включати", зазвичай більшість матеріалів переходить до окремих файлів у /etc/logrotate.dкаталозі (тут d - для каталогу, а не демона; logrotate - не демон).

Важливе, що слід враховувати при використанні логротату, - це те, як програма повторно діятиме, коли її файл журналу "повертається" - іншими словами, переміщується - під час роботи програми. WRT (r) syslogd, він просто перестане писати до цього журналу (я думаю, що для цього є обґрунтування безпеки). Звичайний спосіб вирішити це - сказати syslog перезапустити (і повторно відкрити всі його файли), ось чому ви побачите postrotateдирективу у файлах logrotate conf, що надсилають SIGHUP до демона syslog.


2
Якщо ви також згадуєте syslog-ng, ви написали все, що можна сказати про Linux-журнал. Відмінна відповідь.
Нілс

Я багато чого навчився і маю більше читати джерела. Спасибі! Btw. Чому було б погано використовувати системний журнал для apache? І які журнали я хочу прочитати?
erikbwork

@ erikb85 1) Переважно тому, що апач генерує багато результатів. Мені не довелося довго налаштовувати apache, тому я не можу пригадати, наскільки гнучким є WRT для надсилання конкретних речей у syslog (але, мабуть, дуже гнучким) 2) WRT-журнали, які ви хочете прочитати, подивіться за логікою у вашому /etc/rsyslog.conf. Наприклад: часто речі, що перевищують певний пріоритет, будуть входити /var/log/messages, а ті, що нижче, будуть входити /var/log/notice. Мені подобається також мати журнал, який містить усе, що робить подвійне і потрійне перекриття, але якщо ви будете тримати їх у повороті, це не зайво.
goldilocks

Тільки для підтвердження, rsyslogчи не є обгортка демона навколо logrotate, правда? Чому так ?
Томас

@Thomas Вони виконують різні цілі, хоча (r) syslog міг реалізувати обертання, щоб позбавити потреби в логротаті. Однак, маючи їх окремо, ви можете використовувати logrotate для речей, крім файлів syslog.
goldilocks
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.