Предположим, что кроме журналов веб-сервера Apache у меня никогда не было контактов с какими-либо (профессиональными) журналами в любой операционной системе. Таким образом, ведение журнала, хотя я понимаю некоторые основы, все вместе - довольно новая тема. В настоящее время инвестиции, чтобы полностью изучить эту тему, кажутся достаточно большими, но я даже пока не знаю, стоит ли даже знать больше, чем самые абстрактные понятия.
Какие ресурсы вы могли бы предложить, если кто-то в этой ситуации потребляет (учебные руководства, справочные страницы, книги), чтобы узнать о ведении журнала?
Какие журналы должен читать обычный пользователь Linux ежедневно / ежемесячно? Правильно ли предположение, что они написаны для удобства чтения или они обычно оцениваются и используются другими инструментами?
Что должен знать обычный пользователь * nix и разработчик программного обеспечения об этих журналах?
Что нужно знать о ротации журналов, если вы не собираетесь управлять профессиональными веб-серверами с огромным количеством событий?
Ответы:
[Это было написано за несколько лет до широкого внедрения journald в системных системах и не затрагивает его. В настоящее время (в конце 2018 года) как journald, так и (r) syslog, описанные ниже, используются в таких дистрибутивах, как Debian. В других случаях вам может понадобиться установить rsyslog, если вы хотите использовать его вместе, но интеграция с journald проста.]
Я не буду особо обсуждать ведение журналов в отношении ubuntu, так как эта тема стандартизирована для linux в целом (и я полагаю, что большинство или все то, что я хочу сказать, также верно в целом для любого варианта * nix, но не поверь мне на слово). Я также не буду много говорить о том, «как читать логи», кроме ответа на этот вопрос:
Я предполагаю, что это зависит от приложения, но в целом, по крайней мере, в отношении того, что входит в системный журнал (см. Ниже), они должны быть удобочитаемыми для человека. «Значимым для меня» является еще одна проблема, лол. Однако они также могут быть структурированы таким образом, чтобы упростить их синтаксический анализ стандартными инструментами (grep, awk и т. Д.) Для конкретных целей.
В любом случае, во-первых, существует различие между приложениями, которые ведут свою собственную регистрацию, и приложениями, которые используют системный регистратор. Apache по умолчанию является первым, хотя он может быть настроен для более позднего (что, я думаю, большинство людей сочло бы нежелательным). Приложения, которые ведут свою собственную регистрацию, могут делать это любым способом, используя любое место для файла (файлов), поэтому об этом особо нечего сказать. Системный регистратор обычно упоминается как
syslog
.системный журнал
«Syslog» - это действительно стандарт , реализованный с помощью процесса-демона, обычно называемого syslogd (d - для демона!). Преобладающим демоном syslog, который в настоящее время используется в Linux, включая Ubuntu, является
rsyslogd
. Rsyslogd может многое, но в большинстве дистрибутивов он настроен «из коробки», эмулируя традиционный системный журнал, который сортирует вещи в простые текстовые файлы/var/log
. Вы можете найти документацию для этого в/usr/share/doc/rsyslog-doc-[version]
(будьте осторожны, также есть/usr/share/doc/rsyslog-[version]
, но это только уведомления из пакета с исходным кодом, такие какNEWS
иChangeLog
). Если он есть, это html, но Stack Exchange не позволяет встраивать ссылки на локальные файлы:Таким образом, вы можете попробовать скопировать это. Если его там нет, он может быть частью отдельного пакета, который не установлен. Запросите вашу упаковочную систему (например,
apt-cache search rsyslog | grep doc
).В конфигурации есть
/etc/rsyslog.conf
страница справочникаman rsyslog.conf
, хотя хотя на странице справочника есть хорошая ссылка, она может быть менее понятной в качестве введения. К счастью, основа stock rsyslog.conf соответствует основам традиционного syslog.conf, для которого существует множество введений и учебных пособий. Этот , например; что вы хотите , чтобы забрать из этого, в то время как вглядываясь в местном rsyslog.conf, является понимание объектов и приоритетов ( «приоритет» иногда называют LogLevel), так как они являются частью вышеупомянутого стандарта системного журнала. Причина, по которой этот стандарт важен, заключается в том, что rsyslog на самом деле получает свои данные через ядро, а то, что ядро реализует, является стандартом.Что касается
$
директив в rsyslog.conf, то они специфичны для rsyslog, и если вы установите этот дополнительный пакет doc, вы найдете руководство по нимrsyslog_conf_global.html
.Веселитесь ... если вам интересно, как приложения используют системный регистратор, посмотрите на
man logger
иman 3 syslog
.Вращение журнала
Нормативные средства ротации бревен через инструмент, который называется
logrotate
(и естьman logrotate
). Нормативный метод использования logrotate - с помощью демона cron , хотя это не обязательно делать таким образом (например, если вы склонны выключать свой рабочий стол каждый день, вы можете просто сделать это один раз при загрузке, прежде чем запускать syslog, но, очевидно, после того, как файловая система смонтирована rw).Там это введение хорошо LogRotate здесь . Обратите внимание, что logrotate не только для системного журнала , он может использоваться с любым файлом вообще. Базовый файл конфигурации есть
/etc/logrotate.conf
, но, поскольку конфигурация имеет директиву «include», обычно большинство вещей идет в отдельные файлы в/etc/logrotate.d
каталоге (здесь d для каталога, а не для демона; logrotate не является демоном).При использовании logrotate важно учитывать, как приложение будет реагировать, когда его файл журнала будет «повернут» - другими словами, перемещен - во время работы приложения. WRT (r) syslogd, он просто прекратит запись в этот журнал (я думаю, для этого есть оправдание безопасности). Обычный способ справиться с этим - попросить syslog перезапустить (и заново открыть все его файлы), поэтому вы увидите
postrotate
директиву в файлах logrotate conf, отправляющую SIGHUP демону syslog.источник
syslog-ng
тоже упомянули , вы написали все, что можно сказать о linux-logging. Отличный ответ./etc/rsyslog.conf
. Например: часто вещи выше определенного приоритета войдут в/var/log/messages
, и вещи ниже, в которые войдут/var/log/notice
. Мне также нравится иметь журнал, который содержит все, что делает для двойного и тройного перекрытия, но если вы держите их повернутыми, это не имеет большого значения.rsyslog
разве не демон-обертка вокругlogrotate
, верно? Почему так ?