Syslog-ng
Syslog-ng — свободная и открытая реализация протокола syslog для Unix и Unix-подобных операционных систем. Она расширяет изначальную модель syslogd возможностями контентной и гибкой фильтрации, содержит гибкие настройки и добавляет важные функции, такие как транспортировка данных по 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) — поставляется как готовое устройство с веб-интерфейсом и дополнительными возможностями, включая высокоскоростной текстовый поиск, объединённый поиск, контентную систему оповещений и премиум-поддержку[1].
В январе 2018 года syslog-ng, будучи частью Balabit, была приобретена компанией One Identity, входящей в холдинг Quest Software. Команда syslog-ng осталась независимым подразделением компании One Identity и продолжает использовать бренд syslog-ng.
В мае 2024 года оригинальный автор syslog-ng, Balázs Scheidler, создал форк syslog-ng под названием AxoSyslog — полностью открытое ПО, призванное стать прямой заменой и развить syslog-ng в универсальный процессор безопасности данных с интеграцией в cloud native-инструменты и сервисы[2].
Что важно знать
| syslog-ng | |
|---|---|
| Тип | системное логирование |
| Автор | Balázs Scheidler |
| Написана на | Си |
| Операционная система | Unix-подобные |
| Первый выпуск | 1998 |
| Последняя версия | 4.11.0 (24 февраля 2026) |
| Репозиторий | github.com/syslog-ng/sys… |
| Лицензия | Ядро: LGPL, Плагины: GPLv2 |
| Сайт | syslog-ng.com/products/o… |
Протокол
syslog-ng поддерживает широкий набор протоколов для приёма и передачи логов. Хотя изначально продукт предназначался для работы с syslog, сегодня он поддерживает современные облачные транспорты, такие как OpenTelemetry (OTLP), Google PubSub и Kafka. Syslog-ng интегрируется с разнообразными устройствами и способен преобразовывать данные между различными источниками и назначениями.
Расширения оригинального протокола syslog-ng включают:
История
Проект syslog-ng был начат в 1998 году, когда Balázs Scheidler, основной автор, портировал существующий код nsyslogd на Linux. Ветвь 1.0.x всё ещё основывалась на исходниках nsyslogd и доступна в архиве исходного кода syslog-ng[4].
Сразу после выхода версии 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 году была начата ещё одна переписка (rewrite), в которой был исключён код lsh и вместо него использована более распространённая библиотека GLib. Этой переработке потребовалось время: первый стабильный релиз 2.0.0 вышел в октябре 2006 года.
В дальнейшем усилия были направлены на развитие ветки 2.0.x; поддержка ветки 1.6.x была прекращена в конце 2007 года. Поддержка 2.x завершилась к концу 2009 года, однако она до сих пор используется в некоторых Linux-дистрибутивах[5].[6] Компания Balabit, стоящая за syslog-ng, начала развивать параллельный коммерческий форк — syslog-ng Premium Edition. Часть прибыли от коммерческого продукта идёт на развитие бесплатной редакции.
Версия syslog-ng 3.0 была выпущена в четвёртом квартале 2008 года.
С версии 3.0 развитие двух редакций (PE и OSE) шло параллельно. В Premium Edition акцент делался на качества, производительность, надёжный транспорт и шифрованное хранение логов, а в Open Source Edition — на расширение гибкости основной инфраструктуры и поддержку нестандартных источников сообщений.
В серии syslog-ng 3.X были реализованы большие изменения без потери обратной совместимости: появилась модульность и многопоточность, поддержка разных хранилищ документов и систем очередей сообщений; многие типы сообщений стали автоматически преобразовываться в пары «имя-значение». Возможна интеграция расширений на Java и Python.
Версия 4.0 была выпущена в декабре 2022 года. Основным изменением стала новая поддержка типов значений для пар «имя-значение» (переменных), несовместимая с серией 3.X, что позволило более точно фильтровать и отправлять данные с корректной типизацией в базы данных и хранилища документов.
Стоит отметить, что версия PE использует независимую нумерацию и основана на редакции с открытым исходным кодом.
Возможности
Syslog-ng обладает рядом функций помимо транспортировки сообщений syslog и их хранения в текстовых логах:
- Форматирование сообщений с помощью unix-подобного расширения переменных (что может привести к несовместимости логов между платформами)
- Использование такого же расширения синтаксиса при составлении имён файлов назначения (возможно создание нескольких файлов с одной настройкой)
- Пересылка сообщений логирования во внешние приложения
- Поддержка управления потоком сообщений при сетевой передаче
- Запись логов напрямую в базу данных (с версии OSE 2.1)
- Изменение текста сообщения с помощью примитивов set и substitute (с версии OSE 3.0)
- Классификация и выделение структурированной информации из неструктурированных сообщений syslog (с версии OSE 3.0)
- Универсальная поддержка пар «имя-значение» (каждое сообщение — это набор таких пар; с версии OSE 3.0)
- Обработка структурированных сообщений логов; например, разбивка строк CSV на столбцы (с версии OSE 3.0)
- Корреляция нескольких входящих сообщений для формирования сложных событий (с версии OSE 3.2)[7]
Дистрибуции
Syslog-ng доступен во многих дистрибутивах Linux и Unix. Некоторые используют его по умолчанию или предлагают отдельно как пакет для замены классического syslogd. В ряде дистрибутивов (например, Debian после версии 5.0, Fedora после версии 10, openSUSE после 11.2) syslog-ng был заменён на rsyslog.
- openSUSE — использовался по умолчанию до релиза openSUSE 11.2, по-прежнему доступен как пакет
- SLES — использовался до версии SLES 12
- Debian GNU/Linux использовал syslogd и klogd до версии 5.0; начиная с 5.0 («Lenny») применяется rsyslog[8]
- Gentoo Linux
- Fedora — по умолчанию до версии Fedora 10
- Arch Linux — по умолчанию до внедрения systemd в 2012 году
- HP-UX от Hewlett-Packard
- FreeBSD (порт)
- Порт Cygwin для Microsoft Windows
Портируемость
Syslog-ng очень портируем для множества Unix-систем, как современных, так и устаревших. По опыту BalaBit, надёжно поддерживаются следующие платформы:
- Linux на i386, ARM, PowerPC, SPARC, x86-64
- FreeBSD 7.x — 9.x на i386 и x86-64
- AIX 5, 6 и 7 на IBM POWER
- HP-UX 11iv1, 11iv2 и 11iv3 на PA-RISC и Itanium
- Solaris 8, 9, 10 на SPARC, x86-64 и i386
- Tru64 5.1b на Alpha
Могут работать и другие платформы, но их поддержка не гарантируется.
Связанные RFC и рабочие группы
- — BSD syslog-протокол
- — Протокол Syslog
- — Transport Layer Security (TLS) для syslog
- — Передача сообщений syslog через UDP


