Einführung
Der ELK Stack lässt sich nativ in Kubernetes integrieren, wo er als Überwachungsstack dient – er sammelt, speichert und analysiert k8-Telemetriedaten. Es gibt mehrere Methoden zum Einrichten und Bereitstellen des ELK-Stacks auf Kubernetes, und die Verwendung von Helm-Diagrammen ist die einfachste.
In diesem Tutorial erfahren Sie, wie Sie mithilfe eines Helm-Diagramms Elasticsearch, die Hauptkomponente des ELK-Stacks, sowie Kibana und Metricbeat (anstelle von Logstash) in Ihrem Kubernetes-Cluster installieren.
Voraussetzungen
- Ein Kubernetes-Cluster (Sie können ihn mit Minikube erstellen)
- kubectl-Befehlszeilentool installiert
- Helm-Paketmanager installiert
Kubernetes-Cluster für Elasticsearch einrichten
1. Starten Sie zuerst Minikube. Ein Multi-Node-Cluster für Elasticsearch erfordert erhebliche Systemressourcen, stellen Sie also sicher, dass Sie mit --cpus
genügend CPUs und Arbeitsspeicher zuweisen und --memory
Optionen:
minikube start --cpus 4 --memory 8192
Wichtig: Wenn Sie zuvor einen Minikube-Cluster auf demselben System ausgeführt haben, können Sie die oben genannten Optionen nicht zum Zuweisen von Ressourcen verwenden. Um einen neuen Cluster zu starten, verwenden Sie minicube delete
Befehl zum Entfernen des vorherigen Clusters und fahren Sie dann mit den Anweisungen fort.
2. Überprüfen Sie, ob Ihr Cluster ordnungsgemäß funktioniert, indem Sie Folgendes eingeben:
kubectl cluster-info
Die Ausgabe bestätigt, dass die Kubernetes-Steuerungsebene und KubeDNS ausgeführt werden:
Elasticsearch mit Helm bereitstellen
1. Um mit der Installation von Elasticsearch zu beginnen, fügen Sie elastic
hinzu Repository in Helm:
helm repo add elastic https://helm.elastic.co
2. Verwenden Sie nun den curl
Befehl zum Herunterladen der values.yaml
Datei mit Konfigurationsinformationen:
curl -O https://raw.githubusercontent.com/elastic/helm-charts/master/elasticsearch/examples/minikube/values.yaml
3. Verwenden Sie helm install
Befehl und die values.yaml
Datei zum Installieren des Elasticsearch-Helm-Diagramms:
helm install elasticsearch elastic/elasticsearch -f ./values.yaml
Das -f
Option ermöglicht die Angabe von yaml
Datei mit der Vorlage. Wenn Sie Elasticsearch in einem bestimmten Namespace installieren möchten, fügen Sie -n
hinzu Option, gefolgt vom Namen des Namensraums.
helm install elasticsearch elastic/elasticsearch -n [namespace] -f ./values.yaml
Die Ausgabe bestätigt den Status der App als bereitgestellt und bietet zusätzliche Optionen zum Testen der Installation:
4. Die erste Option ist die Verwendung der get pods
Befehl, um zu prüfen, ob die Cluster-Mitglieder aktiv sind:
kubectl get pods --namespace=default -l app=elasticsearch-master -w
Sobald READY
Spalte in der Ausgabe vollständig mit 1/1
gefüllt ist Einträge sind alle Cluster-Mitglieder aktiv:
Die andere Option ist die Verwendung des helm test
Befehl zum Überprüfen des Zustands des Clusters:
helm test elasticsearch
5. Sobald Sie Elasticsearch erfolgreich installiert haben, verwenden Sie kubectl port-forward
Befehl, es an Port 9200 weiterzuleiten :
kubectl port-forward svc/elasticsearch-master 9200
Um das Terminal nach der Ausführung von port-forward
weiterhin zu verwenden Befehl, führen Sie den Befehl in einem anderen Terminalfenster aus.
Kibana installieren
1. Um Kibana zusätzlich zu Elasticsearch zu installieren, geben Sie den folgenden Befehl ein:
helm install kibana elastic/kibana
Die Ausgabe bestätigt die Bereitstellung von Kibana:
2. Überprüfen Sie, ob alle Pods bereit sind:
kubectl get pods
Der Kibana-Pod wird unter den Elasticsearch-Pods angezeigt:
3. Leiten Sie Kibana an Port 5601 weiter mit kubectl
:
kubectl port-forward deployment/kibana-kibana 5601
4. Nachdem Sie die Portweiterleitung eingerichtet haben, greifen Sie auf Elasticsearch und die Kibana-GUI zu, indem Sie http://localhost:5601
eingeben in Ihrem Browser:
Metricbeat installieren
Die Installation von Metricbeat folgt dem gleichen Muster wie die Installation von Kibana.
1. Verwenden Sie Helm, um install
auszuführen Befehl:
helm install metricbeat elastic/metricbeat
2. Bestätigen Sie, dass die Metricbeat-Pods betriebsbereit sind:
kubectl get pods
3. Verwenden Sie curl
, um die Indizierung von Elasticsearch-Metriken anzuzeigen Befehl:
curl localhost:9200/_cat/indices
4. Besuchen Sie Kibana. Sie können jetzt ein Indexmuster erstellen. Navigieren Sie zu Stapelverwaltung> Indexmuster :
5. Klicken Sie auf Create Index Pattern
Schaltfläche, um mit Kibana zu arbeiten.