Filebeat采集日志-kafka topic存起来日志-logstash去kafka获取日志进行格式转换-elasticsearch-kibana服务版本注意安装 Elastic Stack 时整个技术栈必须使用‌相同版本‌。例如若使用 Elasticsearch 9.4.3则需配套安装 Beats 9.4.3、APM Server 9.4.3、Elasticsearch Hadoop 9.4.3、Kibana 9.4.3 和 Logstash 9.4.3。 若是升级现有部署请参阅“升级您的部署、集群或编排器”文档以确保与 9.4.3 版本的兼容性。 不支持运行不同大版本的 Kibana 和 Elasticsearch如 Kibana 9.x 与 Elasticsearch 8.x也不支持 Kibana 的小版本号高于 Elasticsearch 的情况如 Kibana 8.14 与 Elasticsearch 8.13另外es9以上的版本会收费可以使用8.x的版本它是免费的按照下面这些文档按照依次安装一、ZooKeeper集群安装-CSDN博客二、安装kafka集群与zookeeper集群配合-CSDN博客三、安装filebeat收集nginx应用的日志-CSDN博客四、安装logstash-CSDN博客五、部署eselasticsearch-CSDN博客六、安装kibana服务-CSDN博客另外由于es和logstash比较大,装这两个服务的机器的内容需要比较大至少4个G如果在es的kibana的界面数据的索引不对可以按照下面的思路进行查询一、Kafka 链路状态排查指令/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server 你的Kafka集群地址:9092检查列表中是否有你配置的待消费主题比如你预期的日志主题。往该主题手动写入测试数据验证主题可正常生产/opt/kafka/bin/kafka-console-producer.sh --broker-list 你的Kafka集群地址:9092 --topic 你的日志主题名直接消费该主题的全量数据验证数据是否真的能正常流入Kafka/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 你的Kafka集群地址:9092 --topic 你的日志主题名 --from-beginningLogstash对应的消费组偏移量确认是否有消费进度在Logstash中配置的消费组ID 默认是logstash/opt/kafka/bin/kafka-consumer-groups.sh --describe --group 你在Logstash中配置的消费组ID --bootstrap-server 你的Kafka集群地址:9092如果输出中CURRENT-OFFSET一直为0说明Logstash根本没有成功连接到Kafka消费数据二、Logstash 配置与运行状态排查指令先验证你的Logstash配置文件语法完全合法sudo -u logstash /opt/logstash-9.4.3/bin/logstash -f /opt/logstash-9.4.3/config/nginx.conf -t输出Configuration OK才代表配置没有语法错误。查看Logstash实时运行日志过滤所有和输出相关的错误tail -f /opt/logstash-9.4.3/logs/logstash-plain.log | grep -E elasticsearch|kafka|error三、ES侧连通性与写入验证指令先在Logstash所在服务器手动测试ES的连通性替换你的ES地址和账号密码curl -k -u elastic:你的ES密码 https://192.168.40.190:9200/_cluster/health手动往目标索引写入一条测试数据验证当前账号是否有写入权限curl -k -u elastic:你的ES密码 -XPOST https://192.168.40.190:9200/kafkalog-test/_doc/1 -H Content-Type: application/json -d {test:demo}如果返回created说明ES侧写入权限完全正常问题就锁定在Logstash的output配置里的索引名、参数不匹配。最后查看ES中所有已存在的索引确认是否已经生成了非预期名称的索引curl -k -u elastic:你的ES密码 https://192.168.40.190:9200/_cat/indices?v