Áú»¢¶Ä²©

7 °ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨® d'Elasticsearch

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.

Servidor i interf¨ªcie Áú»¢¶Ä²©

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 Áú»¢¶Ä²© :

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

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 :

uint,dbl,str,log,text

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 Áú»¢¶Ä²©:

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

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):

// Áú»¢¶Ä²© GUI configuration file.
       global $DB, $HISTORY;
Instal¡¤laci¨® d'Elasticsearch i creaci¨® del mapatge

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.

Emmagatzematge de les dades d'hist¨°ric a diversos ¨ªndexs basats en dades

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

Problemes

Les seg¨¹ents etapes us poden ajudar a resoldre els problemes vinculats a la configuraci¨® d'Elasticsearch:

  1. Verifiqueu si el mapatge ¨¦s correcte (petici¨® GET a l'URL d'¨ªndex consultat com a http://localhost:9200/uint).
  2. Verifiqueu si els fragments no s¨®n pas en estat fallit (el reinici d'Elasticsearch hauria d'ajudar).
  3. Verifiqueu la configuraci¨® d'Elasticsearch. La configuraci¨® ha de permetre l'acc¨¦s despr¨¦s de l'equip frontal Áú»¢¶Ä²© i l'equip del servidor Áú»¢¶Ä²©.
  4. Verifiqueu els registres d'Elasticsearch.
  5. 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.)