Auf einen Blick: Anleitungen zur Einrichtung eines ElasticSearch-Version-7-Clusters mit Ubuntu 16.04 werden bereitgestellt, einschließlich Serverkonfiguration und Softwareinstallationsschritte. Fehlerbehebungstipps und nächste Schritte zur Produktionsbereitschaft sind ebenfalls enthalten.
- Installiere ElasticSearch und Kibana mit bestimmten Konfigurationen.
- Öffnen Sie notwendige Firewall-Ports für den Betrieb.
- Die Fehlerbehebungsoptionen für Clusterprobleme sind detailliert.
- Die nächsten Schritte umfassen Speicheranpassungen und die Konfiguration des Proxy-Servers.
Hier installieren wir ElasticSearch und Kibana mit Ubuntu 16.04 und ElasticSearch 7.0.1. Unten finden Sie einige Hinweise zur Fehlerbehebung.
ElasticSearch ist inzwischen zu einem börsennotierten Unternehmen geworden, nachdem es einen Börsengang gemacht und Aktien verkauft hat. Eine der ersten Maßnahmen war die Erstellung von ElasticSearch Version 7. Leider haben sich die Installationsanweisungen, wie man einen Cluster mit Version einrichtet, geändert. Deshalb haben wir neue Anweisungen geschrieben. Der Hauptunterschied zu dem, was wir unten geschrieben haben, ist, dass keine Discovery-Plugins hinzugefügt oder konfiguriert werden müssen.
Diese Anweisungen ersetzen also die hier geschriebenen Version-6-Anweisungen.
Servernamen
In diesem Beispiel haben wir zwei Server. Ändere die Namen und IP-Adressen an deine Umgebung. Verwende keine Loopback-Adresse, da wir einen Cluster aus zwei Servern bilden werden. Stattdessen nutze deren interne IP-Adressen.
172.31.46.15 Parisx
172.31.47.43 paris2x
Und wir haben diese öffentliche IP-Adresse, damit wir Kibana vom Internet aus erreichen können:
ec2-35-180-186-122.eu-west-3.compute.amazonaws.com:5601
Firewall-Ports
Öffnen Sie Firewall-Ports 9200 (HTTP-Schnittstelle), 9300 (Transport) und 5601 (KIbana).
Installation von Software
Führen Sie diese Anweisungen aus:
Fehlerbehebung
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.1-amd64.deb
sudo dpkg -i elasticsearch-7.0.1-amd64.deb
https://artifacts.elastic.co/downloads/kibana/kibana-7.0.1-linux-x86_64.tar.gz
sudo dpkg -i kibana-7.0.1-amd64.deb
Erstellen Sie eine ElasticSearch-Konfigurationsdatei
Auf dem Pariser Server ersetzen Sie diese Datei /etc/elasticsearch/elasticsearch.yml durch:
cluster.name: paris
node.name: parisx
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 172.31.46.15
discovery.seed_hosts: ["172.31.46.15", "172.31.47.43"]
cluster.initial_master_nodes: ["172.31.46.15"]
node.master: true
Auf dem paris2-Server ersetzen Sie diese Datei /etc/elasticsearch/elasticsearch.yml durch die unten gezeigten Inhalte.
cluster.name: paris
node.name: paris2x
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 172.31.47.43
discovery.seed_hosts: ["172.31.47.43","172.31.46.15"]
cluster.initial_master_nodes: ["172.31.46.15"]
Starten Sie ElasticSearch auf jedem Server:
sudo service elasticsearch start
Überprüfe den Cluster-Status. Du solltest zwei Knoten sehen, wenn alles funktioniert.
curl -XGET http://172.31.46.15:9200/_cluster/health?pretty
{
"cluster_name" : "paris",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 2,
"active_shards" : 4,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
Configure Kibana
Ersetze die Konfigurationsdatei /etc/kibana/kibana.yml durch diese:
server.host: "172.31.46.15"
server.name: "paris"
elasticsearch.hosts: ["http://172.31.46.15:9200"]
elasticsearch.preserveHost: false
logging.dest: stdout
logging.verbose: true
Fang mit Kibana an. Es könnte eine Minute oder länger dauern, bis du anfängst.
sudo service kibana start
Öffnen Sie die Kibana-Konsole
http://ec2-35-180-186-122.eu-west-3.compute.amazonaws.com:5601/app/kibana
Es kann ein paar Minuten dauern, die Grafiken herunterzuladen und auch Kibana zu starten. Das Dashboard wird erscheinen:
- Wenn einer der Knoten dem Cluster nicht beitreten kann, lösche den /var/lib/elasticsearch-Ordner, da die Cluster-UUIDs wahrscheinlich nicht übereinstimmen. Das passiert, wenn du Fehler machst und die Server mit anderen Einstellungen neu startest.
- Stellen Sie sicher, dass Port 5601 in Richtung auswärts geöffnet ist. In Europa haben Unternehmen aufgrund der DSGVO-Anforderungen standardmäßig aufgehört, alle Häfen in auswärtiger Richtung zu öffnen.
- Wenn du entweder ElasticSearch oder Kibana im Vordergrund laufen lassen möchtest, kannst du das tun. Das dient nur zu Fehlerbehebungszwecken. Die oben beschriebene Kibana-Konfiguration ist so eingestellt, dass Ausgabe auf Stdout protokolliert wird, also müsstest du sie im Vordergrund ausführen, um das zu sehen, oder die Logs auf Festplatte schreiben. Du kannst Kibana als Root ausführen. Aber du kannst ElasticSearch nicht als Root ausführen. Du müsstest also die Eigentümerschaft von /usr/share/elasticsearch, /var/log/elasticsearch und /var/lib/elasticsearch auf deine Benutzer-ID ändern oder dich als User Elasticsearch anmelden, um elasticsearch im Vordergrund auszuführen. Beide Binärdateien findest du in den Ordnern /usr/share/kibana und /usr/share/elasticsearch.
- Suchen Sie nach ElasticSearch-Fehlern in /var/log/elasticsearch/paris.log. Der Dateiname ist der Knotenname.
curl http://172.31.47.43:9200
{
"name" : "paris2x",
"cluster_name" : "paris",
"cluster_uuid" : "uB_1NLmYRbKcVbKGPzsNSQ",
"version" : {
"number" : "7.0.1",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "e4efcb5",
"build_date" : "2019-04-29T12:56:03.145736Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.7.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Nächste Schritte
Die nächsten Schritte vor der Produktion wären, die Speichergröße auf die Hälfte des Speichers der Maschine zu erhöhen (empfohlen von ElasticSearch) in /etc/elasticsearch/jvm.options durch Änderung der untenstehenden Werte.
-Xms1g
-Xmx1g
Du solltest auch einen Proxy-Server davor platzieren, damit du grundlegende Authentifizierung und SSH konfigurieren kannst. (Du kannst auch SSH in ElasticSearch konfigurieren.)
ElasticSearch-Leitfaden
- ElasticSearch Tutorial für Anfänger: ElasticSearch Grundlagen
- Verwendung von Apache Hive mit ElasticSearch
- Verwendung von ElasticSearch mit Apache Spark
- Curl ElasticSearch Befehle Spickzettel
- Spark ElasticSearch Hadoop-Update und Upsert Beispiel und Erklärung
- Wie man Apache Spark-Daten mit Python in ElasticSearch schreibt
- ElasticSearch-Suchsyntax sowie boolesche und Aggregationssuchen
- ElasticSearch verschachtelte Abfragen: Wie man nach eingebetteten Dokumenten sucht
- ElasticSearch Joins: Has_Child, Has_parent Abfrage
- Wie man einen elastischen Cluster der Version 7 einrichtet
- Wie man Filebeat für nginx und ElasticSearch konfiguriert
- Beats und Logstash verwenden, um Logs an ElasticSearch zu senden
- Wie man eine CSV-Datei mit Logstash in ElasticSearch lädt
- ElasticSearch-Aggregationen erklärt
- Was ist der ELK-Stack?
- Logstash 101: Verwendung von Logstash in einer Datenverarbeitungspipeline
- Verwendung von Kibana zur Ausführung von Abfragen in ElasticSearch mit Lucene und Kibana Query Language
- ElasticSearch Maschinelles Lernen
- Wie man Elastic Enterprise Search installiert
- Wie man Elastic Enterprise Search mit GitHub verwendet
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.