Áú»¢¶Ä²©

Esta es una traducci¨®n de la p¨¢gina de documentaci¨®n original en espa?ol. Ay¨²danos a mejorarla.

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

?El soporte de Elasticsearch es experimental!

Áú»¢¶Ä²© admite el almacenamiento de datos hist¨®ricos mediante Elasticsearch en lugar de una base de datos. Los usuarios pueden elegir el lugar de almacenamiento de datos hist¨®ricos entre una base de datos compatible y Elasticsearch. El procedimiento de puesta en marcha descrito en esta secci¨®n es aplicable a Elasticsearch. versi¨®n 7.X. En caso de que se instale una versi¨®n anterior o posterior de Elasticsearch, es posible que algunas funciones no funcionen seg¨²n lo previsto.

Si todos los datos del historial se almacenan en Elasticsearch, las tendencias no se calculan ni se almacenan en la base de datos. Sin tendencias calculadas y almacenadas, es posible que sea necesario extender el per¨ªodo de almacenamiento del historial.

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

Para garantizar una comunicaci¨®n adecuada entre todos los elementos involucrados, aseg¨²rese de que los par¨¢metros del archivo de configuraci¨®n del servidor y del archivo de configuraci¨®n del frontend est¨¢n configurados correctamente.

Servidor e interfaz Áú»¢¶Ä²©

Borrador del archivo de configuraci¨®n del servidor Áú»¢¶Ä²© con par¨¢metros a actualizar:

### 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

Valores de par¨¢metros de ejemplo para completar el archivo de configuraci¨®n del servidor Áú»¢¶Ä²© con:

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

Esta configuraci¨®n obliga al servidor Áú»¢¶Ä²© a almacenar valores hist¨®ricos de tipos num¨¦ricos en la base de datos correspondiente y datos hist¨®ricos textuales en Elasticsearch.

Elasticsearch admite los siguientes tipos de elementos:

uint,dbl,str,log,text

Explicaci¨®n del tipo de elemento admitido:

Tipo de valor de elemento Tabla de base de datos Tipo de b¨²squeda el¨¢stica
Num¨¦rico (sin firmar) history_uint uint
Num¨¦rico (flotante) history dbl
Personaje history_str str
Registro history_log log
Texto history_text text

Borrador del archivo de configuraci¨®n del frontend de Áú»¢¶Ä²© (conf/zabbix.conf.php) con par¨¢metros a actualizar:

// URL de Elasticsearch (puede ser una cadena si se usa la misma URL para todos los tipos).
       $HISTORY['url']= [
             'uint' => 'http://localhost:9200',
             'text' => 'http://localhost:9200'
       ];
       // Tipos de valores almacenados en Elasticsearch.
       $HISTORY['types'] = ['uint', 'text'];

Valores de par¨¢metros de ejemplo para completar el archivo de configuraci¨®n del frontend de Áú»¢¶Ä²© con:

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

Esta configuraci¨®n obliga a almacenar el historial de los valores tipo Texto, °ä²¹°ù¨¢³¦³Ù±ð°ù y Registro en Elasticsearch.

Tambi¨¦n es necesario hacer que $HISTORY sea global en conf/zabbix.conf.php para aseg¨²rese de que todo funcione correctamente (consulte conf/zabbix.conf.php.example para saber c¨®mo hacerlo):

// Archivo de configuraci¨®n de la GUI de Áú»¢¶Ä²©.
       global $DB, $HISTORY;
Instalaci¨®n de Elasticsearch y creaci¨®n de mapeo

Los dos ¨²ltimos pasos para que todo funcione son instalar Elasticsearch y crear el proceso de mapeo.

Para instalar Elasticsearch, consulte la .

El mapeo es una estructura de datos en Elasticsearch (similar a una tabla en una base de datos). El mapeo para todos los tipos de datos hist¨®ricos est¨¢ disponible aqu¨ª: database/elasticsearch/elasticsearch.map.

La creaci¨®n de un mapeo es obligatoria. Alguna funcionalidad se romper¨¢ si el mapeo no se crea de acuerdo con las instrucciones.

Para crear una asignaci¨®n para el tipo "text", env¨ªe la siguiente solicitud a Elasticsearch:

curl -X PUT \
        http://your-elasticsearch.aqu¨ª:9200/text \
        -H 'tipo-contenido:aplicaci¨®n/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"
                }
             }
          }
       }'

