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.
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.
Om een goede communicatie tussen alle betrokken elementen te garanderen, moet u ervoor zorgen dat: serverconfiguratiebestand en frontend-configuratie bestandsparameters zijn: goed geconfigureerd.
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:
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:
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:
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):
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.
Mapping is een datastructuur in Elasticsearch (vergelijkbaar met a tabel in een database). Mapping voor alle geschiedenisgegevenstypen is beschikbaar hier: database/elasticsearch/elasticsearch.map
.
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:
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.
Om met Elasticsearch te werken, raadpleeg Vereiste pagina voor extra informatie.
Huishoudster verwijdert geen gegevens uit Elasticsearch.
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:
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:
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:
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.
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
De volgende stappen kunnen u helpen bij het oplossen van problemen met: Elasticsearch-configuratie:
http://localhost:9200/uint
).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.)