Mit PHPStorm Verbindungen mit Elasticsearch Clustern herstellen.
TL:DR
- Installiere plugin.
- Stelle Elasticsearch im Netzwerk bereit: Snippet.
- Starte
elasticsearch
Service neu. - Setze Elasticsearch Verbindung in PHPStorm.
Basis
In diesem Beitrag gehe ich von Elasticsearch v7.10
aus. Das Netzwerkweite bereitstellen sollte seit v6.2.0
in etwa gleich sein.
Außerdem gehe ich von vier Dingen aus.
- Dein Gast ist erreichbar unter der IP:
192.168.10.10
. - Dein Gast leitet den Port
9200
auf den Port9200
weiter. - Elasticsearch ist innerhalb eines Gasts verfügbar. Ergo nicht auf deinem Rechner (Host), aber irgendwo anders (Virtuelle Maschine, Docker-Container).
- Du hast Kontrolle über deine Elasticsearch Konfiguration und die Konfigurationsdatei liegt innerhalb deiner Entwicklungsumgebung unter
/etc/elasticsearch/elasticsearch.yml
.
Sollte bei dir eine andere IP, Port oder Konfigurations-Pfad, zutreffen, ist das kein Problem. Ersetze einfach die Beispiel Werte mit deinen.
Solltest du einen Docker-Container einsetzen der nicht den Komfort einer eigenen elasticsearch.yaml
bietet, hoffe ich für dich das die docker-compose
Konfigurations-Möglichkeiten bietet. Andernfalls bitte ich dich an die Maintainer zu wenden, wie es gedacht ist Elasticsearch zu konfigurieren.
Elasticsearch im Netzwerk bereitstellen
Bevor es losgeht ein Wort der Warnung. Folgende Einstellungen stellen Elasticsearch Netzwerkweit bereit. Also ist Elasticsearch für andere im Netzwerk erreichbar. Ergo Nicht in produktiven Umgebungen umsetzen.
Lass uns zunächst prüfen ob Elasticsearch bereits vom Host verfügbar ist.
Dafür öffne ein Terminal und hämmer folgendes rein:
curl 192.168.10.10:9200
Elasticsearch ist verfügbar wenn etwas ähnliches erscheint wie:
{
"name" : "homestead",
"cluster_name" : "homestead",
"cluster_uuid" : "nlZjeu1YQwG7btyF0uEU-A",
"version" : {
"number" : "7.10.1",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date" : "2020-12-05T01:00:33.671820Z",
"build_snapshot" : false,
"lucene_version" : "8.7.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Ist es bereits verfügbar, kannst du zur Installation des Plugins weiterspringen.
Keine Sorge, wenn es noch nicht verfügbar ist.
Elasticsearch macht es uns vergleibar recht einfach ein Cluster im Netzwerk bereitzustellen.
Dafür müssen wir zwei Dinge tun:
- Netzwerkeinstellungen setzen
- Elasticsearch neustarten
Elasticsearch Netzwerkweit bereitstellen
Um Elasticsearch im Netzwerkweit unter der Gast IP anzusprechen:
- Öffne elasticsearch Konfigurationsdatei (
/etc/elasticsearch/elasticsearch.yml
). In virtuellen Umgebungen indem du dich mit dem Gast via SSH verbindest und im Editor deiner Wahl öffnest. - Suche darin nach
network.host
. - Stelle sicher das network.host kommentiert ist. (
#network.host: {...}
). - Paste darunter folgendes Snippet:
network.host: [_local_,_site_]
transport.host: localhost
transport.tcp.port: 9200
- Speichere die Datei.
Elasticsearch Service neustarten
Um den Service neu zu starten, verbinden wir uns mit dem Gast und starten den Service wie gewohnt neu:
sudo /etc/init.d/elasticsearch restart
Nun überprüfe nochmals vom Host den Elastic zugriff.
PHPStorm: Elasticsearch Plugin installieren
Das Elasticsearch Plugin in PHPStorm lässt sich installieren durch:
[strg]
+[shift]
+P
- Suche und wähle
Plugins
.
- Setze den Tab:
Marketplace
.
- Suche nach
Elasticsearch
. - Verifiziere den Autor
Anton Shuvaev
.
- Klicke auf
Install
.
Cluster mit Elasticsearch Plugin verbinden
Sobald das Plugin installiert, erscheint ein neuer Reiter: Elasticsearch.
Verbindungen werden je Cluster eingestellt.
Neue Verbindungen werden durch das + Icon hinzugefügt.
Klicken wir darauf erscheint ein Fenster wo wir unsere Verbindungsdaten eintragen.
Hier fügen wir die IP unseres Gastes ein.
Teste die Verbindung.
Nun erwarten wir ein grünes Häkchen mit Connection test successful
.
Zum Schluss ein Klick auf OK
und BAM wir haben das Cluster in PHPStorm verfügbar und können REST queries direkt über PhpStorm hämmern.
Was bringts eigentlich?
Elasticsearch in der IDE verfügbar bringt zwei Vorteile:
- Durch die Einfachheit, vereinfacht das Plugin den Prozess herauszufinden was in Elastic gespeichert ist. Das spart Zeit.
- Dadurch das wir Anfragen direkt in der IDE senden vereinfacht es den Prozess Anfragen aufzubauen und zu testen. Ergo spart noch mehr Zeit.
Meiner Meinung nach ein muss wenn mit Elastic gearbeitet wird.
Kudos
- Thanks to AntonShuvaev@github for publishing and maintaining the Elasticsearch Plugin.
Schreibe einen Kommentar