Elk (Elastisearch Logstash Kibana)
Zur Navigation springen
Zur Suche springen
Ü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