From 2b52550f878ef501fd94ecd097e89fe231dc4eb4 Mon Sep 17 00:00:00 2001 From: Mark Nellemann Date: Thu, 8 Dec 2022 13:55:25 +0100 Subject: [PATCH] Support incoming messages in GELF format (also compressed UDP). --- README.md | 60 +++++++------- build.gradle | 52 +++++++++++- doc/readme-service.md | 12 ++- doc/syslogd.drawio | 1 + doc/syslogd.png | Bin 0 -> 176038 bytes doc/syslogd.service | 4 +- gradle.properties | 4 +- .../biz/nellemann/syslogd/Application.java | 22 ++--- .../nellemann/syslogd/LogReceiveEvent.java | 20 ++++- .../biz/nellemann/syslogd/SyslogPrinter.java | 2 +- .../nellemann/syslogd/msg/SyslogMessage.java | 27 ++++-- .../biz/nellemann/syslogd/net/LokiClient.java | 3 +- .../biz/nellemann/syslogd/net/TcpServer.java | 11 +-- .../biz/nellemann/syslogd/net/UdpServer.java | 18 ++-- .../nellemann/syslogd/parser/GelfParser.java | 77 ++++++++++++++++++ .../syslogd/parser/SyslogParser.java | 25 ++++++ .../syslogd/parser/SyslogParserRfc3164.java | 6 ++ .../syslogd/parser/SyslogParserRfc5424.java | 8 +- .../nellemann/syslogd/GelfParserTest.groovy | 62 ++++++++++++++ 19 files changed, 341 insertions(+), 73 deletions(-) create mode 100644 doc/syslogd.drawio create mode 100644 doc/syslogd.png create mode 100644 src/main/java/biz/nellemann/syslogd/parser/GelfParser.java create mode 100644 src/test/groovy/biz/nellemann/syslogd/GelfParserTest.groovy diff --git a/README.md b/README.md index 0faf4c4..741beb7 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,68 @@ -# Syslog Server +# Syslog Director -All received messages are written to *stdout* and/or forwarded to a remote logging destination. +All received messages are written to *stdout* and/or forwarded to remote logging destinations. -The syslog server is able to listen on both UDP and TCP and parses syslog messages in either RFC5424 or RFC3164 (BSD) format. +![architecture](doc/syslogd.png) -This software is free to use and is licensed under the [Apache 2.0 License](https://bitbucket.org/mnellemann/syslogd/src/master/LICENSE). - -![architecture](https://bitbucket.org/mnellemann/syslogd/downloads/syslogd.svg) - -The default syslog port (514) requires you to run syslogd as root / administrator. -If you do not wish to do so, you can choose any port number (with the *-p* or *--port* flag) above 1024. +Supported incoming message formats are: +- RFC5424 UDP and TCP +- RFC3164 (BSD) UDP and TCP +- GELF format UDP and TCP (also compressed on UDP) Supported remote logging destinations are: - Syslog (RFC5424 over UDP) - Graylog (GELF over UDP) - and Grafana Loki (HTTP over TCP). +This software is free to use and is licensed under the [Apache 2.0 License](https://bitbucket.org/mnellemann/syslogd/src/master/LICENSE). + ## Usage Instructions - Install the syslogd package (*.deb* or *.rpm*) from [downloads](https://bitbucket.org/mnellemann/syslogd/downloads/) or build from source. -- Run *bin/syslogd*, use the *-h* option for help :) ```text Usage: syslogd [-dhV] [--[no-]ansi] [--[no-]stdout] [--[no-]tcp] [--[no-]udp] - [--rfc5424] [-g=] [-l=] [-p=] [-s=] - -d, --debug Enable debugging [default: 'false']. - -g, --gelf= Forward to Graylog . - -h, --help Show this help message and exit. - -l, --loki= Forward to Grafana Loki . - --[no-]ansi Output ANSI colors [default: true]. - --[no-]stdout Output messages to stdout [default: true]. - --[no-]tcp Listen on TCP [default: true]. - --[no-]udp Listen on UDP [default: true]. - -p, --port= Listening port [default: 514]. - --rfc5424 Parse RFC-5424 messages [default: RFC-3164]. - -s, --syslog= Forward to Syslog (RFC-5424). - -V, --version Print version information and exit. + [-f=] [-p=] [--to-gelf=] [--to-loki=] + [--to-syslog=] + -d, --debug Enable debugging [default: 'false']. + -f, --format= Input format: RFC-5424, RFC-3164 or GELF [default: + RFC-3164]. + -h, --help Show this help message and exit. + --[no-]ansi Output in ANSI colors [default: true]. + --[no-]stdout Output messages to stdout [default: true]. + --[no-]tcp Listen on TCP [default: true]. + --[no-]udp Listen on UDP [default: true]. + -p, --port= Listening port [default: 1514]. + --to-gelf= Forward to Graylog . + --to-loki= Forward to Grafana Loki . + --to-syslog= Forward to Syslog (RFC-5424). + -V, --version Print version information and exit. ``` +The default syslog port (514) requires you to run syslogd as root / administrator. +Any port number above 1024 does not require privileges and can be selected with the *-p* or *--port* option. + ### Examples -Listening on a non-standard syslog port: +Listening on the default syslog port: ``` -java -jar /path/to/syslogd-x.y.z-all.jar --port 1514 +java -jar /path/to/syslogd-x.y.z-all.jar --port 514 ``` or, if installed as a *deb* or *rpm* package: ``` -/opt/syslogd/bin/syslogd --port 1514 +/opt/syslogd/bin/syslogd --port 514 ``` -Listening on the standard syslog port (requires root privileges) and forwarding messages on to another log-system on a non-standard port. +Forwarding messages on to another log-system on a non-standard port. ``` java -jar /path/to/syslogd-x.y.z-all.jar --syslog udp://remotehost:514 ``` -Forwarding to a Graylog server in GELF format. +Forwarding messages to a Graylog server in GELF format. ``` java -jar /path/to/syslogd-x.y.z-all.jar --gelf udp://remotehost:12201 diff --git a/build.gradle b/build.gradle index b783c2b..023f6ca 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ plugins { id 'java' id 'groovy' id 'application' + id 'jacoco' id "com.github.johnrengelman.shadow" version "7.1.2" id "net.nemerosa.versioning" version "2.15.1" id "nebula.ospackage" version "9.1.1" @@ -16,20 +17,61 @@ dependencies { implementation 'info.picocli:picocli:4.7.0' implementation 'org.slf4j:slf4j-api:2.0.5' implementation 'org.slf4j:slf4j-simple:2.0.5' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.1' + implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.1' testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0' testImplementation 'org.slf4j:slf4j-api:2.0.5' - testRuntimeOnly 'org.slf4j:slf4j-simple:2.0.5' } application { getMainClass().set('biz.nellemann.syslogd.Application') } +java { + sourceCompatibility = 1.8 + targetCompatibility = 1.8 +} + test { useJUnitPlatform() } +jacoco { + toolVersion = "0.8.8" +} + +jacocoTestReport { + group = "verification" + reports { + xml.required = false + csv.required = false + html.destination file("${buildDir}/reports/coverage") + } +} +test.finalizedBy jacocoTestReport + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + counter = 'LINE' + minimum = 0.3 + } + limit { + counter = 'BRANCH' + minimum = 0.2 + } + limit { + counter = 'CLASS' + minimum = 0.4 + } + } + } +} +check.dependsOn jacocoTestCoverageVerification + + apply plugin: 'nebula.ospackage' ospackage { packageName = 'syslogd' @@ -80,7 +122,9 @@ jar { } } -java { - sourceCompatibility = 1.8 - targetCompatibility = 1.8 +tasks.create("packages") { + group "build" + dependsOn ":build" + dependsOn ":buildDeb" + dependsOn ":buildRpm" } diff --git a/doc/readme-service.md b/doc/readme-service.md index 5994ff4..dd1265a 100644 --- a/doc/readme-service.md +++ b/doc/readme-service.md @@ -7,10 +7,14 @@ Edit the **syslogd.service** and configure required options. To install as a systemd service, copy the **syslogd.service** file into */etc/systemd/system/* and enable the service: - systemctl daemon-reload - systemctl enable syslogd.service - systemctl restart syslogd.service +```shell +systemctl daemon-reload +systemctl enable syslogd.service +systemctl restart syslogd.service +``` To read log output from the service, use: - journalctl -f -u syslogd.service +```shell +journalctl -f -u syslogd.service +``` diff --git a/doc/syslogd.drawio b/doc/syslogd.drawio new file mode 100644 index 0000000..321134c --- /dev/null +++ b/doc/syslogd.drawio @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/syslogd.png b/doc/syslogd.png new file mode 100644 index 0000000000000000000000000000000000000000..ee2a01b4d842976e176d90d023ceca61f66768c3 GIT binary patch literal 176038 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≷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 literal 0 HcmV?d00001 diff --git a/doc/syslogd.service b/doc/syslogd.service index e199406..ee87569 100644 --- a/doc/syslogd.service +++ b/doc/syslogd.service @@ -1,10 +1,10 @@ [Unit] -Description=Simple Syslog Service +Description=Syslog Director [Service] TimeoutStartSec=0 Restart=always -ExecStart=/opt/syslogd/bin/syslogd --no-stdout --syslog=udp://localhost:1514 +ExecStart=/opt/syslogd/bin/syslogd --port 514 --no-stdout --syslog=udp://localhost:1514 [Install] WantedBy=default.target diff --git a/gradle.properties b/gradle.properties index dfbba86..1dd97d1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,5 @@ id = syslogd +name = syslogd group = biz.nellemann.syslogd -version = 1.2.8 +version = 1.3.0 +description = "Syslog Director" diff --git a/src/main/java/biz/nellemann/syslogd/Application.java b/src/main/java/biz/nellemann/syslogd/Application.java index c4c0619..f264dae 100644 --- a/src/main/java/biz/nellemann/syslogd/Application.java +++ b/src/main/java/biz/nellemann/syslogd/Application.java @@ -17,6 +17,7 @@ package biz.nellemann.syslogd; import biz.nellemann.syslogd.msg.SyslogMessage; import biz.nellemann.syslogd.net.*; +import biz.nellemann.syslogd.parser.GelfParser; import biz.nellemann.syslogd.parser.SyslogParser; import biz.nellemann.syslogd.parser.SyslogParserRfc3164; import biz.nellemann.syslogd.parser.SyslogParserRfc5424; @@ -42,7 +43,7 @@ public class Application implements Callable, LogReceiveListener { private SyslogParser syslogParser; - @CommandLine.Option(names = {"-p", "--port"}, description = "Listening port [default: 514].", defaultValue = "514", paramLabel = "") + @CommandLine.Option(names = {"-p", "--port"}, description = "Listening port [default: 1514].", defaultValue = "1514", paramLabel = "") private int port; @CommandLine.Option(names = "--no-udp", negatable = true, description = "Listen on UDP [default: true].", defaultValue = "true") @@ -51,22 +52,22 @@ public class Application implements Callable, LogReceiveListener { @CommandLine.Option(names = "--no-tcp", negatable = true, description = "Listen on TCP [default: true].", defaultValue = "true") private boolean tcpServer; - @CommandLine.Option(names = "--no-ansi", negatable = true, description = "Output ANSI colors [default: true].", defaultValue = "true") + @CommandLine.Option(names = "--no-ansi", negatable = true, description = "Output in ANSI colors [default: true].", defaultValue = "true") private boolean ansiOutput; @CommandLine.Option(names = "--no-stdout", negatable = true, description = "Output messages to stdout [default: true].", defaultValue = "true") private boolean stdout; - @CommandLine.Option(names = "--rfc5424", description = "Parse RFC-5424 messages [default: RFC-3164].", defaultValue = "false") - private boolean rfc5424; + @CommandLine.Option(names = {"-f", "--format"}, description = "Input format: RFC-5424, RFC-3164 or GELF [default: RFC-3164].", defaultValue = "RFC-3164") + private String protocol; - @CommandLine.Option(names = { "-s", "--syslog"}, description = "Forward to Syslog (RFC-5424).", paramLabel = "") + @CommandLine.Option(names = { "--to-syslog"}, description = "Forward to Syslog (RFC-5424).", paramLabel = "") private URI syslog; - @CommandLine.Option(names = { "-g", "--gelf"}, description = "Forward to Graylog .", paramLabel = "") + @CommandLine.Option(names = { "--to-gelf"}, description = "Forward to Graylog .", paramLabel = "") private URI gelf; - @CommandLine.Option(names = { "-l", "--loki"}, description = "Forward to Grafana Loki .", paramLabel = "") + @CommandLine.Option(names = { "--to-loki"}, description = "Forward to Grafana Loki .", paramLabel = "") private URL loki; @CommandLine.Option(names = { "-d", "--debug" }, description = "Enable debugging [default: 'false'].") @@ -81,7 +82,9 @@ public class Application implements Callable, LogReceiveListener { System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "DEBUG"); } - if(rfc5424) { + if(protocol.equalsIgnoreCase("GELF")) + syslogParser = new GelfParser(); + else if (protocol.equalsIgnoreCase("RFC-5424")) { syslogParser = new SyslogParserRfc5424(); } else { syslogParser = new SyslogParserRfc3164(); @@ -132,10 +135,9 @@ public class Application implements Callable, LogReceiveListener { public void onLogEvent(LogReceiveEvent event) { // Parse message - String message = event.getMessage(); SyslogMessage msg = null; try { - msg = syslogParser.parse(message); + msg = syslogParser.parse(event.getBytes()); } catch(Exception e) { e.printStackTrace(); } diff --git a/src/main/java/biz/nellemann/syslogd/LogReceiveEvent.java b/src/main/java/biz/nellemann/syslogd/LogReceiveEvent.java index 0b33fbe..203d65e 100644 --- a/src/main/java/biz/nellemann/syslogd/LogReceiveEvent.java +++ b/src/main/java/biz/nellemann/syslogd/LogReceiveEvent.java @@ -15,20 +15,34 @@ */ package biz.nellemann.syslogd; +import java.net.DatagramPacket; +import java.nio.charset.StandardCharsets; import java.util.EventObject; public class LogReceiveEvent extends EventObject { private static final long serialVersionUID = 1L; - private final String message; + //private final String message; + private final DatagramPacket packet; + /* public LogReceiveEvent(final Object source, final String message ) { super( source ); this.message = message; } + */ - public String getMessage() { - return message; + public LogReceiveEvent(final Object source, final DatagramPacket packet) { + super( source ); + this.packet = packet; + } + + public String getText() { + return new String(packet.getData(), packet.getOffset(), packet.getLength(), StandardCharsets.UTF_8); + } + + public byte[] getBytes() { + return packet.getData(); } } diff --git a/src/main/java/biz/nellemann/syslogd/SyslogPrinter.java b/src/main/java/biz/nellemann/syslogd/SyslogPrinter.java index 631a4ce..e5be1dd 100644 --- a/src/main/java/biz/nellemann/syslogd/SyslogPrinter.java +++ b/src/main/java/biz/nellemann/syslogd/SyslogPrinter.java @@ -106,7 +106,7 @@ public class SyslogPrinter { StringBuilder sb = new StringBuilder("{ \"version\": \"1.1\","); sb.append(String.format("\"host\": \"%s\",", msg.hostname)); sb.append(String.format("\"short_message\": \"%s\",", JsonUtil.encode(msg.message))); - //sb.append(String.format("\"full_message\": \"%s\",", msg.message)); + sb.append(String.format("\"full_message\": \"%s\",", msg.structuredData)); sb.append(String.format("\"timestamp\": %d,", msg.timestamp.getEpochSecond())); sb.append(String.format("\"level\": %d,", msg.severity.toNumber())); sb.append(String.format("\"_facility\": \"%s\",", msg.facility)); diff --git a/src/main/java/biz/nellemann/syslogd/msg/SyslogMessage.java b/src/main/java/biz/nellemann/syslogd/msg/SyslogMessage.java index b6e4aa9..3f1df98 100644 --- a/src/main/java/biz/nellemann/syslogd/msg/SyslogMessage.java +++ b/src/main/java/biz/nellemann/syslogd/msg/SyslogMessage.java @@ -15,38 +15,55 @@ */ package biz.nellemann.syslogd.msg; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + import java.time.Instant; +@JsonIgnoreProperties(ignoreUnknown = true) public class SyslogMessage { - public Facility facility; - public Severity severity; + @JsonIgnore + public Facility facility = Facility.user; + + @JsonProperty("level") + public Severity severity = Severity.info; // The VERSION field denotes the version of the syslog protocol specification. - public Integer version; + public String version; // The TIMESTAMP field is a formalized timestamp derived from [RFC3339]. + @JsonProperty("timestamp") // 1670357783.694 - in GELF: seconds since UNIX epoch with optional decimal places for milliseconds public Instant timestamp; // The HOSTNAME field identifies the machine that originally sent the syslog message. + @JsonProperty("host") public String hostname; // The APP-NAME field SHOULD identify the device or application that originated the message. + @JsonProperty("_logger_name") public String application; // The PROCID field is often used to provide the process name or process ID associated with a syslog system. + @JsonProperty("_thread_name") public String processId; // The MSGID SHOULD identify the type of message. + @JsonIgnore public String messageId; // STRUCTURED-DATA provides a mechanism to express information in a well defined, easily parseable and interpretable data format. + @JsonProperty("full_message") public String structuredData; // The MSG part contains a free-form message that provides information about the event. - public final String message; + @JsonProperty("short_message") + public String message; - public SyslogMessage(final String message) { + @JsonCreator + public SyslogMessage(@JsonProperty("short_message") final String message) { this.message = message; } diff --git a/src/main/java/biz/nellemann/syslogd/net/LokiClient.java b/src/main/java/biz/nellemann/syslogd/net/LokiClient.java index 1395706..402428a 100644 --- a/src/main/java/biz/nellemann/syslogd/net/LokiClient.java +++ b/src/main/java/biz/nellemann/syslogd/net/LokiClient.java @@ -34,7 +34,6 @@ public class LokiClient implements LogForwardListener, Runnable { private final ArrayBlockingQueue blockingQueue = new ArrayBlockingQueue<>(1024); private final URL url; - private boolean keepRunning = true; public LokiClient(URL url) { @@ -82,7 +81,7 @@ public class LokiClient implements LogForwardListener, Runnable { @Override public void run() { - while (keepRunning) { + while (true) { try { send(blockingQueue.take()); } catch (Exception e) { diff --git a/src/main/java/biz/nellemann/syslogd/net/TcpServer.java b/src/main/java/biz/nellemann/syslogd/net/TcpServer.java index 5f26a77..e2d9fd4 100644 --- a/src/main/java/biz/nellemann/syslogd/net/TcpServer.java +++ b/src/main/java/biz/nellemann/syslogd/net/TcpServer.java @@ -21,8 +21,10 @@ import biz.nellemann.syslogd.LogReceiveListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.net.DatagramPacket; import java.net.ServerSocket; import java.net.Socket; +import java.nio.charset.StandardCharsets; import java.util.List; import java.util.ArrayList; @@ -31,10 +33,6 @@ public class TcpServer { private final int port; private ServerSocket serverSocket; - public TcpServer() { - this(514); - } - public TcpServer(int port) { this.port = port; } @@ -84,6 +82,8 @@ public class TcpServer { public void run() { + // GELF TCP does not support compression due to the use of the null byte (\0) as frame delimiter. + // Is \0 also used as frame delimiter for regular syslog messages ? try { in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); String inputLine; @@ -105,7 +105,8 @@ public class TcpServer { private synchronized void sendEvent(String message) { - LogReceiveEvent event = new LogReceiveEvent( this, message ); + DatagramPacket packet = new DatagramPacket(message.getBytes(StandardCharsets.UTF_8), message.length()); + LogReceiveEvent event = new LogReceiveEvent( this, packet); for (LogReceiveListener eventListener : eventListeners) { eventListener.onLogEvent(event); } diff --git a/src/main/java/biz/nellemann/syslogd/net/UdpServer.java b/src/main/java/biz/nellemann/syslogd/net/UdpServer.java index 8439408..ff6307f 100644 --- a/src/main/java/biz/nellemann/syslogd/net/UdpServer.java +++ b/src/main/java/biz/nellemann/syslogd/net/UdpServer.java @@ -30,24 +30,20 @@ public class UdpServer extends Thread { protected DatagramSocket socket; protected boolean listen = true; - public UdpServer() throws IOException { - this(514); - } - public UdpServer(int port) throws IOException { socket = new DatagramSocket(port); } public void run() { - byte[] buf = new byte[4096]; + byte[] buf = new byte[8192]; DatagramPacket packet = new DatagramPacket(buf, buf.length); while (listen) { try { socket.receive(packet); - String packetData = new String(packet.getData(), packet.getOffset(), packet.getLength(), StandardCharsets.UTF_8); - sendEvent(packetData); + //String packetData = new String(packet.getData(), packet.getOffset(), packet.getLength(), StandardCharsets.UTF_8); + sendEvent(packet); } catch (Exception e) { e.printStackTrace(); listen = false; @@ -56,13 +52,21 @@ public class UdpServer extends Thread { socket.close(); } + /* private synchronized void sendEvent(String message) { LogReceiveEvent event = new LogReceiveEvent( this, message); for (LogReceiveListener eventListener : eventListeners) { eventListener.onLogEvent(event); } } + */ + private synchronized void sendEvent(DatagramPacket packet) { + LogReceiveEvent event = new LogReceiveEvent( this, packet); + for (LogReceiveListener eventListener : eventListeners) { + eventListener.onLogEvent(event); + } + } /** * Event Listener Configuration diff --git a/src/main/java/biz/nellemann/syslogd/parser/GelfParser.java b/src/main/java/biz/nellemann/syslogd/parser/GelfParser.java new file mode 100644 index 0000000..abc5984 --- /dev/null +++ b/src/main/java/biz/nellemann/syslogd/parser/GelfParser.java @@ -0,0 +1,77 @@ +package biz.nellemann.syslogd.parser; + +import biz.nellemann.syslogd.msg.SyslogMessage; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.UnsupportedEncodingException; +import java.time.Instant; +import java.util.zip.DataFormatException; + +public class GelfParser extends SyslogParser { + + private final static Logger log = LoggerFactory.getLogger(GelfParser.class); + + private final ObjectMapper objectMapper; + + public GelfParser() { + objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JavaTimeModule()); + } + + + @Override + public SyslogMessage parse(String input) { + SyslogMessage message = null; + try { + message = objectMapper.readValue(input, SyslogMessage.class); + } catch (JsonProcessingException e) { + log.warn("parse() - error: {}", e.getMessage()); + } + return message; + } + + + /* + https://go2docs.graylog.org/5-0/getting_in_log_data/gelf.html + + zlib signatures at offset 0 + 78 01 : No Compression (no preset dictionary) + 78 5E : Best speed (no preset dictionary) + 78 9C : Default Compression (no preset dictionary) + 78 DA : Best Compression (no preset dictionary) + 78 20 : No Compression (with preset dictionary) + 78 7D : Best speed (with preset dictionary) + 78 BB : Default Compression (with preset dictionary) + 78 F9 : Best Compression (with preset dictionary) + + gzip signature at offset 0 + 1F 8B : GZIP compressed + */ + + @Override + public SyslogMessage parse(byte[] input) { + String text = null; + if(input[0] == (byte)0x78 && input[1] == (byte)0x9c) { // Compressed data - TODO: better detection ? + try { + text = decompress(input); + } catch (DataFormatException | UnsupportedEncodingException e) { + log.error("parse() - error: {}", e.getMessage()); + } + } else { + text = byteArrayToString(input); + } + + return parse(text); + } + + + @Override + public Instant parseTimestamp(String dateString) { + return null; + } + +} diff --git a/src/main/java/biz/nellemann/syslogd/parser/SyslogParser.java b/src/main/java/biz/nellemann/syslogd/parser/SyslogParser.java index 30bcafc..d2cc9fa 100644 --- a/src/main/java/biz/nellemann/syslogd/parser/SyslogParser.java +++ b/src/main/java/biz/nellemann/syslogd/parser/SyslogParser.java @@ -16,11 +16,17 @@ package biz.nellemann.syslogd.parser; import biz.nellemann.syslogd.msg.SyslogMessage; + +import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.time.Instant; +import java.util.zip.DataFormatException; +import java.util.zip.Inflater; public abstract class SyslogParser { public abstract SyslogMessage parse(final String input); + public abstract SyslogMessage parse(final byte[] input); public abstract Instant parseTimestamp(final String dateString); @@ -50,4 +56,23 @@ public abstract class SyslogParser { return severity; } + + protected String byteArrayToString(byte[] input) { + return new String(input, 0, input.length, StandardCharsets.UTF_8); + } + + + protected String decompress(byte[] data) throws UnsupportedEncodingException, DataFormatException { + + // Decompress the bytes + Inflater decompressor = new Inflater(); + decompressor.setInput(data, 0, data.length); + byte[] result = new byte[data.length * 2]; + int resultLength = decompressor.inflate(result); + decompressor.end(); + + // Decode the bytes into a String + return new String(result, 0, resultLength, StandardCharsets.UTF_8); + + } } diff --git a/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc3164.java b/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc3164.java index 01e0347..3f20948 100644 --- a/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc3164.java +++ b/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc3164.java @@ -15,6 +15,7 @@ */ package biz.nellemann.syslogd.parser; +import biz.nellemann.syslogd.LogReceiveEvent; import biz.nellemann.syslogd.msg.Facility; import biz.nellemann.syslogd.msg.Severity; import biz.nellemann.syslogd.msg.SyslogMessage; @@ -77,6 +78,11 @@ public class SyslogParserRfc3164 extends SyslogParser { return syslogMessage; } + @Override + public SyslogMessage parse(byte[] input) { + return parse(byteArrayToString(input)); + } + /** * Parse rfc3164 TIMESTAMP field into Instant. diff --git a/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc5424.java b/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc5424.java index 8abee4f..239d262 100644 --- a/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc5424.java +++ b/src/main/java/biz/nellemann/syslogd/parser/SyslogParserRfc5424.java @@ -15,6 +15,7 @@ */ package biz.nellemann.syslogd.parser; +import biz.nellemann.syslogd.LogReceiveEvent; import biz.nellemann.syslogd.msg.Severity; import biz.nellemann.syslogd.msg.Facility; import biz.nellemann.syslogd.msg.SyslogMessage; @@ -71,7 +72,7 @@ public class SyslogParserRfc5424 extends SyslogParser { SyslogMessage syslogMessage = new SyslogMessage(msg.trim()); syslogMessage.facility = Facility.getByNumber(facility); syslogMessage.severity = Severity.getByNumber(severity); - syslogMessage.version = Integer.parseInt(ver); + syslogMessage.version = ver; syslogMessage.timestamp = parseTimestamp(date); syslogMessage.hostname = host; if(app != null && !app.equals("-")) @@ -86,6 +87,11 @@ public class SyslogParserRfc5424 extends SyslogParser { return syslogMessage; } + @Override + public SyslogMessage parse(byte[] input) { + return parse(byteArrayToString(input)); + } + /** * Parse rfc5424 TIMESTAMP field into Instant. diff --git a/src/test/groovy/biz/nellemann/syslogd/GelfParserTest.groovy b/src/test/groovy/biz/nellemann/syslogd/GelfParserTest.groovy new file mode 100644 index 0000000..d1fec72 --- /dev/null +++ b/src/test/groovy/biz/nellemann/syslogd/GelfParserTest.groovy @@ -0,0 +1,62 @@ +package biz.nellemann.syslogd + +import biz.nellemann.syslogd.msg.Facility +import biz.nellemann.syslogd.msg.Severity +import biz.nellemann.syslogd.msg.SyslogMessage +import biz.nellemann.syslogd.parser.GelfParser +import biz.nellemann.syslogd.parser.SyslogParser +import spock.lang.Specification + + +class GelfParserTest extends Specification { + + SyslogParser syslogParser; + + void setup() { + syslogParser = new GelfParser(); + } + + void "uncompressed GELF message"() { + + /* + 0x7b 0x220x760x650x720x730x690x6f0x6e0x220x3a0x220x310x2e0x310x220x2c0x220x680x6f0x730x740x220x3a0x220x700x6f0x700x2d0x6f0x730x2e0x6c0x6f0x630x610x6c0x640x6f0x6d0x610x690x6e0x220x2c0x220x730x680x6f0x720x740x5f0x6d0x650x730x730x610x670x650x220x3a0x220x6d0x610x690x6e0x280x290x200x2d0x200x530x740x610x720x740x690x6e0x670x200x560x540x440x2d0x430x610x6d0x650x720x610x220x2c0x220x660x750x6c0x6c0x5f0x6d0x650x730x730x610x670x650x220x3a0x220x6d0x610x690x6e0x280x290x200x2d0x200x530x740x610x720x740x690x6e0x670x200x560x540x440x2d0x430x610x6d0x650x720x610x5c0x5c0x6e0x220x2c0x220x740x690x6d0x650x730x740x610x6d0x700x220x3a0x310x360x370x300x330x350x370x370x380x330x2e0x360x390x340x2c0x220x6c0x650x760x650x6c0x220x3a0x340x2c0x220x5f0x740x680x720x650x610x640x5f0x6e0x610x6d0x650x220x3a0x220x6d0x610x690x6e0x220x2c0x220x5f0x6c0x6f0x670x670x650x720x5f0x6e0x610x6d0x650x220x3a0x220x760x740x640x2e0x630x610x6d0x650x720x610x2e0x410x700x700x6c0x690x630x610x740x690x6f0x6e0x220x7d0x0a0x560x1f0x210x470x710x2c0xeb0x090x740x8e0x060x6f0x7f0xe70x7a0x330x890xb80xe10x6e0xa40x090xe90x9f0x870x1c0x290x900xcd0x880x4b0xea0xce0x9b0xf30x660xbc0x880x7b0x6f0x410x610x8f0x4c0xf00x570xaa0x590x620x180x8b0x820x730x040x350x3e0x120x8b0x930x7b0x130x780x5b0xb50x150x870x4f0xd00x5c0xb60xec0xfb0x070x9a0x690xc70xe8 + */ + setup: + def input = '{"version":"1.1","host":"pop-os.localdomain","short_message":"main() - Starting VTD-Camera","full_message":"main() - Starting VTD-Camera\\n","timestamp":1670357783.694,"level":4,"_thread_name":"main","_logger_name":"vtd.camera.Application"}' + + when: + SyslogMessage msg = syslogParser.parse(input) + + then: + msg.version == "1.1" + msg.message == "main() - Starting VTD-Camera" + msg.hostname == "pop-os.localdomain" + msg.application == "vtd.camera.Application" + msg.processId == "main" + msg.timestamp.toString() == "2022-12-06T20:16:23.694Z" + } + + + void "compressed GELF message"() { + + // GELF Magic Bytes: 0x1e, 0x0f + + + setup: + byte[] input = [ 120, -100, -51, 81, 77, 107, -61, 48, 12, -3, 43, -63, -25, -38, -115, -77, -75, -51, 2, -127, -11, -80, -61, 96, -73, 94, 11, -63, 56, 90, -30, -59, 31, -63, -106, -53, -54, -40, 127, -97, 92, 86, -40, 79, -40, 69, -78, -97, -11, -12, -98, -28, 47, 118, -127, -104, 76, -16, -84, 99, 82, 72, -74, 97, 115, 72, 72, 23, -77, 114, 89, 115, 73, 65, -14, 102, 87, 11, -56, 92, -125, -57, -88, 44, -105, 66, 7, -73, 102, 4, 97, 60, 66, -12, -54, 18, 45, -51, 33, -30, -32, 32, 37, 53, 1, -15, -31, 66, -43, -3, 49, -29, 76, -39, 104, -123, -92, 113, -54, 90, 83, -63, 75, 121, -86, 114, 42, 84, 7, -67, 83, 113, 17, 30, -84, 5, -89, -68, 127, -98, -100, 50, -74, 40, 84, 8, 94, 81, -113, -90, -118, -32, 2, -62, 113, 28, 35, -79, 123, -39, -18, -124, 108, -91, 104, -102, 7, 33, -27, -95, 74, 4, 82, -13, -41, -79, -9, -39, 22, 43, -17, -108, -2, -127, -109, -77, 39, 47, 104, -56, 8, 42, -73, -78, 78, -18, 15, -11, -82, -106, -121, -89, 86, -44, -113, -5, 13, -77, 100, -52, -78, -114, 78, -125, 90, -41, 65, -121, 76, -21, -67, -110, -31, 113, 97, -65, 88, 113, 69, -128, -93, 61, -57, -126, -39, 48, 77, 16, -17, -80, -6, 8, 57, -118, 99, -119, 39, -48, 57, 26, -68, -2, -99, -21, -51, 36, -14, 13, 55, 34, 77, 72, -1, 60, -28, 72, -126, 108, 70, 92, 83, 119, -34, -98, -73, -29, 34, 110, -67, 5, -119, -35, 53, -63, 95, -88, 102, -115, 97, 44, 8, -50, 17, -44, 120, 87, 44, 76, -18, 77, -32, 109, -35, -42, 28, 62, 65, -13, -122, 125, -1, 0, -40, 60, -57, -72 ]; + + when: + SyslogMessage msg = syslogParser.parse(input) + + then: + msg.version == "1.1" + msg.facility == Facility.user; + msg.severity == Severity.info; + msg.message == "event=AuthenticationSuccessEvent username=mark.nellemann@gmail.com tenant=2 remoteAddress=185.181.223.117 sessionId=null" + msg.hostname == "ip-10-1-101-250.eu-central-1.compute.internal" + msg.application == "ajour.AjourSecuritySuccessEventListener" + msg.processId == "http-nio-8080-exec-2" + msg.timestamp.toString() == "2022-12-08T12:16:38.046Z" + } + +}