Logstash

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Logstash ist ein Java-Programm, welches entweder unter Java 11 oder Java 17 ausgeführt werden sollte.

Debian Installation

  • Benötigte Pakete
  • apt install apt-transport-https gpg
  • Hinzufügen des GPG-Schlüssels zum System-Schlüsselbund und des Elastic-Repository
  • curl https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
  • echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-8.x.list
  • Installation von Logstash
  • apt update && apt install -y logstash
  • Die Binary wird unter dem Ordner /usr/share/logstash/bin/logstash installiert

Testen der Installation

  • cd /usr/share/logstash/bin
  • ./logstash -e 'input { stdin { } } output { stdout {} }'
  • Dieser Befehl startet logstash, wobei Eingaben aus stdin eingelesen werden und über stdout ausgegeben werden
  • Der Startprozess dauert eine Weile. Der Prozess ist bereit, wenn folgendes angezeigt wird
Using bundled JDK: /usr/share/logstash/jdk
...
[INFO ] 2024-02-21 10:41:45.464 [[main]-pipeline-manager] javapipeline - Pipeline Java execution initialization time {"seconds"=>0.73}
[INFO ] 2024-02-21 10:41:45.497 [[main]-pipeline-manager] javapipeline - Pipeline started {"pipeline.id"=>"main"}
The stdin plugin is now waiting for input:
[INFO ] 2024-02-21 10:41:45.512 [Agent thread] agent - Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
  • Nun wird jegliche Eingabe auf die Konsole von Logstash aufgenommen und als Event über stdout ausgegeben
  • Wenn man also hello world eintippt:
{
	"message" => "hello world",
	"@timestamp" => 2024-02-21T09:44:12.754325552Z,
	"event" => {
		"original" => "hello world"
	},
	"host" => {
		"hostname" => "firewall"
	},
	"@version" => "1"
}

Konfiguration

  • Eine Logstash-Konfiguration muss Input- und Output-Plugins definieren
  • Optional können Filter-Regeln hinzugefügt werden
input {
	...
}
#filter {
#	...
#}
output {
	...
}

Links