[comment]: # translation:outdated

[comment]: # ({db900931-4ff8e217})
# 6 Elasticsearch-configuratie

::: noteimportant
 Elasticsearch-ondersteuning is experimenteel!

:::

Zabbix ondersteunt de opslag van historische gegevens door middel van Elasticsearch
in plaats van een databank. Gebruikers kunnen de opslagplaats voor historisch kiezen
gegevens tussen een compatibele database en Elasticsearch. De opzet
procedure beschreven in deze sectie is van toepassing op Elasticsearch
versie 7.X. In het geval dat een eerdere of latere versie van Elasticsearch is
gebruikt, werken sommige functies mogelijk niet zoals bedoeld.

::: notewarning
 Als alle geschiedenisgegevens zijn opgeslagen in Elasticsearch,
trends worden **niet** berekend en ook niet opgeslagen in de database. Zonder trends
berekend en opgeslagen, moet de opslagperiode voor de geschiedenis mogelijk
verlengd.
:::

[comment]: # ({/db900931-4ff8e217})

[comment]: # ({0b6587bd-0b6587bd})
#### Configuratie

Om een goede communicatie tussen alle betrokken elementen te garanderen, moet u ervoor zorgen dat:
serverconfiguratiebestand en frontend-configuratie bestandsparameters zijn:
goed geconfigureerd.

[comment]: # ({/0b6587bd-0b6587bd})

[comment]: # ({293ef64c-293ef64c})
##### Zabbix-server en frontend

Zabbix-server configuratie bestands concept met parameters die moeten worden bijgewerkt:

    ### Optie: HistoryStorageURL
    # Geschiedenisopslag HTTP[S] URL.
    #
    # Verplicht: nee
    # Standaard:
    # HistoryStorageURL=
    ### Optie: HistoryStorageTypes
    # Door komma's gescheiden lijst met waardetypen die naar de geschiedenisopslag moeten worden verzonden.
    #
    # Verplicht: nee
    # Standaard:
    # HistoryStorageTypes=uint,dbl,str,log,text

Voorbeeld parameter waarden om het Zabbix-server configuratie bestand te vullen
met:

    HistoryStorageURL=http://test.elasticsearch.lan:9200
    HistoryStorageTypes=str,log,tekst

Deze configuratie dwingt Zabbix Server om geschiedeniswaarden van op te slaan
numerieke typen in de bijbehorende database en tekstuele geschiedenisgegevens in
Elastisch zoeken.

Elasticsearch ondersteunt de volgende itemtypen:

    uint,dbl,str,log,tekst

Ondersteund item type uitleg:

| | | |
|---|---|---|
|**Type itemwaarde**|**Databasetabel**|**Elastisch zoektype**|
|Numeriek (niet ondertekend)|geschiedenis\_uint|uint|
|Numeriek (zwevend)|geschiedenis|dbl|
|Karakter|geschiedenis\_str|str|
|Log|geschiedenis\_log|log|
|Tekst|geschiedenis\_text|tekst|

Zabbix frontend configuratiebestand (`conf/zabbix.conf.php`) concept met
parameters die moeten worden bijgewerkt:

    // Elasticsearch-url (kan een tekenreeks zijn als dezelfde url voor alle typen wordt gebruikt).
    $HISTORY['url'] = [
          'uint' => 'http://localhost:9200',
          'tekst' => 'http://localhost:9200'
    ];
    // Waardetypen opgeslagen in Elasticsearch.
    $HISTORY['types'] = ['uint', 'text'];

Voorbeeldparameterwaarden om het Zabbix frontend-configuratiebestand te vullen
met:

    $HISTORY['url'] = 'http://test.elasticsearch.lan:9200';
    $HISTORY['types'] = ['str', 'text', 'log'];

Deze configuratie dwingt om `Text`, `Character` en `Log` history . op te slaan
waarden in Elasticsearch.

