# Elastic Search einrichten

**URL:** <https://forum.shopware.com/t/elastic-search-einrichten/95437>\
**Category:** Shopware 6 (German)\
**Created:** [25. Juli 2022 um 08:24 UTC](https://forum.shopware.com/t/elastic-search-einrichten/95437 "2022-07-25T08:24:17Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ProjektEM](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@ProjektEM](https://forum.shopware.com/u/ProjektEM)\
**Post date:** [25. Juli 2022 um 08:24 UTC](https://forum.shopware.com/t/elastic-search-einrichten/95437/1 "2022-07-25T08:24:17Z")

</div>

Hallo,

irgendwie komme ich mit der Verbindung von ES und Shop nicht weiter. Ziel ist, das für einen Testshop (Community-Edition SW6) einzurichten, erstmal auf dem gleichen Webserver wie der Shop.

Ich habe mich daran orientiert: [Add and remove nodes in your cluster | Elasticsearch Guide [8.3] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/add-elasticsearch-nodes.html)

Außerdem an: [Set up Elasticsearch - Shopware Developer](https://developer.shopware.com/docs/guides/hosting/infrastructure/infrastructure/elasticsearch-setup)

Bevor ich, wie von Shopware vorgeschlagen, einen 3- oder 5-Node-Cluster anlege, müsste ja zunächst einmal ein einzelner Node funktionieren. Wie in der Doku von ES geschrieben, müsste beim Start von ES automatisch ein Node dem Cluster zugewiesen werden.

Bisher gemacht:  
**Bearbeiten der ES.Konfiguration:** vi /etc/elasticsearch/elasticsearch.yml

```auto
`cluster.name: cluster1` (hat nicht geholfen, wieder auskommentiert)
`node.name: node1` (hat nicht geholfen, wieder auskommentiert)

```

**httpdocs/meinedomain.de/.env bearbeitet:**

```auto
SHOPWARE_ES_HOSTS="localhost:9200"
SHOPWARE_ES_ENABLED="1"
SHOPWARE_ES_INDEXING_ENABLED="1"
SHOPWARE_ES_INDEX_PREFIX="sw"
SHOPWARE_ES_THROW_EXCEPTION=1

```

**/httpdocs/meinedomain.de/config/packages/elasticsearch.yaml bearbeitet**

```auto
elasticsearch:
  index_settings:
    number_of_shards: 1
    number_of_replicas: 0

```

**Neustarten von ES.:** `systemctl restart elasticsearch`

**Prüfen obs läuft:** `systemctl status elasticsearch.service` – ok, läuft

 ![pic_es-running](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/8/6/86269c179a7f52aa080bda9b7bc95208638de6a3.png)

**ausgeführt: `php -v`** gibt aus es ist php7.4 (ok)

**ausgeführt: `composer require shopware/elasticsearch`** (Ergebnis: Successfully copied all bundle files

**ausgeführt: `composer update`** (Ergebnis: Shopware Update von 6.4.12 \> 6.4.13, inkl. ES-Komponente  
 ![pic-sw-update](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/5/c/5c3966e35763ba4f9863d55fd120473ae1cb6fa9.png)

**Ausführen des Shop-Cache-Clear** (ok)  
 ![pic_cache-clear](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/2/e/2ef672d2e3e850c32cfa011ab410c73c24d03567.png)

**Ausführen `bin/console es:status` bzw. `bin/console es:status` über den Shop** (Ergebnis: no alive nodes)  
 ![pic_es-status-no-alive-nodes](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/c/0/c01ca7310c2c7b4de38d8de136ea93a139ab56a9.png)

Wenn ich aus der Konsole ein einfaches CURL zum ES folgendes aufrufe, bekomme ich nur eine leere Antwort:  
 ![pic_empty-reply](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/9/1/91ccda9d77d9f040e352948b6bbc68e0c0725135.png)

Bei folgendem CURL-Aufruf bekomme ich jedoch eine Antwort von ES:

 ![pic_curl-k](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/2/e/2e67800a7109afd9bae55cb2564824760a9cee3c.png)

Wie bekomme ich alive nodes in den Shop? Müssen wir evtl. auf dem Server ein SSL-Zertifikat hinterlegen und in der Konfiguration den Host / User / Passwort / https:// angeben oder noch irgendwas anderes anpassen, damit es funktioniert?

Der Hoster konnte bisher leider noch nicht wirklich helfen außer ES auf dem managed Server einzurichten und hat in der bisherigen Kommunikation nix zur Konfiguration bemängelt.

Wäre super, wenn ihr einen zündenden Wink mit dem Zaunpfahl oder ähnliches für mich habt!

---

<div class="post-metadata">

**Author:** ![ProjektEM](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@ProjektEM](https://forum.shopware.com/u/ProjektEM)\
**Post date:** [26. Juli 2022 um 09:22 UTC](https://forum.shopware.com/t/elastic-search-einrichten/95437/2 "2022-07-26T09:22:28Z")

</div>

Ok,wir haben jetzt sowohl https als auch die Authentifizierung von ES in der /etc/elasticsearch/elasticsearch.yml deaktiviert, nun kann die Verbindung aufgebaut werden. Ab Elasticsearch 8 ist wohl die Authentifizierung standardmäßig aktiviert.

ich habe nirgendwo eine Info gefunden, wie Shopware mit der Authentifizierung von ElasticSearch umgeht (user+password sowie aufruf über https). Gibt es ein Möglichkeit die Credentials in der Shopwarekoniguration zu hinterlegen oder muss ich in der ES.-Konfiguration ‚xpack.security.enabled‘ zwingend auf ‚false‘ stellen?

---

<div class="post-metadata">

**Author:** ![DanielR1](https://avatars.discourse-cdn.com/v4/letter/d/54ee81/32.png) [@DanielR1](https://forum.shopware.com/u/DanielR1)\
**Post date:** [18. Juli 2023 um 15:19 UTC](https://forum.shopware.com/t/elastic-search-einrichten/95437/3 "2023-07-18T15:19:07Z")

</div>

Das gleiche würde mich tatsächlich auch Interessieren. Ich habe einen Opensearch Server korrekt am laufen inkl. SSL-Zertifikat. Über einen Browser funktioniert der Aufruf ohne Fehler. Aber mit Shopware kommt nur deine Fehlermeldung.

Ein zweiter Opensearch Server bei welchem HTTPS deaktiviert ist funktioniert mit Shopware.

---

<div class="post-metadata">

**Author:** ![DanielR1](https://avatars.discourse-cdn.com/v4/letter/d/54ee81/32.png) [@DanielR1](https://forum.shopware.com/u/DanielR1)\
**Post date:** [18. Juli 2023 um 18:31 UTC](https://forum.shopware.com/t/elastic-search-einrichten/95437/4 "2023-07-18T18:31:14Z")

</div>

Okay, Fehler gefunden. cUrl schmeißt einen Fehler weil nicht die komplette Zertifikatskette mitgeschickt wurde. Ich hab jetzt die fullchain.pem (Lets Encrypt Zertifikat) sowohl bei

```auto
plugins.security.ssl.transport.pemcert_filepath

```

als auch bei

```auto
plugins.security.ssl.transport.pemtrustedcas_filepath

```

hinterlegt. Damit funktioniert es.

Authentifizierung wird wie normal bei urls vorangestellt. Also im Format

```auto
https://username:password@domain.tdl:9200

```

Das Tool hier hat mir beim Check der Zertifikatskette geholfen:

> **[SSL Checker](https://www.sslshopper.com/ssl-checker.html)**
>
> Use our fast SSL Checker will help you troubleshoot common SSL Certificate installation problems on your server including verifying that the correct certificate is installed, valid, and properly trusted.
