Elasticsearch Plugin in PHPStorm aufsetzen

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 Port 9200 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert