# Mejorar rendimiento visualización Kibana

**URL:** <https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453>\
**Category:** Elastic en Español\
**Created:** [January 29, 2018, 12:31pm UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453 "2018-01-29T12:31:18Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![davidsoler95](https://avatars.discourse-cdn.com/v4/letter/d/919ad9/32.png) [@davidsoler95](https://discuss.elastic.co/u/davidsoler95)\
**Post date:** [January 29, 2018, 12:31pm UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453/1 "2018-01-29T12:31:18Z")

</div>

Hola,

Estamos usando el **stack 5.6.6** Kibana+ElasticSearch+Filebeat (no podemos subir la versión porque las máquinas son de 32 bits) para representar trazas de log con Kibana.

El rendimiento ha sido el adecuado hasta que hemos cargado un gran número de trazas, en concreto 41.000.000 de líneas para unos 15 días de datos, y pretendemos cargar varios meses o años. El problema lo tenemos con la visualización de datos de un mes o incluso de un día, llegando a un TimeOut en Kibana y no se representan los datos, y cuando lo hace, lo hace muy lentamente...

¿Qué soluciones podemos adoptar para mejorar el tiempo de carga de la visualización? Si añadimos a las trazas un campo ID\_TRAZA que identificara unicamente cada traza... ¿se podría crear un ÍNDICE sobre este campo para agilizar la búsqueda?

**ElasticSearch** y **Kibana** no tienen cambios relevantes en la configuración, prácticamente por defecto.

El ajuste de JVM

```
-Xmx1G -Xms1G

```

Ajustes **`filebeat.yml`**

```
#=========================== Filebeat prospectors =============================
filebeat.prospectors:
- input_type: log
  paths:
    - C:\sac4\elastic5.6.6\logs\*json

  ### JSON configuration
  json.message_key: message
  json.keys_under_root: true
  json.overwrite_keys: true
  #json.add_error_key: false

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["localhost:9200"]
  #workers: 6
  bulk_max_size: 8192

```

Mensaje apareciendo constantemente en ElasticSearch

```
[INFO] [o.e.m.j.JvmGcMonitorService] [qFb0Q93] [gc][7229] overhead, spent [555ms] collecting in the last [1.2s]

```

Muchas gracias por la ayuda 🙂

---

<div class="post-metadata">

**Author:** ![gmoskovicz](https://avatars.discourse-cdn.com/v4/letter/g/ecae2f/32.png) [@gmoskovicz](https://discuss.elastic.co/u/gmoskovicz)\
**Post date:** [January 29, 2018, 12:58pm UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453/2 "2018-01-29T12:58:07Z")

</div>

Hola @davidsoler95,

Gracias por incluir todas estas informaciones.

Sin tener mucho un panorama del cluster de Elasticsearch, se me da que el nodo (entiendo que solo tienes un nodo) se esta quedando sin memoria suficiente para la cantidad de datos que precisas. Para tener una referencia, te puedo decir que un nodo master-data para un uso correcto precisaría algo así como al menos 8GB de Heap (16GB de RAM en la maquina) y dedicada unicamente para Elasticsearch.

Yo comenzaría por esto, ya que seguramente sea la única razón por lo que esto no esta funcionando correctamente.

Saludos!

--Gabriel

---

<div class="post-metadata">

**Author:** ![davidsoler95](https://avatars.discourse-cdn.com/v4/letter/d/919ad9/32.png) [@davidsoler95](https://discuss.elastic.co/u/davidsoler95)\
**Post date:** [January 29, 2018, 3:38pm UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453/3 "2018-01-29T15:38:26Z")

</div>

Gracias Gabriel, tenemos un dispositivo con solo 4GB de RAM, es una de las limitaciones actuales ya que estamos en un entorno "DEMO", pero trataremos de mejorar esta situación.

Por otro lado, si no indexamos ciertos campos que nunca vamos a utilizar creo que también podemos mejorar el rendimiento, ¿cómo se indica que no se quieren indexar ciertos campo?

---

<div class="post-metadata">

**Author:** ![gmoskovicz](https://avatars.discourse-cdn.com/v4/letter/g/ecae2f/32.png) [@gmoskovicz](https://discuss.elastic.co/u/gmoskovicz)\
**Post date:** [January 29, 2018, 8:04pm UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453/4 "2018-01-29T20:04:37Z")

</div>

Hola David,

Si se pueden dejar de indexar con la siguiente opcion: [https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-index.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-index.html)

Sino, tambien puedes utilizar `dynamic: false` para no indexar campos aparte, y crear el indice de antemano: [https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic.html).

En cuanto a la memoria, si tienes 4GB entonces por lo menos intenta ponerle un 50% a 2GB.

Saludos,

--Gabriel

---

<div class="post-metadata">

**Author:** ![davidsoler95](https://avatars.discourse-cdn.com/v4/letter/d/919ad9/32.png) [@davidsoler95](https://discuss.elastic.co/u/davidsoler95)\
**Post date:** [January 30, 2018, 4:51pm UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453/5 "2018-01-30T16:51:28Z")

</div>

Hola,

De nuevo, cosas que un novato no tiene del todo claras...  
Para poder NO indexar un campo necesito hacer un mapping manual, ¿cierto? Y para ello necesito usar `dynamic: false` ¿correcto?

He extraido de Kibana mi mapping actual (hecho de forma dinámica) y he hecho algunos cambios, queda una cosa parecida a lo que se puede ver más abajo (he recortado la parte inferior por no ser necesaria)

He añadido `dynamic: false` al mapping`_default_` e `index: false` en aquellos campos que no quiero indexar. Ahora... ¿qué hago con esto? ¿Dónde debo introducirlo?

Por otro lado, ¿qué pasa con los datos que ya están cargados en Elastic Search y representados en Kibana? ¿Debo regenerar los índices?

Gracias

```
{
  "order": 0,
  "template": "filebeat-*",
  "settings": {
    "index": {
      "mapping": {
        "total_fields": {
          "limit": "10000"
        }
      },
      "refresh_interval": "5s"
    }
  },
  "mappings": {
    "_default_": {
    	"dynamic": false,
      "_meta": {
        "version": "5.6.6"
      },
      "date_detection": false,
      "dynamic_templates": [
        {
          "strings_as_keyword": {
            "mapping": {
              "ignore_above": 1024,
              "type": "keyword"
            },
            "match_mapping_type": "string"
          }
        }
      ],
      "properties": {
        "@timestamp": {
          "type": "date"
        },
        "EMP": {
            
            "type": "keyword",
            "ignore_above": 1024
          },
          "FNT": {
            "index": false,
            "type": "keyword",
            "ignore_above": 1024
          },
          "ID1": {
            "type": "long"
          },
          "ID2": {
            "type": "long"
          },
          "ID3": {
            "type": "long"
          },
          "INST": {
            "index": false,
            "type": "keyword",
            "ignore_above": 1024
          },
          "LIN": {
            "index": false,
            "type": "long"
          },
          "MOD": {
            "type": "keyword",
            "ignore_above": 1024
          },
          "MSG": {
            "index": false,
            "type": "keyword",
            "ignore_above": 1024
          },
          "MSG_ID": {
            "type": "keyword",
            "ignore_above": 1024

          },
          "STR1": {
            "type": "keyword",
            "ignore_above": 1024
          },
          "STR2": {
            "type": "keyword",
            "ignore_above": 1024
          },
          "STR3": {
            "type": "keyword",
            "ignore_above": 1024
          },
          "TIPO": {
            "type": "keyword",
            "ignore_above": 1024
          }, 

```

Gracias de nuevo!

---

<div class="post-metadata">

**Author:** ![gmoskovicz](https://avatars.discourse-cdn.com/v4/letter/g/ecae2f/32.png) [@gmoskovicz](https://discuss.elastic.co/u/gmoskovicz)\
**Post date:** [January 30, 2018, 6:30pm UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453/6 "2018-01-30T18:30:52Z")

</div>

Hola David,

Te respondo entre lineas!

> [@davidsoler95](#):
>
> Para poder NO indexar un campo necesito hacer un mapping manual, ¿cierto? Y para ello necesito usar dynamic: false ¿correcto?

Exactamente, es una de las opciones. A mi criterio es la mejor.

> [@davidsoler95](#):
>
> He añadido dynamic: false al mapping\_default\_ e index: false en aquellos campos que no quiero indexar. Ahora... ¿qué hago con esto? ¿Dónde debo introducirlo?

Esto tienes que ponerlo en un index template. Sobre-escribir el template filebeat (puedes tomar los templates existentes con `GET _templates`. Y alli encontrar en nombre del template que quieres reemplazar (sobreescribir).

> [@davidsoler95](#):
>
> Por otro lado, ¿qué pasa con los datos que ya están cargados en Elastic Search y representados en Kibana? ¿Debo regenerar los índices?

Si, toda la información que ya fue guardada no puede ser modificada. Tienes que recrear la información.

Saludos,  
--Gabriel

---

<div class="post-metadata">

**Author:** ![davidsoler95](https://avatars.discourse-cdn.com/v4/letter/d/919ad9/32.png) [@davidsoler95](https://discuss.elastic.co/u/davidsoler95)\
**Post date:** [January 31, 2018, 10:32am UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453/7 "2018-01-31T10:32:01Z")

</div>

Muchísimas gracias, Gabriel.

Haciendo un `GET _template` puedo ver que el template que he modificado manualmente, el que se puede ver en mi primer mensaje con las opciones de `dynamic: false` entre otros. ¿Eso significa que el template ya está bien cargado?

Sin embargo, en Management \> Index Pattern todos los campos son _searchable_ y _aggregatable_ y, sino me equivoco un campo no indexado no debería ser _searchable_ ¿no?

Los siguientes pasos serían eliminar los datos, eliminar el índice y crearlo de nuevo, ¿cierto? ¿Debo modificar el archivo de la carpeta filebeat `filebeat.template.json`?

Gracias de nuevo!

---

<div class="post-metadata">

**Author:** ![gmoskovicz](https://avatars.discourse-cdn.com/v4/letter/g/ecae2f/32.png) [@gmoskovicz](https://discuss.elastic.co/u/gmoskovicz)\
**Post date:** [January 31, 2018, 12:09pm UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453/8 "2018-01-31T12:09:04Z")

</div>

Hola David,

Tienes que reindexar o recrear los indices. Y luego de esto, vas a Management -\> Index Pattern y tocas en el boton "Refresh Pattern" para refrescar el mapping desde Kibana y que vea los cambios que tu hiciste.

Saludos!  
--Gabriel

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [February 28, 2018, 12:09pm UTC](https://discuss.elastic.co/t/mejorar-rendimiento-visualizacion-kibana/117453/9 "2018-02-28T12:09:33Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
