Logstash: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 29: Zeile 29:
  
 
  {
 
  {
"message" => "hello world",
+
"message" => "hello world",
 
  "@timestamp" => 2024-02-21T09:44:12.754325552Z,
 
  "@timestamp" => 2024-02-21T09:44:12.754325552Z,
 
  "event" => {
 
  "event" => {
Zeile 35: Zeile 35:
 
  },
 
  },
 
  "host" => {
 
  "host" => {
"hostname" => "firewall"
+
"hostname" => "firewall"
 
  },
 
  },
 
  "@version" => "1"
 
  "@version" => "1"

Version vom 6. März 2024, 07:34 Uhr

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