Logstash: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Logstash ist ein Java-Programm, welches entweder unter Java 11 oder Java 17 ausgeführt werden sollte
+
Logstash ist ein Java-Programm, welches entweder unter Java 11 oder Java 17 ausgeführt werden sollte.
  
 
= Debian Installation =
 
= Debian Installation =
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" => {
        "original" => "hello world"
+
"original" => "hello world"
    },
+
},
          "host" => {
+
"host" => {
        "hostname" => "firewall"
+
"hostname" => "firewall"
    },
+
},
      "@version" => "1"
+
"@version" => "1"
 +
}
 +
 
 +
= Konfiguration =
 +
* Eine Logstash-Konfiguration muss Input- und Output-Plugins definieren
 +
* Optional können Filter-Regeln hinzugefügt werden
 +
 
 +
input {
 +
...
 +
}
 +
#filter {
 +
# ...
 +
#}
 +
output {
 +
...
 
  }
 
  }
  
 
= Links =
 
= Links =
 
* https://www.elastic.co/guide/en/logstash/8.12/getting-started-with-logstash.html
 
* https://www.elastic.co/guide/en/logstash/8.12/getting-started-with-logstash.html

Aktuelle 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