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博客
五、部署es(elasticsearch)-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-beginning
Logstash对应的消费组偏移量,确认是否有消费进度:在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