Для полноты картины я добавлю одно обнаруженное различие, которое может повлиять или не повлиять на вас. syslog-ng использует fopen, тогда как rsyslog использует fappend. Это важно, если вы chattr +aваши файлы системного журнала. Большинство людей не делают этого, у меня просто был особый вариант использования, и вот как я узнал. Я просто заставил многих людей съежиться.
Аарон
Ответы:
52
По сути, все они одинаковы в том, что они позволяют регистрировать данные из разных типов систем в центральном хранилище.
Но это три разных проекта, каждый из которых пытается улучшить предыдущий с большей надежностью и функциональностью.
SyslogПроект был первым проектом. Это началось в 1980 году. Это основной проект Syslogпротокола. В настоящее время Syslog - очень простой протокол. В начале он поддерживает только UDP для транспорта, так что он не гарантирует доставку сообщений.
Следующий пришел syslog-ngв 1998 году. Он расширяет базовый syslogпротокол новыми функциями, такими как:
контентная фильтрация
Вход непосредственно в базу данных
TCP для транспорта
Шифрование TLS
Следующий пришел Rsyslogв 2004 году. Он расширяет syslogпротокол новыми функциями, такими как:
Поддержка протокола RELP
Поддержка буферизованных операций
Скажем, сегодня это три параллельных проекта, которые выросли отдельно от версий, но также выросли параллельно относительно того, что делали соседи.
Я лично считаю, что сегодня syslog-ngэто справочник в большинстве случаев, так как это самый зрелый проект, предлагающий основные функции, которые могут вам понадобиться, в дополнение к простой и полной настройке и настройке.
Напомним, что системный журнал OpenBSD может выполнять протоколы TCP и TLS (и UDP)
Нил Макгиган
32
это 3 разных вида менеджеров журналов: это позволяет вашей системе собирать фильтры и передавать / хранить журналы.
Syslog(также называется daemon sysklogd) является стандартным LM в распространенных дистрибутивах Linux. Легкий, но не очень гибкий, вы можете перенаправить поток журналов, отсортированный по средствам и серьезности, в файлы и по сети (TCP, UDP).
rsyslogявляется «расширенной» версией, sysklogdгде конфигурационный файл остается тем же самым (вы можете скопировать syslog.confфайл непосредственно в него, rsyslog.confи он работает); но у вас есть много новых интересных вещей:
Вы можете прослушивать соединения TCP / UDP / ... с ограничениями (порты, исходные IP-адреса)
Вы можете загрузить много модулей
Вы можете различать фильтрацию журналов по программе, источнику, сообщению, pid и т. Д. (Например, каждое сообщение, помеченное сообщением «связь закрыта» с файлом closed.log)
Вы можете отказаться от сообщения после одного или нескольких правил. Посетите http://www.rsyslog.com, что действительно очень хорошо.
Syslog-ng - это «Next-Gen». Я думаю, что это лучший способ управления журналами: все является объектом (источник, место назначения, фильтр и само правило пересылки), а синтаксис понятен. Сомневаюсь в функциональности, что rsyslogи syslog-ngразные.
Я бы сказал, что и syslog-ng, и rsyslog являются «следующим поколением» или, по крайней мере, более новой заменой более старого системного журнала. Оба сопоставимы с точки зрения возможностей, но синтаксис для обоих очень различен. syslog-ng имеет собственный уникальный синтаксис, в то время как синтаксис rsyslog больше похож на старый синтаксис syslog.
Стефан Ласевский
9
А потом есть journalctl/journald
Mausy5043
9
Откуда я могу получить исходный код для syslog ()
Это обеспечивается glibc или реализациями libc на других разновидностях Unix. Этот вызов в основном отправляет ваше сообщение в сокет домена sixlog unix / dev / log. Этот сокет обычно создается системным регистратором (например, rsyslog, syslog-ng, nxlog и т. Д.).
Все они являются демонами syslog, где rsyslog и syslog-ng являются более быстрыми и более функциональными заменами (в основном не поддерживаемых) традиционного syslogd. syslog-ng начинался с нуля (с другим форматом конфигурации), в то время как rsyslog изначально был веткой syslogd, поддерживающей и расширяющей его синтаксис. В последние годы rsyslog также начал поддерживать новый формат конфигурации. К настоящему моменту действительно трудно сравнивать их, не вдаваясь в подробности и не начав пламенных войн.
chattr +a
ваши файлы системного журнала. Большинство людей не делают этого, у меня просто был особый вариант использования, и вот как я узнал. Я просто заставил многих людей съежиться.Ответы:
По сути, все они одинаковы в том, что они позволяют регистрировать данные из разных типов систем в центральном хранилище.
Но это три разных проекта, каждый из которых пытается улучшить предыдущий с большей надежностью и функциональностью.
Syslog
Проект был первым проектом. Это началось в 1980 году. Это основной проектSyslog
протокола. В настоящее время Syslog - очень простой протокол. В начале он поддерживает только UDP для транспорта, так что он не гарантирует доставку сообщений.Следующий пришел
syslog-ng
в 1998 году. Он расширяет базовыйsyslog
протокол новыми функциями, такими как:Следующий пришел
Rsyslog
в 2004 году. Он расширяетsyslog
протокол новыми функциями, такими как:Скажем, сегодня это три параллельных проекта, которые выросли отдельно от версий, но также выросли параллельно относительно того, что делали соседи.
Я лично считаю, что сегодня
syslog-ng
это справочник в большинстве случаев, так как это самый зрелый проект, предлагающий основные функции, которые могут вам понадобиться, в дополнение к простой и полной настройке и настройке.источник
это 3 разных вида менеджеров журналов: это позволяет вашей системе собирать фильтры и передавать / хранить журналы.
Syslog
(также называется daemonsysklogd
) является стандартным LM в распространенных дистрибутивах Linux. Легкий, но не очень гибкий, вы можете перенаправить поток журналов, отсортированный по средствам и серьезности, в файлы и по сети (TCP, UDP).rsyslog
является «расширенной» версией,sysklogd
где конфигурационный файл остается тем же самым (вы можете скопироватьsyslog.conf
файл непосредственно в него,rsyslog.conf
и он работает); но у вас есть много новых интересных вещей:Syslog-ng - это «Next-Gen». Я думаю, что это лучший способ управления журналами: все является объектом (источник, место назначения, фильтр и само правило пересылки), а синтаксис понятен. Сомневаюсь в функциональности, что
rsyslog
иsyslog-ng
разные.источник
journalctl
/journald
Это обеспечивается glibc или реализациями libc на других разновидностях Unix. Этот вызов в основном отправляет ваше сообщение в сокет домена sixlog 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/
источник