Elk (Elastisearch Logstash Kibana): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Kibana) |
|||
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 49: | Zeile 49: | ||
* chmod 640 /etc/elasticsearch/certs/http_ca.crt | * chmod 640 /etc/elasticsearch/certs/http_ca.crt | ||
* chmod o+rx /etc/elasticsearch | * chmod o+rx /etc/elasticsearch | ||
| + | * chmod o+rx /etc/elasticsearch/certs | ||
=== Output-Block (/etc/logstash/conf.d/output.conf) === | === Output-Block (/etc/logstash/conf.d/output.conf) === | ||
| Zeile 64: | Zeile 65: | ||
</pre> | </pre> | ||
| − | === | + | === Input für die Opnsense (/etc/logstash/conf.d/input.conf) === |
<pre> | <pre> | ||
input { | input { | ||
| − | + | udp { | |
| + | port => 5140 | ||
| + | type => "opnsense" | ||
| + | } | ||
| + | tcp { | ||
| + | port => 5140 | ||
| + | type => "opnsense" | ||
| + | } | ||
} | } | ||
</pre> | </pre> | ||
| Zeile 78: | Zeile 86: | ||
== Test == | == Test == | ||
* echo "Hallo ELK" | /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/ | * echo "Hallo ELK" | /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/ | ||
| − | * In Kibana → Discover → Index logstash-* prüfen | + | * 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
- 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)
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