首页 > 代码库 > 日志收集之--将Kafka数据导入Elastic
日志收集之--将Kafka数据导入Elastic
最近需要搭建一套日志监控平台,结合系统本身的特性总结一句话也就是:需要将Kafka中的数据导入到elasticsearch中。那么如何将Kafka中的数据导入到elasticsearch中去呢,总结起来大概有如下几种方式:
- Kafka->logstash->elasticsearch->kibana(简单,只需启动一个代理程序)
- Kafka->kafka-connect-elasticsearch->elasticsearch->kibana(与confluent绑定紧,有些复杂)
- Kafka->elasticsearch-river-kafka-1.2.1-plugin->elasticsearch->kibana(代码很久没更新,后续支持比较差)
根据以上情况,项目决定采用方案一将Kafka中的数据存入到elasticsearch中去。
一、拓扑图
项目拓扑图如下所示:
此时消息的整体流向为:日志/消息整体流向Flume => kafka => logstash => elasticsearch => kibana
二、环境搭建
关于Kafka及Flume的搭建在这里不再详细论述,如有需要请参见本文其它说明。在这里重点说明logstash的安装及配置。
A.下载logstash的安装包;
B.新建kafka-logstash-es.conf置于logstash/conf目录下;
C.配置kafka-logstash-es.conf如下:
input { kafka { zk_connect => "c1:2181,c2:2181,c3:2181" group_id => "elasticconsumer" ---随意取 topic_id => "xxxlog" ---与flume中的Channel保持一致 reset_beginning => false consumer_threads => 5 decorate_events => true codec => "json" } }output { elasticsearch { hosts => ["c4:9200","c5:9200"] index => "traceid"--对应kafka的json中真实存在的字段,注意:index必须小写 workers => 5 codec => "json" } }
运行logstash命令为:nohup bin/logstash -f /XXX/logstash/conf/kafka-logstash-es.conf &
三、调测过程中遇到的一些坑
A.在集成ELK过程中总以为head插件是必须的,其实head插件为非必需品。elasticsearch仅提供了一个数据存储的煤介,head为了让大家更方便的去查看数据;
B.采用以上方案进行布署时,当系统正常运行时,可以在elasticsearch服务器上http://IP:9200/*中搜索index是否创建成功
日志收集之--将Kafka数据导入Elastic
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。