通过 kibana 控制台的 Elasticsearch 查询响应缓慢

Elasticsearch query slow response via kibana console

服务器后台:3节点elasticsearch集群+kibana+logstash运行ning在docker环境中。主机服务器 运行s rhel7.7(2cpu,8GB RAM + 200GB 文件共享)。

版本

## Cluster health status
{
  "cluster_name" : "es-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 116,
  "active_shards" : 232,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

## Node status
172.20.1.3 60 91 13 0.98 1.30 1.45 dilm - elasticsearch2
172.20.1.4 57 91 13 0.98 1.30 1.45 dilm - elasticsearch3
172.20.1.2 61 91 14 0.98 1.30 1.45 dilm * elasticsearch

## Host server TOP output
top - 11:37:10 up 11 days, 22:30,  3 users,  load average: 0.74, 1.29, 1.47                                    
Tasks: 210 total,   1 running, 209 sleeping,   0 stopped,   0 zombie                                           
%Cpu(s):  4.4 us,  0.8 sy,  0.0 ni, 94.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st                                
KiB Mem :  7999840 total,   712736 free,  5842300 used,  1444804 buff/cache                                    
KiB Swap:  3071996 total,  2794496 free,   277500 used.  1669472 avail Mem                                     

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                    
48491 vtha837   20   0 4003724 713564  23880 S   5.0  8.9   1:57.53 java                                       
59023 vtha837   20   0 6796456   1.5g 172556 S   2.7 20.3  28:18.07 java                                       
59006 vtha837   20   0 6827100   1.5g 176840 S   1.7 19.9  30:03.59 java                                       
  760 vtha837   20   0 6877220   1.5g 180752 S   0.7 19.9  24:37.88 java                           
59610 vtha837   20   0 1663436 258152   7336 S   0.3  3.2  16:51.84 node         

## Kibana environment variables I used for kibana docker image
    environment:
      SERVER_NAME: "kibana"
      SERVER_PORT: 9548
      ELASTICSEARCH_PASSWORD: ${ES_PASSWORD}
      ELASTICSEARCH_HOSTS: "http://elasticsearch:9550"
      KIBANA_DEFAULTAPPID: "dashboard/Default"
      LOGGING_QUIET: "true"
      XPACK_SECURITY_ENCRYPTIONKEY: ${KIBANA_XPACK_SEC_KEY}
      XPACK_SECURITY_SESSIONTIMEOUT: 600000

问题: A. 当我通过 kibana 控制台 运行 elasticsearch 查询时,至少需要 20000 ms return 输出到控制台。但是,如果我 运行 通过 curl 或邮递员或 chrome 直接(elasticsearch)进行相同的查询,则只需要不到 200 毫秒 就可以得到输出 B. 即使在我加载 kibana 仪表板时发生这种情况(并非所有时间),也会收到以下错误消息并且不会加载一些图表。但我无法从控制台日志中看到任何异常或错误

Error in visualization

[esaggs] > Request to Elasticsearch failed: {"error":{}}

如果我刷新页面,我可以看到所有的图表。

Chrome performance profile directly hitting elasticsearch query URL: http://testnode.mycompany.com.nz:9550/_cat/indices

Chrome performance profile via kibana dev console elasticsearch query Query : GET /_cat/indices

我不明白的是如果我 运行 在我的笔记本电脑中 docker 撰写文件(windoes 10、16GB、i7 2cpu、docker 桌面 运行ning)我没有遇到任何缓慢的问题,无论是 kibana 开发控制台查询还是直接查询 elasticseach。

任何人遇到这个问题并感谢让我知道如何解决这个问题?

提前致谢。

问题是 docker 服务发现。由于某种原因 docker 服务发现没有发生。只要我将 elasticsearch 主机更改为 IP 即可获得真正的性能。

在docker-compose 之前的kibana配置

ELASTICSEARCH_HOSTS: "http://elasticsearch:9550"

新配置

ELASTICSEARCH_HOSTS: "http://172.20.1.2:9550"

more details refer to the elasticsearch discuss page