Elk (Elastisearch Logstash Kibana): Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Installation=
+
=Übersicht=
*wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
+
==Logstash==
*echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
+
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.
*apt update
+
==Elasticsearch==
*apt -y install elasticsearch kibana logstash
+
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.
=Systemd Services=
+
==Kibana==
*systemctl daemon-reload
+
Kibana erzeugt aus den Elasticsearch-Daten ansprechende Darstellungen und Berichte. Diese werden auf einem Webserver dargestellt.
*systemctl enable kibana.service
+
= ELK Installation (Elastic 8/9) =
*systemctl enable elasticsearch.service
+
== Installation ==
*systemctl enable logstash.service
+
* apt install apt-transport-https gnupg2 software-properties-common dirmngr lsb-release ca-certificates git
 +
* wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
 +
* echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-8.x.list
 +
* apt update
 +
* apt install elasticsearch kibana logstash
 +
 
 +
== 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) ===
 +
<pre>
 +
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}"
 +
  }
 +
}
 +
</pre>
 +
 
 +
=== Input für die Opnsense (/etc/logstash/conf.d/input.conf) ===
 +
<pre>
 +
input {
 +
  udp {
 +
    port => 5140
 +
    type => "opnsense"
 +
  }
 +
  tcp {
 +
    port => 5140
 +
    type => "opnsense"
 +
  }
 +
}
 +
</pre>
 +
 
 +
=== 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

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