Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions src/main/java/com/wizecore/graylog2/plugin/SyslogOutput.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.graylog2.syslog4j.SyslogConfigIF;
import org.graylog2.syslog4j.SyslogIF;
import org.graylog2.syslog4j.SyslogRuntimeException;
import org.graylog2.syslog4j.impl.AbstractSyslogConfigIF;
import org.graylog2.syslog4j.impl.message.processor.SyslogMessageProcessor;
import org.graylog2.syslog4j.impl.message.processor.structured.StructuredSyslogMessageProcessor;
import org.graylog2.syslog4j.impl.net.tcp.TCPNetSyslogConfig;
Expand Down Expand Up @@ -92,13 +93,23 @@ public SyslogOutput(@Assisted Stream stream, @Assisted Configuration conf) {
format = "plain";
}

int maxQueueSize = 500;
String queueSizeStr = conf.getString("maxQueueSize");
if (queueSizeStr != null && !queueSizeStr.trim().isEmpty()) {
maxQueueSize = Integer.parseInt(queueSizeStr);
}

log.info("Creating syslog output " + protocol + "://" + host + ":" + port + ", format " + format);
SyslogConfigIF config = null;
if (protocol.toLowerCase().equals("udp")) {
config = new UDPNetSyslogConfig();
UDPNetSyslogConfig udpConfig = new UDPNetSyslogConfig();
udpConfig.setMaxQueueSize(maxQueueSize);
config = udpConfig;
} else
if (protocol.toLowerCase().equals("tcp")) {
config = new TCPNetSyslogConfig();
TCPNetSyslogConfig tcpConfig = new TCPNetSyslogConfig();
tcpConfig.setMaxQueueSize(maxQueueSize);
config = tcpConfig;
} else
if (protocol.toLowerCase().equals("tcp-ssl")) {
CustomSSLSyslogConfig sslConfig = new CustomSSLSyslogConfig();
Expand Down Expand Up @@ -128,6 +139,7 @@ public SyslogOutput(@Assisted Stream stream, @Assisted Configuration conf) {
sslConfig.setKeyStorePassword(ksp);
sslConfig.setTrustStore(ts);
sslConfig.setTrustStorePassword(tsp);
sslConfig.setMaxQueueSize(maxQueueSize);
} else {
throw new IllegalArgumentException("Unknown protocol: " + protocol);
}
Expand Down Expand Up @@ -320,6 +332,8 @@ public ConfigurationRequest getRequestedConfiguration() {

configurationRequest.addField(new TextField("maxlen", "Maximum message length", "", "Maximum message (body) length. Longer messages will be truncated. If not specified defaults to 16384 bytes.", ConfigurationField.Optional.OPTIONAL));

configurationRequest.addField(new TextField("maxQueueSize", "Maximum queue size", "500", "Maximum number of messages to queue internally. Set to -1 for unlimited. Default is 500.", ConfigurationField.Optional.OPTIONAL));

configurationRequest.addField(new TextField("keystore", "Key store", "", "Path to Java keystore (required for SSL over TCP). Must contain private key and cert for this client.", ConfigurationField.Optional.OPTIONAL));
configurationRequest.addField(new TextField("keystorePassword", "Key store password", "", "", ConfigurationField.Optional.OPTIONAL));

Expand Down