Het is ook vereist om $HISTORY globaal te maken in `conf/zabbix.conf.php` naar
zorg ervoor dat alles goed werkt (zie
`conf/zabbix.conf.php.example` voor hoe dit te doen):

    // Zabbix GUI-configuratiebestand.
    globaal $DB, $HISTORY;

[comment]: # ({/293ef64c-293ef64c})

[comment]: # ({e9a9c5bd-e9a9c5bd})
##### Elasticsearch installeren en mapping maken

De laatste twee stappen om dingen te laten werken, zijn het installeren van Elasticsearch
zelf en het creëren van een mappingproces.

Om Elasticsearch te installeren, raadpleeg [Installatie van Elasticsearch
gids](https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html).

::: noteclassic
Mapping is een datastructuur in Elasticsearch (vergelijkbaar met a
tabel in een database). Mapping voor alle geschiedenisgegevenstypen is beschikbaar
hier: `database/elasticsearch/elasticsearch.map`.
:::

::: notewarning
Het maken van mapping is verplicht. Sommige functionaliteit
wordt verbroken als de toewijzing niet wordt gemaakt volgens de
instructie.
:::

Om een toewijzing voor het `tekst`-type te maken, stuurt u het volgende verzoek naar:
Elastisch zoeken:

``` {.java}
krul -X PUT \
 http://your-elasticsearch.here:9200/text \
 -H 'inhoudstype: applicatie/json' \
 -d '{
   "instellingen": {
      "inhoudsopgave": {
         "aantal_replica's": 1,
         "number_of_shards": 5
      }
   },
   "toewijzingen": {
      "eigendommen": {
         "item ID": {
            "type": "lang"
         },
         "klok": {
            "format": "epoch_second",
            "type": "datum"
         },
         "waarde": {
            "velden": {
               "geanalyseerd": {
                  "index": waar,
                  "typ Text",
                  "analysator": "standaard"
               }
            },
            "index": onwaar,
            "typ Text"
         }
      }
   }
}'
```

Een soortgelijk verzoek moet worden uitgevoerd voor `Character` en `Log`
geschiedenis waarden mapping creatie met bijbehorende typecorrectie.

