
Einführung
Wir installieren Elasticsearch und Kibana. Wir verwenden die von Elasticsearch erstellte CA, um privat signierte TLS-Zertifikate für Elasticsearch und Kibana zu erstellen.gemäß Originaldokumentation. Wir werden IP-Adressen verwenden, um sowohl auf Elasticsearch als auch auf Kibana zuzugreifen.
Quellcode:Gefunden auf Github
Anforderungen
Im Video verwenden wir eine Instanz von Ubuntu 24.04, die auf einer VM mit 8 GB Speicher läuft. Die VM läuft in einem lokalen privaten Netzwerk. Wir installieren sowohl Elastic als auch Kibana auf demselben Server.
Schritte
Schritt 1 – Ubuntu aktualisieren
Die Ubuntu-Installation ist brandneu. Wir aktualisieren die Distribution und installieren einige Tools, die wir normalerweise auf beiden Maschinen verwenden.
apt-get update && apt dist-upgrade -y && apt-get install -y vim curl zip gnupg gpg
Schritt 2 – Elasticsearch installieren
Die Ubuntu-Installationen benötigen diese Abhängigkeiten, führen Sie daher auf beiden diese Befehle aus:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.x.list
apt-get update;
apt-get install -y apt-transport-https;
apt-get install -y elasticsearch;
Notieren Sie sich nach Abschluss der Installation unbedingt das Passwort.
Schritt 3 – Elasticsearch konfigurieren
Bearbeiten Sie elasticsearch.yml
Gehen Sie zum /etc/elasticsearch/elasticsearch.yml
Datei. Bearbeiten Sie die folgenden Felder:
...etc...
cluster.name: {anything you want}
...etc...
network.host: 0.0.0.0
...etc...
Hinweis: Sie können auch ersetzen network.host: 0.0.0.0
mit der IP-Adresse der Maschine, auf die andere Systeme verweisen sollen.
Eigentümer ändern
chown -R elasticsearch:elasticsearch /etc/elasticsearch
Schritt 4 – Elasticsearch starten
Starten Sie elasticsearch mit diesen Befehlen:
systemctl enable elasticsearch;
systemctl daemon-reload;
systemctl start elasticsearch;
Bestätigen Sie mit diesem Befehl, dass Elasticsearch funktioniert:
curl -X GET -u elastic:<password from step 2> https://{ip address of server}:9200 --cacert /etc/elasticsearch/certs/http_ca.crt
Und Sie sollten ungefähr Folgendes sehen:
Schritt 5 – OPTIONAL – Elastic-Passwort ändern
Mit diesem Befehl können Sie das Passwort Ihrer Elasticsearch-Instanz ändern /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
. Sie können die -i
Flag, wenn Sie das Passwort automatisch generieren möchten.
Schritt 6 – Kibana installieren
Da Kibana dieselben Abhängigkeiten wie Elasticsearch verwendet, können Sie Kibana direkt wie folgt installieren:
apt-get install -y kibana;
Schritt 7 – Zertifikate für Kibana erstellen
Lassen Sie uns Zertifikate für Kibana erstellen. Sie benötigen die /usr/share/elasticsearch/bin/elasticsearch-certutil
Befehl und die CA-Dateien für Elasticsearch. Da sich Kibana auf demselben Server wie der Elasticsearch-Server befindet, haben wir Zugriff auf alle diese Ressourcen.
Wir müssen zuerst die private CA-Schlüsseldatei aus dem /etc/elasticsearch/http.p12
. Dazu müssen Sie das Passwort für die http.p12
Datei, die im Elasticsearch-Schlüsselspeicher gespeichert ist. Mit diesem Befehl können Sie eine Liste aller Schlüsselspeicherpaare anzeigen:
/usr/share/elasticsearch/bin/elasticsearch-keystore list
Der xpack.security.http.ssl.keystore.secure_password
ist das, was Sie wollen. Sie können das Passwort also so sehen:
/usr/share/elasticsearch/bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
Jetzt können Sie den privaten Schlüssel aus dem http.p12
Verwenden Sie diesen OpenSSL-Befehl und erstellen Sie eine http_ca.key
(Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden):
openssl pkcs12 -in /etc/elasticsearch/certs/http.p12 -nodes -nocerts -out /etc/elasticsearch/certs/http_ca.key
Sie haben nun den privaten CA-Schlüssel als http_ca.key
. Halten http_ca.key
geheim und lassen Sie es niemals den Elasticsearch-Server verlassen. Oder löschen Sie die http_ca.key
sobald Sie damit fertig sind. Sie können es jederzeit neu erstellen, indem Sie die obigen Schritte wiederholen.
Führen Sie diesen Befehl aus, um die Kibana-TLS-Dateien zu erstellen:
/usr/share/elasticsearch/bin/elasticsearch-certutil cert \
--out /etc/kibana/kibana.zip \
--name kibana \
--ca-cert /etc/elasticsearch/certs/http_ca.crt \
--ca-key /etc/elasticsearch/certs/http_ca.key \
--ip {ip address of server} \
--pem;
cd /etc/kibana/;
unzip kibana.zip
mv kibana certs
cp /etc/elasticsearch/certs/http_ca.crt /etc/kibana/certs/
chown -R kibana:kibana /etc/kibana
Schritt 8 – Kibana konfigurieren
Gehen Sie zum /etc/kibana/kibana.yml
Datei. Bearbeiten Sie die folgenden Felder:
Edit Kibana.yml
server.host: 0.0.0.0
server.publicBaseUrl: "https://{ip address of server}:5601"
server.ssl.enabled: true
server.ssl.key: /etc/kibana/certs/kibana.key
server.ssl.certificate: /etc/kibana/certs/kibana.crt
server.ssl.certificateAuthorities: /etc/kibana/certs/http_ca.crt
Starten Sie Kibana
systemctl enable kibana
systemctl daemon-reload
systemctl start kibana
systemctl status kibana
Der systemctl status kibana
sollte nach etwa einer Minute etwa Folgendes anzeigen:
Ich habe die URL, die Sie besuchen sollten, rot hervorgehoben, außer ersetzen 0.0.0.0
mit der tatsächlichen IP-Adresse Ihres Computers. Denken Sie daran, auch den Abfragestring-Teil zu kopieren ?code=____
.
Auf der Webseite werden Sie nach einem Registrierungstoken gefragt.
Registrierungstoken erstellen
Führen Sie diesen Befehl auf dem Elasticsearch-Server aus:
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
Fügen Sie dieses Token in Ihre Kibana-Website ein und drücken Sie Configure
.
Wenn Sie nach einem Bestätigungscode gefragt werden, können Sie diesen Befehl ausführen, um es abzurufen:
/usr/share/kibana/bin/kibana-verification-code
Sie können sich jetzt bei Kibana anmelden mit dem elastic
Benutzer und Passwort, die Sie zuvor festgelegt haben.
Schritt 9 – Service-Token ausblenden
Gehen Sie zu Ihrem /etc/kibana/kibana.yml
und suchen Sie diese Zeile:
Dieser Wert sollte geheim sein. Verwenden wir den Kibana-Schlüsselspeicher, um ihn zu verbergen.
/usr/share/kibana/bin/kibana-keystore add elasticsearch.serviceAccountToken
Fügen Sie bei entsprechender Aufforderung das Service-Token ein.
Löschen Sie nun die Zeile elasticsearch.serviceAccountToken: ...
von dort kibana.yml
Datei.
Starten Sie Kibana neu
systemctl restart kibana
Gehen Sie zurück zu Ihrem Webbrowser und genießen Sie es!