Elk (Elastisearch Logstash Kibana): Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 69: Zeile 69:
 
input {
 
input {
 
   udp {
 
   udp {
     port => 5460
+
     port => 5140
 
     type => "opnsense"
 
     type => "opnsense"
 
   }
 
   }
 
   tcp {
 
   tcp {
     port => 5460
+
     port => 5140
 
     type => "opnsense"
 
     type => "opnsense"
 
   }
 
   }

Aktuelle Version vom 13. September 2025, 08:53 Uhr

Übersicht

Logstash

Logstash verarbeitet und normalisiert Logdateien. Die Anwendung zieht ihre Informationen aus unterschiedlichen Datenquellen, die Benutzer als Input-Module definieren. Quellen können beispielsweise Datenströme von Syslog oder Protokolldateien sein. In einem zweiten Schritt verarbeiten Filter-Plugins die Daten nach Benutzervorgaben weiter.

Elasticsearch

Elasticsearch ist in Java implementiert und basiert auf Apache Lucene, einer extrem leistungsfähigen Volltext-Suchmaschine, deren Funktionen über ein REST-API bereitstehen. Alle Texte, Dokumente genannt, indexiert Elasticsearch automatisch.

Kibana

Kibana erzeugt aus den Elasticsearch-Daten ansprechende Darstellungen und Berichte. Diese werden auf einem Webserver dargestellt.

ELK Installation (Elastic 8/9)

Installation

Elasticsearch

  • Dienst aktivieren und starten:
systemctl enable --now elasticsearch
  • Enrollment-Token für Kibana erzeugen:
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token --scope kibana

Kibana

  • Kibana für alle IPs freischalten
echo -e "server.port: 5601\nserver.host: 0.0.0.0" >>  /etc/kibana/kibana.yml
  • Dienst aktivieren und starten:
systemctl enable --now kibana
  • Verifikationscode erzeugen:
/usr/share/kibana/bin/kibana-verification-code
  • Zugriff im Browser:
http://<ELK_IP>:5601
  • Abschluss Passwort setzen
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

Logstash

  • Dienst aktivieren und starten:
systemctl enable --now logstash

Keystore anlegen

  • /usr/share/logstash/bin/logstash-keystore create --path.settings /etc/logstash
  • /usr/share/logstash/bin/logstash-keystore add ES_USER --path.settings /etc/logstash
elastic
  • /usr/share/logstash/bin/logstash-keystore add ES_PASS --path.settings /etc/logstash
<Elastic-Passwort>
  • Kontrolle:
/usr/share/logstash/bin/logstash-keystore list --path.settings /etc/logstash

Zertifikatsrechte

  • chown root:logstash /etc/elasticsearch/certs/http_ca.crt
  • chmod 640 /etc/elasticsearch/certs/http_ca.crt
  • chmod o+rx /etc/elasticsearch
  • chmod o+rx /etc/elasticsearch/certs

Output-Block (/etc/logstash/conf.d/output.conf)

output {
  elasticsearch {
    hosts => ["https://localhost:9200"]
    ssl_enabled => true
    ssl_certificate_authorities => ["/etc/elasticsearch/certs/http_ca.crt"]
    ssl_verification_mode => "full"
    user => "${ES_USER}"
    password => "${ES_PASS}"
  }
}

Input für die Opnsense (/etc/logstash/conf.d/input.conf)

input {
  udp {
    port => 5140
    type => "opnsense"
  }
  tcp {
    port => 5140
    type => "opnsense"
  }
}

Config testen und starten

  • sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
  • systemctl restart logstash
  • systemctl status logstash --no-pager

Test

  • echo "Hallo ELK" | /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/
  • In Kibana → Discover → Index logstash-
  • prüfen