Я немного запутался в syslog, rsyslog и syslog-ng.
Откуда я могу получить исходный код для syslog()
?
Есть ли разница между rsyslog и rsyslogd?
По сути, все они одинаковы в том смысле, что все они позволяют регистрировать данные из разных типов систем в центральном репозитории.
Но это три разных проекта, каждый из которых пытается улучшить предыдущий, сделав его более надежным и функциональным.
В Syslog
проект был самым первым проектом. Он начался в 1980 году. Это основной проект Syslog
протокол. На данный момент Syslog - очень простой протокол. Вначале он поддерживает только UDP для транспорта, поэтому он не гарантирует доставку сообщений.
Далее пришел syslog-ng
в 1998 году. Он расширяет основные syslog
протокол с новыми функциями, такими как:
Далее пришел Rsyslog
в 2004 году. syslog
протокол с новыми функциями, такими как:
Допустим, сегодня это три параллельных проекта, которые выросли отдельно по версиям, но также выросли параллельно в зависимости от того, что делали соседи.
Я лично думаю, что сегодня syslog-ng
в большинстве случаев является справочным, так как это наиболее зрелый проект, предлагающий основные функции, которые могут вам понадобиться, в дополнение к простой и всесторонней установке и настройке.
это 3 различных типа менеджеров журналов: они позволяют вашей системе собирать фильтры и передавать / хранить журналы.
Syslog
(демон также называется sysklogd
) является LM по умолчанию в распространенных дистрибутивах Linux. Легкий, но не очень гибкий, вы можете перенаправить поток журнала, отсортированный по возможностям и серьезности, в файлы и по сети (TCP, UDP).rsyslog
это «продвинутая» версия sysklogd
где файл конфигурации остается прежним (вы можете скопировать syslog.conf
файл прямо в rsyslog.conf
и работает); но у вас есть много новых интересных вещей:
Syslog-ng - это «следующее поколение». Я считаю, что это лучший способ управлять журналами: все является объектом (источник, место назначения, фильтр и само правило пересылки), а синтаксис ясен. Сомневаюсь в функциональности, что rsyslog
и syslog-ng
разные.
Откуда я могу получить исходный код для syslog ()
Это обеспечивается glibc или реализации libc в других версиях Unix. Этот вызов в основном отправляет ваше сообщение в сокет домена unix системного журнала / dev / log. Этот сокет обычно создается системным регистратором (например, rsyslog, syslog-ng, nxlog и т. Д.).
Все они являются демонами syslog, где rsyslog и syslog-ng являются более быстрой и многофункциональной заменой (в основном не поддерживаемой) традиционному syslogd. syslog-ng был запущен с нуля (с другим форматом конфигурации), тогда как rsyslog изначально был ответвлением syslogd, поддерживая и расширяя его синтаксис. В последние годы rsyslog также начал поддерживать новый формат конфигурации. К настоящему времени действительно трудно сравнивать эти два, не вдаваясь в саму специфику и не начав огненные войны.
Системный журнал в целом довольно сбивает с толку, так как может содержать несколько вещей. У меня был шанс устранить неоднозначность здесь: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/