syslog-ng — это бесплатная и открытая реализация протокола syslog для Unix и Unix-подобных систем. Она расширяет исходную модель syslogd с помощью фильтрации на основе содержимого, богатых возможностей фильтрации, гибких параметров конфигурации и добавляет важные функции в syslog, такие как использование TCP для транспорта. Syslog-ng разработан в Будапештском офисе One Identity LLC. Он имеет три редакции с общей кодовой базой. Первая называется syslog-ng, также называемая syslog-ng Open Source Edition (OSE) с лицензией LGPL + GPLv2. Вторая называется syslog-ng Premium Edition (PE) и имеет дополнительные плагины (модули) по собственной лицензии . Третья называется syslog-ng Storebox (SSB), которая поставляется как устройство с веб-интерфейсом пользователя, а также с дополнительными функциями, включая сверхбыстрый текстовый поиск, унифицированный поиск, оповещения на основе содержимого и поддержку высшего уровня. [2]
В январе 2018 года syslog-ng, как часть Balabit, была приобретена One Identity под зонтиком Quest Software. Команда syslog-ng остается независимым бизнесом в рамках организации One Identity и продолжает работать под брендом syslog-ng.
syslog-ng использует стандартный протокол BSD syslog , указанный в RFC 3164. Поскольку текст RFC 3164 является информационным описанием, а не стандартом, появились некоторые несовместимые расширения. Начиная с версии 3.0 syslog-ng также поддерживает протокол syslog, указанный в RFC 5424. syslog-ng взаимодействует с различными устройствами, а формат ретранслируемых сообщений можно настраивать.
Расширения исходного протокола syslog-ng включают в себя:
Проект syslog-ng начался в 1998 году, когда Балаж Шайдлер, основной автор syslog-ng, перенес существующий код nsyslogd на Linux. Ветка syslog-ng 1.0.x все еще основывалась на исходных кодах nsyslogd и доступна в архиве исходных кодов syslog-ng. [4]
Сразу после выпуска syslog-ng 1.0.x началась переработка кодовой базы для устранения некоторых недостатков syslog и решения проблем лицензирования Даррена Рида, оригинального автора syslog. Эта переработка была названа стабильной в октябре 1999 года с выпуском версии 1.2.0. На этот раз syslog-ng зависел от некоторого кода, изначально разработанного для lsh Нильсом Мёллером.
Эту кодовую базу использовали три основных релиза (1.2, 1.4 и 1.6), последний релиз ветки 1.6.x вышел в феврале 2007 года. За этот период продолжительностью около 8 лет syslog-ng стал одной из популярных альтернативных реализаций syslog.
В 2001 году, благодаря усилиям добровольцев, была начата еще одна переписка , в ходе которой был удален код lsh и использована более широкодоступная библиотека GLib . Переписывание кодовой базы заняло время, первый стабильный релиз 2.0.0 вышел в октябре 2006 года.
Усилия разработчиков были сосредоточены на улучшении ветки 2.0.x; поддержка 1.6.x была прекращена в конце 2007 года. Поддержка 2.x была прекращена в конце 2009 года, но она все еще используется в некоторых дистрибутивах Linux. [5] [6] Balabit, компания, стоящая за syslog-ng, запустила параллельный коммерческий форк syslog-ng, названный syslog-ng Premium Edition. Часть коммерческого дохода используется для спонсирования разработки бесплатной версии.
Syslog-ng версии 3.0 был выпущен в четвертом квартале 2008 года.
Начиная с версии 3.0, усилия по разработке Premium и Open Source Editions велись параллельно. Усилия PE были сосредоточены на качестве, надежности транспорта, производительности и зашифрованном хранении журналов. Усилия Open Source Edition были сосредоточены на повышении гибкости базовой инфраструктуры, чтобы разрешить все больше и больше различных источников сообщений, не относящихся к syslog.
Серия syslog-ng 3.X принесла много крупных изменений в syslog-ng без нарушения обратной совместимости. Syslog-ng стал модульным и многопоточным. Была добавлена поддержка различных хранилищ документов и систем очередей сообщений. Многие типы сообщений теперь автоматически анализируются и преобразуются в пары имя-значение. Стало возможным расширение syslog-ng с использованием Java и Python.
Версия 4.0 syslog-ng была выпущена в декабре 2022 года. Основное изменение номера версии было необходимо из-за существенного изменения поддержки типов для пар имя-значение, что было несовместимо с серией 3.X. Она позволяет более точно фильтровать и отправлять данные с надлежащей информацией о типе в базы данных и хранилища документов. Хотя syslog-ng PE основан на версии с открытым исходным кодом, его нумерация версий полностью независима от нее.
syslog-ng предоставляет ряд функций в дополнение к передаче сообщений syslog и сохранению их в текстовых файлах журналов:
syslog-ng доступен в ряде различных дистрибутивов Linux и Unix. Некоторые устанавливают его как системный по умолчанию или предоставляют его как пакет, который заменяет предыдущий стандартный syslogd. Несколько дистрибутивов Linux, которые использовали syslog-ng, заменили его на rsyslog . [ необходима цитата ]
syslog-ng очень переносим на многие системы Unix, как старые, так и новые. Список известных в настоящее время рабочих версий Unix приведен ниже:
Список выше основан на текущем личном опыте работы с BalaBit. Другие платформы также могут работать, но ваш опыт может отличаться.