Se requiere ejecutar una solicitud similar para la creaci¨®n de mapeo de valores hist¨®ricos de"°ä²¹°ù¨¢³¦³Ù±ð°ù" y "Registro" con la correcci¨®n de tipo correspondiente.

Para trabajar con Elasticsearch, consulte la p¨¢gina de requisitos para obtener informaci¨®n adicional.

El limpiador interno no eliminar¨¢ ning¨²n dato de Elasticsearch.

Almacenamiento de datos hist¨®ricos en m¨²ltiples ¨ªndices basados en fechas

Esta secci¨®n describe los pasos adicionales necesarios para trabajar con tuber¨ªas y nodos procesadores.

Para empezar, debe crear plantillas para ¨ªndices.

El siguiente ejemplo muestra una solicitud para crear una plantilla uint:

curl -X PUT \
        http://your-elasticsearch.aqu¨ª: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"
                }
             }
          }
       }'

Para crear otras plantillas, el usuario debe cambiar la URL (la ¨²ltima parte es el nombre de la plantilla), cambie el campo "index_patterns" para que coincida con el nombre del ¨ªndice y para establecer un mapeo v¨¢lido, que se puede tomar de database/elasticsearch/elasticsearch.map.

Por ejemplo, el siguiente comando se puede utilizar para crear una plantilla para ¨ªndice de texto:

curl -X PUT \
        http://your-elasticsearch.aqu¨ª: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"
                }
             }
          }
       }'

Esto es necesario para permitir que Elasticsearch establezca una asignaci¨®n v¨¢lida para ¨ªndices creados autom¨¢ticamente. Entonces es necesario crear la definici¨®n de la canalizaci¨®n. La canalizaci¨®n es una especie de preprocesamiento de datos antes de poner datos en ¨ªndices. El siguiente comando se puede utilizar para crear una canalizaci¨®n para el ¨ªndice uint:

curl -X PUT \
        http://your-elasticsearch.here:9200/_ingest/pipeline/uint-pipeline \
        -H 'content-type:application/json' \
        -d '{
          "description": "nombramiento diario del ¨ªndice uint",
          "processors": [
             {
                "date_index_name": {
                   "field": "clock",
                   "date_formats": [
                      "UNIX"
                   ],
                   "index_name_prefix": "uint-",
                   "date_rounding": "d"
                }
             }
          ]
       }'

El usuario puede cambiar el par¨¢metro de redondeo ("date_rounding") para establecer un per¨ªodo de rotaci¨®n del ¨ªndice espec¨ªfico. Para crear otras canalizaciones, el usuario debe cambiar la URL (la ¨²ltima parte es el nombre de la canalizaci¨®n) y cambiar el campo "index_name_prefix" para que coincida con el nombre del ¨ªndice.

V¨¦ase tambi¨¦n la .

Adem¨¢s, almacenar datos hist¨®ricos en m¨²ltiples ¨ªndices basados en fechas debe tambi¨¦n ser habilitado en el nuevo par¨¢metro en la configuraci¨®n del servidor Áú»¢¶Ä²©:

### Opci¨®n: HistoryStorageDateIndex
       # Habilite el preprocesamiento de valores hist¨®ricos en el almacenamiento hist¨®rico para almacenar valores en diferentes ¨ªndices seg¨²n la fecha.
       # 0 - desactivar
       # 1 - habilitar
       #
       # Obligatorio: no
       # Por defecto:
       # HistoryStorageDateIndex=0

Soluci¨®n de problemas

Los siguientes pasos pueden ayudarle a solucionar problemas con la configuraci¨®n de Elasticsearch:

  1. Compruebe si la asignaci¨®n es correcta (OBTENGA la solicitud a la URL de ¨ªndice requerida como http://localhost:9200/uint).
  2. Compruebe si los fragmentos no est¨¢n en estado fallido (reiniciar Elasticsearch deber¨ªa ayudar).
  3. Verifique la configuraci¨®n de Elasticsearch. La configuraci¨®n debe permitir acceso desde el equipo frontend de Áú»¢¶Ä²© y el equipo del servidor Áú»¢¶Ä²©.
  4. Verifique los registros de Elasticsearch.

Si a¨²n tiene problemas con su instalaci¨®n, entonces por favor cree un informe de error con toda la informaci¨®n de esta lista (mapeo, registros de errores, configuraci¨®n, versi¨®n, etc.)