::: noteclassic
Om met Elasticsearch te werken, raadpleeg [Vereiste
pagina](/manual/installation/requirements#server) voor extra
informatie.
:::

::: noteclassic
[Huishoudster](/manual/installation/requirements?s[]=huishoudster)
verwijdert geen gegevens uit Elasticsearch.
:::

[comment]: # ({/e9a9c5bd-e9a9c5bd})

[comment]: # ({8451a0a2-8451a0a2})
#### Historische gegevens opslaan in meerdere op datum gebaseerde indices

In deze sectie worden aanvullende stappen beschreven die nodig zijn om met pijpleidingen te werken
en knooppunten opnemen.

Om te beginnen moet u sjablonen voor indices maken.

In het volgende voorbeeld ziet u een aanvraag voor het maken van een uint-sjabloon:

``` {.java}
krul -X PUT \
 http://your-elasticsearch.here:9200/_template/uint_template \
 -H 'inhoudstype: applicatie/json' \
 -d '{
   "index_patterns": [
      "uint*"
   ],
   "instellingen": {
      "inhoudsopgave": {
         "aantal_replica's": 1,
         "number_of_shards": 5
      }
   },
   "toewijzingen": {
      "eigendommen": {
         "item ID": {
            "type": "lang"
         },
         "klok": {
            "format": "epoch_second",
            "type": "datum"
         },
         "waarde": {
            "type": "lang"
         }
      }
   }
}'
```

Om andere sjablonen te maken, moet de gebruiker de URL wijzigen (laatste deel is de
naam van sjabloon), verander het veld `"index_patterns"` zodat het overeenkomt met de indexnaam
en om geldige toewijzing in te stellen, die kan worden overgenomen van
`database/elasticsearch/elasticsearch.map`.

De volgende opdracht kan bijvoorbeeld worden gebruikt om een sjabloon te maken voor:
tekstindex:

``` {.java}
krul -X PUT \
 http://your-elasticsearch.here:9200/_template/text_template \
 -H 'inhoudstype: applicatie/json' \
 -d '{
   "index_patterns": [
      "tekst*"
   ],
   "instellingen": {
      "inhoudsopgave": {
         "aantal_replica's": 1,
         "number_of_shards": 5
      }
   },
   "toewijzingen": {
      "eigendommen": {
         "item ID": {
            "type": "lang"
         },
         "klok": {
            "format": "epoch_second",
            "type": "datum"
         },
         "waarde": {
            "velden": {
               "geanalyseerd": {
                  "index": waar,
                  "typ Text",
                  "analysator": "standaard"
               }
            },
            "index": onwaar,
            "typ Text"
         }
      }
   }
}'
```

Dit is vereist om Elasticsearch in staat te stellen geldige toewijzing voor indices in te stellen
automatisch aangemaakt. Dan is het nodig om de pijplijn te maken
definitie. Pipeline is een soort voorbewerking van gegevens voordat
gegevens in indexen zetten. De volgende opdracht kan worden gebruikt om te creëren
pijplijn voor uint-index:

``` {.java}
krul -X PUT \
 http://your-elasticsearch.here:9200/_ingest/pipeline/uint-pipeline \
 -H 'inhoudstype: applicatie/json' \
 -d '{
   "description": "dagelijkse uint indexnaamgeving",
   "verwerkers": [
      {
         "datum_index_naam": {
            "veld": "klok",
            "date_formats": [
               "UNIX"
            ],
            "index_name_prefix": "uint-",
            "date_rounding": "d"
         }
      }
   ]
}'
```

De gebruiker kan de afrondingsparameter ("date\_rounding") wijzigen om a . in te stellen
specifieke indexrotatieperiode. Om andere pijplijnen te maken, moet de gebruiker:
verander de URL (laatste deel is de naam van de pijplijn) en verander
veld "index\_name\_prefix" om overeen te komen met de indexnaam.

Zie ook [Elastiek zoeken
documentatie](https://www.elastic.co/guide/en/elasticsearch/reference/master/date-index-name-processor.html).

Bovendien zou het opslaan van geschiedenisgegevens in meerdere op datums gebaseerde indices:
ook worden ingeschakeld in de nieuwe parameter in de Zabbix-serverconfiguratie:

    ### Optie: HistoryStorageDateIndex
    # Schakel voorverwerking van geschiedeniswaarden in geschiedenisopslag in om waarden op te slaan in verschillende indices op basis van datum.
    # 0 - uitschakelen
    # 1 - inschakelen
    #
    # Verplicht: nee
    # Standaard:
    # HistoryStorageDateIndex=0

[comment]: # ({/8451a0a2-8451a0a2})

[comment]: # ({5c4a5e3c-5c4a5e3c})
#### Probleemoplossen

De volgende stappen kunnen u helpen bij het oplossen van problemen met:
Elasticsearch-configuratie:

1. Controleer of de toewijzing correct is (GET-verzoek naar vereiste index-URL
    zoals `http://localhost:9200/uint`).
2. Controleer of de shards niet in de mislukte staat zijn (herstart Elasticsearch
    zou moeten helpen).
3. Controleer de configuratie van Elasticsearch. Configuratie zou moeten toestaan
    toegang vanaf de Zabbix frontend-host en de Zabbix-serverhost.
4. Controleer Elasticsearch-logboeken.

Als u nog steeds problemen ondervindt met uw installatie, dan
maak een bugrapport aan met alle informatie uit deze lijst
(toewijzing, foutenlogboeken, configuratie, versie, enz.)

[comment]: # ({/5c4a5e3c-5c4a5e3c})
