Elk (Elastisearch Logstash Kibana): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
=Übersicht= | =Übersicht= | ||
| − | |||
| − | |||
==Logstash== | ==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. | 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. | ||
| Zeile 8: | Zeile 6: | ||
==Kibana== | ==Kibana== | ||
Kibana erzeugt aus den Elasticsearch-Daten ansprechende Darstellungen und Berichte. Diese werden auf einem Webserver dargestellt. | 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 |
| − | *systemctl enable kibana | + | 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
- 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