Looking for elasticsearch Answers? Try Ask4KnowledgeBase
Looking for elasticsearch Keywords? Try Ask4Keywords

ElasticsearchElasticsearch-configuratie


Opmerkingen

Elasticsearch wordt geleverd met een aantal standaardinstellingen die een goede out-of-the-box-ervaring bieden voor ontwikkeling. De impliciete verklaring daar is dat het niet noodzakelijkerwijs geweldig is voor productie, die moet worden afgestemd op uw eigen behoeften en daarom niet kan worden voorspeld.

De standaardinstellingen maken het gemakkelijk om meerdere knooppunten op dezelfde machine te downloaden en uit te voeren zonder configuratiewijzigingen.

Waar zijn de instellingen?

Binnen elke installatie van Elasticsearch bevindt zich een config/elasticsearch.yml . Daar leven de volgende instellingen :

  • cluster.name
    • De naam van de cluster waaraan het knooppunt deelneemt. Alle knooppunten in hetzelfde cluster moeten dezelfde naam hebben.
    • Momenteel standaard ingesteld op elasticsearch .
  • node.*
    • node.name
      • Indien niet opgegeven, wordt elke keer dat het knooppunt start een willekeurige naam gegenereerd. Dit kan leuk zijn, maar het is niet goed voor productieomgevingen.
      • Namen hoeven niet uniek te zijn, maar ze moeten wel uniek zijn.
    • node.master
      • Een Booleaanse setting. Als dit true , betekent dit dat het knooppunt een in aanmerking komend meesterknooppunt is en dat dit het gekozen meesterknooppunt kan zijn.
      • Standaard staat true , wat betekent dat elk knooppunt een in aanmerking komend hoofdknooppunt is.
    • node.data
      • Een Booleaanse setting. Als het true , betekent dit dat het knooppunt gegevens opslaat en zoekactiviteiten afhandelt.
      • Standaard ingesteld op true .
  • path.*
    • path.data
      • De locatie waar bestanden worden geschreven voor het knooppunt. Alle knooppunten gebruiken deze map om metagegevens op te slaan, maar gegevensknooppunten gebruiken deze ook om documenten op te slaan / te indexeren.
      • Standaard ingesteld op ./data .
        • Dit betekent dat data u worden aangemaakt als een peer-directory om te config binnen de Elasticsearch-directory.
    • path.logs
      • De locatie waar logbestanden worden geschreven.
      • Standaard ingesteld op ./logs .
  • network.*
    • network.host

      • Standaard ingesteld op _local_ , wat in feite localhost .
        • Dit betekent dat standaard niet kan worden gecommuniceerd met knopen van buiten de huidige machine!
    • network.bind_host

      • Mogelijk een array, dit vertelt Elasticsearch welke adressen van de huidige machine ook sockets binden.
        • Het is deze lijst waarmee machines van buiten de machine (bijvoorbeeld andere knooppunten in het cluster) met dit knooppunt kunnen praten.
      • Standaard ingesteld op network.host .
    • network.publish_host

      • Een enkele host die wordt gebruikt om aan andere knooppunten te adverteren hoe deze het beste met dit knooppunt kan communiceren.
        • Als leveren van een array network.bind_host zou dit het host die bestemd is om te worden gebruikt voor inter-knooppunt communicatie.
      • Standaard ingesteld op network.host`.
  • discovery.zen.*
    • discovery.zen.minimum_master_nodes
      • Definieert quorum voor masterverkiezingen. Dit moet worden ingesteld met behulp van deze vergelijking: (M / 2) + 1 waarbij M het aantal in aanmerking komende node.master: true (knooppunten die node.master: true impliciet of expliciet waar).
      • Standaard ingesteld op 1 , die alleen geldig is voor een enkel knooppuntcluster!
    • discovery.zen.ping.unicast.hosts
      • Het mechanisme voor het samenvoegen van dit knooppunt met de rest van een cluster.
      • Dit moet in aanmerking komende hoofdknooppunten vermelden, zodat een knooppunt de rest van het cluster kan vinden.
      • De waarde die hier moet worden gebruikt, is de network.publish_host van die andere knooppunten.
      • Standaard ingesteld op localhost , wat betekent dat het alleen op de lokale computer naar een cluster zoekt om toe te treden.

Welk type instellingen bestaan er?

Elasticsearch biedt drie verschillende soorten instellingen:

  • Clusterbrede instellingen
    • Dit zijn instellingen die van toepassing zijn op alles in het cluster, zoals alle knooppunten of alle indices.
  • Knooppuntinstellingen
    • Dit zijn instellingen die alleen van toepassing zijn op het huidige knooppunt.
  • Index instellingen
    • Dit zijn instellingen die alleen van toepassing zijn op de index.

Afhankelijk van de instelling kan dit zijn:

  • Dynamisch veranderd tijdens runtime
  • Gewijzigd na een herstart (sluiten / openen) van de index
    • Sommige instellingen op indexniveau vereisen niet dat de index wordt gesloten en opnieuw wordt geopend, maar mogelijk moet de index opnieuw worden samengevoegd om de instelling toe te passen.
      • Het compressieniveau van een index is een voorbeeld van dit type instelling. Het kan dynamisch worden gewijzigd, maar alleen nieuwe segmenten profiteren van de wijziging. Dus als een index niet verandert, profiteert deze nooit van de wijziging, tenzij u de index dwingt om zijn segmenten opnieuw te maken.
  • Gewijzigd na een herstart van het knooppunt
  • Veranderd na een herstart van het cluster
  • Nooit veranderd

Raadpleeg altijd de documentatie voor uw versie van Elasticsearch voor wat u wel of niet kunt doen met een instelling.

Hoe kan ik instellingen toepassen?

U kunt op verschillende manieren instellingen instellen, waarvan sommige niet worden voorgesteld:

  • Opdrachtregelargumenten

In Elasticsearch 1.x en 2.x kunt u de meeste instellingen indienen als Java-systeemeigenschappen voorafgegaan door es. :

$ bin/elasticsearch -Des.cluster.name=my_cluster -Des.node.name=`hostname`

In Elasticsearch 5.x verandert dit om te voorkomen dat Java-systeemeigenschappen worden gebruikt, in plaats daarvan een aangepast argumenttype waarbij -E de plaats van -Des. :

$ bin/elasticsearch -Ecluster.name=my_cluster -Enode.name=`hostname`

Deze benadering voor het toepassen van instellingen werkt geweldig wanneer u tools zoals Puppet, Chef of Ansible gebruikt om het cluster te starten en te stoppen. Het werkt echter heel slecht wanneer het handmatig wordt gedaan.

  • YAML-instellingen
    • In voorbeelden weergegeven
  • Dynamische instellingen
    • In voorbeelden weergegeven

De volgorde waarin instellingen worden toegepast, is in de volgorde van meest dynamische:

  1. Tijdelijke instellingen
  2. Persistente instellingen
  3. Opdrachtregelinstellingen
  4. YAML (statische) instellingen

Als de instelling twee keer wordt ingesteld, eenmaal op een van die niveaus, wordt het hoogste niveau van kracht.

Elasticsearch-configuratie Gerelateerde voorbeelden