更新时间:2022-08-26 16:45:03

► 问题描述:数据无法进入系统中,搜索页面也无法搜索到新数据

► 排查方法:

1. 查看Kafka消费者详情:kubectl exec -it kafka-0 -c kafka -- /opt/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9097 --group kafka_topic -describe如以上命令输出结果如下图,请继续下一步;  

2. 手动发送测试数据到Logstash input:echo {"type": "test"} | nc 127.0.0.1 20001,完成后继续下一步;

3. 再次查看Kafka消费者详情:kubectl exec -it kafka-0 -c kafka -- /opt/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9097 --group kafka_topic -describe

  • 如以上命令输出结果中LOG-END-OFFSET和第1步中的相比增加了,则继续第4步。
  • 如以上命令输出结果中CURRENT-OFFSET和第1步中的相比没有增加,则转到第6步

4. 查看Kafka分区状态:kubectl exec -it kafka-0 -c kafka -- /opt/kafka/bin/kafka-topics.sh --describe --zookeeper zookeeper-anyrobot:2181 --topic kafka_topic,如以上命令输出结果如下图,Leader 为-1,则说明Kafka集群异常;否则,继续第5步。

5. 查看logstash filter状态和日志:kubectl logs -f -c logstash --namespace anyrobot `kubectl get po --namespace anyrobot | grep Logstash-filter | head -n 1 | awk -F ' ' '{print $1}'`

  • 如以上命令输出结果如下图,则说明 Logstash filter 服务未启动
  • 如以上命令输出结果如下图,有ERROR或WARN级别的报错,则说明Logstash filter 出错

6. 查看 Logstash input 状态和日志:kubectl logs -f -c logstash --namespace anyrobot `kubectl get po --namespace anyrobot | grep logstash-input | head -n 1 | awk -F ' ' '{print $1}'`

  • 如以上命令输出结果如下图,则说明Logstash input服务未启动
  • 如以上命令输出结果如下图,ERROR或WARN级别的报错,则说明Logstash input 出错
  • 如上面命令输出结果如下图,没有ERROR或WARN级别的报错,则数据流正常。