El suport d'Elasticsearch ¨¦s experimental!
Áú»¢¶Ä²© admet l'emmagatzematge de dades hist¨°riques amb mitjanes d'Elasticsearch amb enlla? a una base de dades. Els usuaris poden triar l'enlla? d'emmagatzematge de dades hist¨°riques entre una base de dades compatible i Elasticsearch. El proc¨¦s de configuraci¨® descrit en aquesta secci¨® s'aplica a Elasticsearch v7.X. Si s'empra una versi¨® anterior o posterior, algunes funcions poden no funcionar pas com es desitgi.
1. Si totes les dades d'hist¨°ric s'emmagatzemen a Elasticsearch, les tend¨¨ncies no s¨®n pas calculades ni emmagatzemades a la base de dades. Amb abs¨¨ncia de tend¨¨ncies calculades i emmagatzemades, el per¨ªode d'emmagatzematge de l'hist¨°ric podria perllongar-se.
2. Quan s'empra Elasticsearch, les consultes d'interval que recuperen valors de la base de dades estan limitades per la marca de temps del per¨ªode d'emmagatzematge de dades.
Per assegurar una bona comunicaci¨® entre tots els elements implicats, assegureu-vos que els par¨¤metres de l'arxiu de configuraci¨® del servidor i de l'arxiu de configuraci¨® frontal s¨®n ben configurats.
Esborrany de l'arxiu de configuraci¨® del servidor Áú»¢¶Ä²© amb els par¨¤metres per actualitzar:
### Option: HistoryStorageURL
# History storage HTTP[S] URL.
#
# Mandatory: no
# Default:
# HistoryStorageURL=
### Option: HistoryStorageTypes
# Comma separated list of value types to be sent to the history storage.
#
# Mandatory: no
# Default:
# HistoryStorageTypes=uint,dbl,str,log,text
Exemples de valeurs de param¨¨tres pour remplir le fichier de configuration du serveur Áú»¢¶Ä²© :
Cette configuration force le serveur Áú»¢¶Ä²© ¨¤ stocker les valeurs d'historique de types num¨¦riques dans la base de donn¨¦es correspondante et les donn¨¦es d'historique textuelles dans Elasticsearch.
Elasticsearch prend en charge les types d'¨¦l¨¦ments suivants :
Detall del tipus d'element suportat:
Tipus de valor de l'element | Taula de base de dades | Tipus Elasticsearch |
Num¨¨ric (nno signat) | history_uint | uint |
Num¨¨ric (flotant) | history | dbl |
°ä²¹°ù¨¤³¦³Ù±ð°ù | history_str | str |
Journal | history_log | log |
Text | history_text | text |
Projecte d'arxiu de configuraci¨® de la interf¨ªcie (conf/zabbix.conf.php
) amb els par¨¤metres per actualitzar:
// Elasticsearch url (can be string if same url is used for all types).
$HISTORY['url'] = [
'uint' => 'http://localhost:9200',
'text' => 'http://localhost:9200'
];
// Value types stored in Elasticsearch.
$HISTORY['types'] = ['uint', 'text'];
Exemples de valors de par¨¤metres per omplir l'arxiu de configuraci¨® de la interf¨ªcie Áú»¢¶Ä²©:
Aquesta configuraci¨® obliga a emmagatzemar els valors d'hist¨°ric Text
, °ä²¹°ù¨¤³¦³Ù±ð°ù
iJournal
dins d'Elasticsearch.
Tamb¨¦ ¨¦s necessari establir $HISTORY global a conf/zabbix.conf.php
, per assegurar que tot funciona correctament (veieuconf/zabbix.conf.php.example
per sapiguer com procedir):
Les dues darreres etapes per fer funcionar les coses consisteix en instal¡¤lar Elasticsearch i crear un proc¨¦s de mapatge.
Perr instal¡¤lar Elasticsearch, fixeu-vos en la .
El mapatge ¨¦s una estructura de dades dins d'Elasticsearch (semblant a una taula dins una base de dades). El mapatge de tots els tipus de dades d'hist¨°ric ¨¦s disponible aqu¨ª: database/elasticsearch/elasticsearch.map
.
La creaci¨® del mapatge ¨¦s obligat¨°ria. Algunes funcionalitats s'interrompran si el mapatge no ¨¦s pas creat conforme a les instruccions
Per crear un mapatge per al tipus text
, envieu la petici¨® seg¨¹ent a Elasticsearch:
curl -X PUT \
http://your-elasticsearch.here:9200/text \
-H 'content-type:application/json' \
-d '{
"settings": {
"index": {
"number_of_replicas": 1,
"number_of_shards": 5
}
},
"mappings": {
"properties": {
"itemid": {
"type": "long"
},
"clock": {
"format": "epoch_second",
"type": "date"
},
"value": {
"fields": {
"analyzed": {
"index": true,
"type": "text",
"analyzer": "standard"
}
},
"index": false,
"type": "text"
}
}
}
}'
Una petici¨® similar s'ha d'executar per la creaci¨® del mapatge dels valors d'hist¨°ric Character
iLog
amb la correcci¨® de tipus corresponent.
Per treballar amb Elasticsearch, consulteu la p¨¤gina de requisits per tindre m¨¦s informaci¨®.
La neteja no esborra pas cap dada d'Elasticsearch.
Aquesta secci¨® descriu les etapes addicionals necess¨¤ries per treballar amb pipelines i ingerir nodes.
Per comen?er, heu de creear els models per l'¨ªndex.
L'exemple seg¨¹ent mostra una petici¨® de creaci¨® de model uint:
curl -X PUT \
http://your-elasticsearch.here:9200/_template/uint_template \
-H 'content-type:application/json' \
-d '{
"index_patterns": [
"uint*"
],
"settings": {
"index": {
"number_of_replicas": 1,
"number_of_shards": 5
}
},
"mappings": {
"properties": {
"itemid": {
"type": "long"
},
"clock": {
"format": "epoch_second",
"type": "date"
},
"value": {
"type": "long"
}
}
}
}'
Per crear altres models, l'usuari ha de modificar l'URL (la darrera part ¨¦s el nom del model), modificar el camp "index_patterns"
per tal que es correspongui amb el nom de l'¨ªndex i per definir un mapatge v¨¤lid, que es pugui extreure de database/elasticsearch/elasticsearch.map
.
Per exemple, la comanda seg¨¹ent es pot emprar per crear un model per l'¨ªndex de text:
curl -X PUT \
http://your-elasticsearch.here:9200/_template/text_template \
-H 'content-type:application/json' \
-d '{
"index_patterns": [
"text*"
],
"settings": {
"index": {
"number_of_replicas": 1,
"number_of_shards": 5
}
},
"mappings": {
"properties": {
"itemid": {
"type": "long"
},
"clock": {
"format": "epoch_second",
"type": "date"
},
"value": {
"fields": {
"analyzed": {
"index": true,
"type": "text",
"analyzer": "standard"
}
},
"index": false,
"type": "text"
}
}
}
}'
Aix¨° ¨¦s necessari per permetre que Elasticsearch defineixi un mapatge v¨¤lid per els ¨ªndexs creats autom¨¤ticament. Despr¨¦s, cal crear la definici¨® de la pipeline. La pipeline ¨¦s una sortida de pretractament de les dades abans de posar les dades als ¨ªndexs. La comanda seg¨¹ent es pot emprar per crear una pipeline per l'¨ªndex uint:
curl -X PUT \
http://your-elasticsearch.here:9200/_ingest/pipeline/uint-pipeline \
-H 'content-type:application/json' \
-d '{
"description": "daily uint index naming",
"processors": [
{
"date_index_name": {
"field": "clock",
"date_formats": [
"UNIX"
],
"index_name_prefix": "uint-",
"date_rounding": "d"
}
}
]
}'
L'usuari pot modificar el par¨¤metre d'arrodonir ("date_arrondi") per definir un per¨ªode de rotaci¨® espec¨ªfic de l'¨ªndex. Per crear altres pipelines, l'usuari ha de canviar l'URL (la darrera part ¨¦s el nom de la pipeline) i canviar el camp "index_name_prefix" per fer que es correspongui amb el nom de l'¨ªndex.
Veieu tamb¨¦ la .
A m¨¦s, l'emmagatzematge de dades d'hist¨°ric a diversos ¨ªndexs basats en la data s'ha d'activar igualment al nou par¨¤metre de la configuraci¨® del servidor Áú»¢¶Ä²©:
### Option: HistoryStorageDateIndex
# Enable preprocessing of history values in history storage to store values in different indices based on date.
# 0 - disable
# 1 - enable
#
# Mandatory: no
# Default:
# HistoryStorageDateIndex=0
Les seg¨¹ents etapes us poden ajudar a resoldre els problemes vinculats a la configuraci¨® d'Elasticsearch:
http://localhost:9200/uint
).LogSlowQueries
es pot emprar per comprovar si hi ha consultes lentes a la base de dades d'Elasticsearch.Si seguiu trobant problemes amb la vostra instal¡¤laci¨®, mireu de crear un informe d'errors amb tota la informaci¨® d'aquesta llista (mapatge, informe d'errors, configuraci¨®, versi¨®, etc.)