| 원저자 | 발라주 셰이들러 |
|---|---|
| 발표일 | 1998 |
| 운영 체제 | 유닉스 계열 |
| 종류 | 시스템 로깅 |
| 라이선스 |
|
syslog-ng는 유닉스 및 유닉스 계열 시스템을 위한 자유-오픈 소스 시스로그 프로토콜 구현체이다. 기존의 syslogd 모델을 확장하여 콘텐츠 기반 필터링, 풍부한 필터링 기능, 유연한 설정 옵션을 제공하며, 전송을 위해 TCP를 사용하는 것과 같은 중요한 기능을 시스로그에 추가한다. Syslog-ng는 One Identity LLC의 부다페스트 사무소에서 개발한다. 공통 코드베이스를 공유하는 세 가지 에디션이 존재한다. 첫 번째는 syslog-ng로, LGPL + GPLv2 라이선스를 사용하는 syslog-ng 오픈 소스 에디션(OSE)이라고도 불린다. 두 번째는 syslog-ng 프리미엄 에디션(PE)으로, 사유 라이선스 하의 추가 플러그인(모듈)을 포함한다. 세 번째는 syslog-ng 스토어박스(SSB)로, 웹 기반 UI와 함께 초고속 텍스트 검색, 통합 검색, 콘텐츠 기반 경고 및 프리미어 수준의 지원과 같은 추가 기능을 갖춘 어플라이언스 형태로 제공된다.
2018년 1월, Balabit의 일부였던 syslog-ng는 퀘스트 소프트웨어 산하의 One Identity에 인수되었다. Syslog-ng 팀은 One Identity 조직 내에서 독립적인 사업부로 남아 있으며 syslog-ng 브랜드 하에 계속 운영되고 있다.
2024년 5월, syslog-ng의 원저자인 발라주 셰이들러는 syslog-ng를 포크하여 완전한 오픈 소스인 액소시스로그를 출시했다. 이는 드롭인 대체재로서 syslog-ng를 범용 보안 데이터 프로세서로 발전시키고 다양한 클라우드 네이티브 도구 및 서비스와 통합한다.
syslog-ng는 로그 데이터를 수신하거나 전송하기 위해 다양한 프로토콜을 지원한다. 시스로그에서 시작되었지만, 오늘날에는 OpenTelemetry (OTLP), Google PubSub 또는 Kafka와 같은 현대적인 클라우드 네이티브 전송 방식을 지원한다. syslog-ng는 다양한 장치와 상호 운용되며, 여러 소스와 대상 간의 데이터를 소비하고 변환할 수 있다.
기존 syslog-ng 프로토콜에 대한 확장 기능은 다음과 같다:
syslog-ng 프로젝트는 1998년, syslog-ng의 주 저자인 발라주 셰이들러가 기존 nsyslogd 코드를 리눅스로 포팅하면서 시작되었다. syslog-ng의 1.0.x 브랜치는 여전히 nsyslogd 소스를 기반으로 하며 syslog-ng 소스 아카이브에서 이용할 수 있다.
syslog-ng 1.0.x 출시 직후, 시스로그의 몇 가지 단점을 해결하고 원조 시스로그 저자인 대런 리드(Darren Reed)의 라이선스 우려를 해결하기 위해 코드베이스를 재구현하기 시작했다. 이 재구현 버전은 1999년 10월 버전 1.2.0 출시와 함께 안정화되었다. 당시 syslog-ng는 닐스 묄러(Niels Möller)가 lsh를 위해 개발한 일부 코드에 의존했다.
세 개의 메이저 릴리스(1.2, 1.4, 1.6)가 이 코드베이스를 사용했으며, 1.6.x 브랜치의 마지막 릴리스는 2007년 2월에 이루어졌다. 약 8년 동안 syslog-ng는 대중적인 시스로그 대체 구현체 중 하나가 되었다.
자원봉사 기반의 노력으로 2001년에 또 한 번의 재작성이 시작되었으며, lsh 코드를 제거하고 더 널리 사용되는 GLib 라이브러리를 채택했다. 이 코드베이스 재작성에는 시간이 소요되었으며, 2.0.0의 첫 안정 버전은 2006년 10월에 출시되었다.
개발 노력은 2.0.x 브랜치 개선에 집중되었다. 1.6.x에 대한 지원은 2007년 말에 중단되었다. 2.x에 대한 지원은 2009년 말에 중단되었으나, 여전히 일부 리눅스 배포판에서 사용되고 있다. syslog-ng를 개발하는 회사인 Balabit은 syslog-ng 프리미엄 에디션이라는 병렬적인 상업용 포크를 시작했다. 상업적 수익의 일부는 무료 버전의 개발을 후원하는 데 사용된다.
Syslog-ng 버전 3.0은 2008년 4분기에 출시되었다.
3.0 버전부터 개발 노력은 프리미엄 에디션과 오픈 소스 에디션에서 병렬로 진행되었다. PE의 노력은 품질, 전송 신뢰성, 성능 및 암호화된 로그 저장에 집중되었다. 오픈 소스 에디션의 노력은 시스로그가 아닌 다양한 메시지 소스를 더 많이 수용할 수 있도록 핵심 인프라의 유연성을 개선하는 데 집중했다.
syslog-ng 3.X 시리즈는 하위 호환성을 깨지 않으면서도 syslog-ng에 많은 주요 변화를 가져왔다. Syslog-ng는 모듈화되고 다중 스레드 방식이 되었다. 다양한 문서 저장소 및 메시지 큐 시스템에 대한 지원이 추가되었다. 많은 메시지 유형이 이제 자동으로 파싱되어 이름-값 쌍(name-value-pairs)으로 변환된다. 자바와 파이썬을 사용하여 syslog-ng를 확장하는 것도 가능해졌다.
syslog-ng 버전 4.0은 2022년 12월에 출시되었다. 메이저 버전 번호 변경은 3.X 시리즈와 호환되지 않는 이름-값 쌍의 타입 지원에 대한 주요 변경 사항으로 인해 필요했다. 이를 통해 더 정밀한 필터링이 가능해졌으며 데이터베이스 및 문서 저장소에 적절한 타입 정보를 포함하여 데이터를 전송할 수 있게 되었다.
syslog-ng PE는 오픈 소스 에디션을 기반으로 하지만, 버전 번호 체계는 완전히 독립적이다.
syslog-ng는 시스로그 메시지를 전송하고 일반 텍스트 로그 파일에 저장하는 것 외에도 다음과 같은 기능을 제공한다:
syslog-ng는 여러 리눅스 및 유닉스 배포판에서 사용할 수 있다. 일부는 시스템 기본값으로 설치하거나, 이전 표준인 syslogd를 대체하는 패키지로 제공한다. syslog-ng를 사용하던 여러 리눅스 배포판은 이를 rsyslog로 교체했다.
syslog-ng는 구형 및 신형 유닉스 시스템 전반에 걸쳐 높은 이식성을 가진다. 현재 작동이 확인된 유닉스 버전 목록은 다음과 같다:
위 목록은 BalaBit의 직접적인 경험을 바탕으로 작성되었으며, 다른 플랫폼에서도 작동할 수 있으나 결과는 다를 수 있다.