暫無描述

didfet 9c93e650cd Merge pull request #22 from didfet/test-bufferedrandomaccessfile 10 年之前
.settings 011f5392cc Added commons-io dependency. 11 年之前
src b469a0e872 Fix nullpointerexception. 10 年之前
.classpath 56b932ee2e Fix bug #8. 11 年之前
.gitignore 5e7f32b732 Repaired error caused by deletion of file with insufficient permissions. 11 年之前
.project 56b932ee2e Fix bug #8. 11 年之前
HOWTO-KEYSTORE.md 991e7fc8ee Added HOWTO-KEYSTORE.md 11 年之前
LICENSE.md b66a7a939d Copied RandomAccessFile code into the util package because of compiler 10 年之前
README.md 081cbcb1f3 Release 0.2.3. 11 年之前
pom.xml b66a7a939d Copied RandomAccessFile code into the util package because of compiler 10 年之前

README.md

logstash-forwarder-java

What is this ?

Logstash-forwarder-java is a log shipper program written in java. This is in fact a java version of logstash-forwarder by jordansissel. Here are a few features of this program :

  • compatible with Java 5 runtime
  • lightweight : package size is ~2MB and memory footprint ~8MB
  • configuration compatible with logstash-forwarder
  • lumberjack output (including zlib compression)

Why ?

Logstash-forwarder is written in go. This programming language is not available on all platforms (for example AIX), that's why a java version is more portable.

Logstash runs on java and provides a lumberjack output, but the file input doesn't run on all plaforms (for example AIX) and logstash requires a recent JVM. Moreover Logstash is heavier : it is a big package and uses more system resources.

So logstash-forwarder-java is a solution for those who want a portable, lightweight log shipper for their ELK stack.

How to install it ?

Download one of the following archives :

Or download the maven project and run maven package. Then you can install one of the archives located in the target directory.

How to run it ?

Just run this command :

java -jar logstash-forwarder-java-X.Y.Z.jar -config /path/to/config/file.json

For help run :

java -jar logstash-forwarder-java-X.Y.Z.jar -help

Differences with logstash-forwarder

Configuration

The configuration file is the same (json format), but there are a few differences :

  • the ssl ca parameter points to a java keystore containing the root certificate of the server, not a PEM file
  • comments are C-style comments

Command-line options

Some options are the same :

  • config (but only for a file, not a directory)
  • quiet
  • idle-timeout (renamed idletimeout)
  • spool-size (renamed spoolsize)
  • tail
  • help

There are a few more options :

  • debug : turn on debug logging level
  • trace : turn on trace logging level
  • signaturelength : size of the block used to compute the checksum
  • logfile : send logs to this file instead of stdout
  • logfilesize : maximum size of each log file (default 10M)
  • logfilenumber : number of rotated log files (default 5)