[Это было написано за несколько лет до широкого внедрения 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 не позволяет встраивать ссылки на локальные файлы:
file://usr/share/doc/rsyslog-doc/index.html
Таким образом, вы можете попробовать скопировать это. Если его там нет, он может быть частью отдельного пакета, который не установлен. Запросите вашу упаковочную систему (например, 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.