Разница между / var / log / messages, / var / log / syslog и /var/log/kern.log?

68

Для целей ведения журнала ядра, почему у меня есть три разные, не включены уровни протоколирования среди /var/log/messages, /var/log/syslogи /var/log/kern.log?

Студент в университете
источник
Обратите внимание, что / var / log / messages - это системный журнал в системах, не относящихся к Debian / не Ubuntu, таких как системы RHEL или CentOS.
Томас Уорд
Обратите внимание, что journalctlмедленно заменить, syslogкак перейти к ресурсу для мониторинга системных сообщений.
WinEunuuchs2Unix

Ответы:

52

Системный журнал - стандартное средство регистрации. Он собирает сообщения различных программ и служб, включая ядро, и сохраняет их, в зависимости от настройки, в кучу файлов журналов, как правило, в /var/log. В некоторых центрах обработки данных существуют сотни устройств, каждое из которых имеет собственный журнал; Системный журнал также пригодится здесь. Один просто настраивает выделенный сервер системного журнала, который собирает все журналы отдельных устройств по сети. Syslog также может сохранять журналы в базы данных и других клиентов.

Согласно моему /etc/syslog.conf, default /var/log/kern.logзахватывает только сообщения ядра любого уровня логирования; т.е. вывод dmesg.

/var/log/messagesвместо этого стремится хранить ценные, не отладочные и некритические сообщения. Этот журнал должен рассматриваться как журнал «Общая системная активность».

/var/log/syslog в свою очередь регистрирует все, кроме связанных с аутентификацией сообщений.

Другие insteresting стандартные журналы , управляемые Syslog являются /var/log/auth.log, /var/log/mail.log.

Относительно вашего вопроса: если вам нужен только журнал сообщений ядра, используйте kern.logвызов или dmesg.

ulidtko
источник
1
какие-либо ссылки на ваши претензии, пожалуйста?
Goaler444
8
@ Goaler444, man syslog.conf.
ulidtko
2
Обратите внимание, что записи в кольцевом буфере ядра (то, что читает dmesg) не будут помещаться в любой файл / var / log по умолчанию, если они были записаны процессом пользовательского пространства. Вам нужно установить $KLogPermitNonKernelFacility onв конфигурации rsyslogd, если вы хотите видеть эти сообщения в /var/log. Смотрите мой ответ на askubuntu.com/a/490900/297973 для более подробной информации.
Ванесса Фиппс
7
Также стоит отметить, что ubuntu ( начиная с natty ) больше не использует /var/log/messages, а сохраняет все на/var/log/syslog
jackbravo
1
в Ubuntu 16.04 /var/log/syslogдействительно есть чистый супернабор /var/log/kern.logс предостережением, которое нужно учитывать для различных стратегий вращения. Например, в моей системе (конфигурация по умолчанию не изменена) сегодняшние и вчерашние сообщения хранятся в одном файле, /var/log/kern.logтогда как большинство вчерашних сообщений для syslogнаходятся в /var/log/syslog.1.
Маркус Юний Брут
12
  • Системный журнал содержит все сообщения, кроме типа auth.
  • сообщения содержат только общие некритические сообщения. Категория есть info, noticeиwarn
  • Для полного просмотра журнала /var/log/syslogи/var/log/auth.log
  • AFAIK /var/log/kern.logсодержит сообщения ядра.
  • файлы журналов - это просто соглашение, изложенное в /etc/syslog.conf
  • читайте syslog(3)для получения дополнительной информации

Проверьте эту страницу о различиях между сообщениями и системным журналом

это говорит /var/log/messages /var/log/syslog

Маниш Синха
источник
1
Указанная вами ссылка не работает.
Slm
4
Дублируя комментарий, ответ ulidtko: также стоит отметить, что Ubuntu ( начиная с natty ) больше не использует /var/log/messages, и сохраняет все на/var/log/syslog
jackbravo