Skip to content

Latest commit

 

History

History
183 lines (99 loc) · 5.03 KB

页面无数据排查手册.md

File metadata and controls

183 lines (99 loc) · 5.03 KB

Logo

页面无数据排查手册


1、集群接入错误

1.1、异常现象

如下图所示,集群非空时,大概率为地址配置错误导致。

1.2、解决方案

接入集群时,依据提示的错误,进行相应的解决。例如:

1.3、正常情况

接入集群时,页面信息都自动正常出现,没有提示错误。


2、JMX连接失败

背景:Kafka 通过 JMX 服务进行运行指标的暴露,因此 KnowStreaming 会主动连接 Kafka 的 JMX 服务进行指标采集。如果我们发现页面缺少指标,那么可能原因之一是 Kafka 的 JMX 端口配置的有问题导致指标获取失败,进而页面没有数据。

具体见同目录下的文档:解决连接JMX失败


3、ElasticSearch问题

背景: KnowStreaming 将从 Kafka 中采集到的指标存储到 ES 中,如果 ES 存在问题,则也可能会导致页面出现无数据的情况。

日志: KnowStreaming 读写 ES 相关日志,在 logs/es/es.log 中!

注意: mac系统在执行curl指令时,可能报zsh错误。可参考以下操作。

1 进入.zshrc 文件 vim ~/.zshrc 
2.在.zshrc中加入 setopt no_nomatch 
3.更新配置 source ~/.zshrc

3.1、异因一:缺少索引

3.1.1、异常现象

报错信息

# 日志位置 logs/es/es.log
com.didiglobal.logi.elasticsearch.client.model.exception.ESIndexNotFoundException: method [GET], host[http://127.0.0.1:9200], URI [/ks_kafka_broker_metric_2022-10-21,ks_kafka_broker_metric_2022-10-22/_search], status line [HTTP/1.1 404 Not Found]

curl http://{ES的IP地址}:{ES的端口号}/_cat/indices/ks_kafka* 查看KS索引列表,发现没有索引。

3.1.2、解决方案

执行 ES索引及模版初始化 脚本,来创建索引及模版。


3.2、异因二:索引模板错误

3.2.1、异常现象

多集群列表有数据,集群详情页图标无数据。查询KS索引模板列表,发现不存在。

curl {ES的IP地址}:{ES的端口号}/_cat/templates/ks_kafka*?v&h=name 

正常KS模板如下图所示。

3.2.2、解决方案

删除KS索引模板和索引

curl -XDELETE {ES的IP地址}:{ES的端口号}/ks_kafka*
curl -XDELETE {ES的IP地址}:{ES的端口号}/_template/ks_kafka*

执行 ES索引及模版初始化 脚本,来创建索引及模版。


3.3、异因三:集群Shard满

3.3.1、异常现象

报错信息

# 日志位置 logs/es/es.log

{"error":{"root_cause":[{"type":"validation_exception","reason":"Validation Failed: 1: this action would add [4] total shards, but this cluster currently has [1000]/[1000] maximum shards open;"}],"type":"validation_exception","reason":"Validation Failed: 1: this action would add [4] total shards, but this cluster currently has [1000]/[1000] maximum shards open;"},"status":400}

尝试手动创建索引失败。

#创建ks_kafka_cluster_metric_test索引的指令
curl -s  -XPUT http://{ES的IP地址}:{ES的端口号}/ks_kafka_cluster_metric_test

3.3.2、解决方案

ES索引的默认分片数量为1000,达到数量以后,索引创建失败。

  • 扩大ES索引数量上限,执行指令
curl -XPUT  -H"content-type:application/json" http://{ES的IP地址}:{ES的端口号}/_cluster/settings -d '
{
  "persistent": {
    "cluster": {
      "max_shards_per_node":{索引上限,默认为1000, 测试时可以将其调整为10000}
    }
  }
}'

执行 ES索引及模版初始化 脚本,来补全索引。