elasticsearch+kafka日志收集和分析以及分布式配置(附)

本文介绍了如何利用Kafka作为数据管道,结合Elasticsearch进行日志收集和分析。避免了直接使用MySQL同步数据的复杂性,以及JDBC-River的效率问题。详细讲解了通过Kafka批量写入Elasticsearch的方法,并提供了Elasticsearch的配置及IK分词插件的安装步骤,适用于Elasticsearch 2.3.1版本。在分布式配置中,重点强调了cluster.name的统一和discovery.zen.ping.unicast.hosts的设置来实现跨IP段的集群感应。

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">由于公司内部业务需求,需要将大量的请求日志做统计分析,所以用到了elasticsearch全文搜索引擎</span>

一、采用何种方式做日志收集

1、采用mysql数据同步的方式将数据批量写入elasticsearch,这种方式需要自己控制每次最后一次插入数据的状态,以便下次从上次标记的状态继续同步数据,

2、网上给出的方案为jdbc-river这种方式同步过程比较慢,而且对于百万级数据不是最好的选择,另外对于数据的实时收集影响mysql的性能

3、最后采用kafka+elasticsearch的方式做:

具体为:

1)每次请求以及产生的数据都通过数据管道kafka做数据传输,再通过脚本将管道中的数据写入elasticsearch,这里想说的是elasticsearch有个bulk可以批量的导入数据

下面附上elasticsearch的配置以及中文分词的ik的配置方式

本文ElasticSearch2.3.1最新版的安装,如果遇到未知错误请翻墙google,国内的相关文章都比较老

首先从官网官网:https://www.elastic.co/guide/en/sense/current/installing.html下载对应的版本

(首先确保已经有jdk环境,本人jdk版本为1.8.51)这里笔者想说明的是jdk1.8.91安装以后会提示java环境找不到或者是librjava.so找不到,所以最好选择1.7到1.8.51版本

按照官网的提示进行启动发现报错:

Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
     at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)
     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值