► 问题描述:数据无法进入系统中,搜索页面也无法搜索到新数据
► 排查方法:
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级别的报错,则数据流正常。