Назад | Перейти на главную страницу

В чем разница между syslog, rsyslog и syslog-ng?

Я немного запутался в syslog, rsyslog и syslog-ng.

Откуда я могу получить исходный код для syslog()?

Есть ли разница между rsyslog и rsyslogd?

По сути, все они одинаковы в том смысле, что все они позволяют регистрировать данные из разных типов систем в центральном репозитории.

Но это три разных проекта, каждый из которых пытается улучшить предыдущий, сделав его более надежным и функциональным.

В Syslog проект был самым первым проектом. Он начался в 1980 году. Это основной проект Syslog протокол. На данный момент Syslog - очень простой протокол. Вначале он поддерживает только UDP для транспорта, поэтому он не гарантирует доставку сообщений.

Далее пришел syslog-ng в 1998 году. Он расширяет основные syslog протокол с новыми функциями, такими как:

  • контентная фильтрация
  • Вход непосредственно в базу данных
  • TCP для транспорта
  • Шифрование TLS

Далее пришел Rsyslog в 2004 году. syslog протокол с новыми функциями, такими как:

  • Поддержка протокола RELP
  • Поддержка буферизованных операций

Допустим, сегодня это три параллельных проекта, которые выросли отдельно по версиям, но также выросли параллельно в зависимости от того, что делали соседи.

Я лично думаю, что сегодня syslog-ng в большинстве случаев является справочным, так как это наиболее зрелый проект, предлагающий основные функции, которые могут вам понадобиться, в дополнение к простой и всесторонней установке и настройке.

это 3 различных типа менеджеров журналов: они позволяют вашей системе собирать фильтры и передавать / хранить журналы.

  • Syslog (демон также называется sysklogd) является LM по умолчанию в распространенных дистрибутивах Linux. Легкий, но не очень гибкий, вы можете перенаправить поток журнала, отсортированный по возможностям и серьезности, в файлы и по сети (TCP, UDP).
  • rsyslog это «продвинутая» версия sysklogd где файл конфигурации остается прежним (вы можете скопировать syslog.conf файл прямо в rsyslog.conf и работает); но у вас есть много новых интересных вещей:

    • Вы можете прослушивать TCP / UDP / ... соединения с ограничениями (порты, исходные IP-адреса)
    • Вы можете загрузить много модулей
    • Вы можете различать фильтрацию журнала по программе, источнику, сообщению, идентификатору идентификатора и т. Д. (Например, каждое сообщение, помеченное сообщением "соединение закрыто" с файлом closed.log)
    • Вы можете отказаться от сообщения после одного или нескольких правил Посетите http://www.rsyslog.com что действительно очень хорошо
  • 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/