elasticsearch+kafka日志收集和分析以及分布式配置(附)
Posted yxz1025
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch+kafka日志收集和分析以及分布式配置(附)相关的知识,希望对你有一定的参考价值。
<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)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
这是因为不能用root用户运行,必须为其创建一个用户和用户组,但是非要运行那笔者给出经过尝试和google终于运行成功
解决如下:
./bin/elasticsearch -d -Des.insecure.allow.root=true
这样启动就正常了
对于分布式配置只要配置文件的cluster.name的值为同一个就可以,但是在不同IP段想要分布式感应需要配置IP,在配置文件中找到
discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"] 数组中改为对应的IP即可成功感应
二、分词插件ik安装
对于es2.3以后的版本安装ik分词器需要用户自己打包,然后将对于的jar包文件和配置文件复制到es目录中即可
具体步骤为:
1、在github中下载对应的版本地址为:https://github.com/medcl/elasticsearch-analysis-ik/releases
2、选择对应版本
cd /tmp
wget https://github.com/medcl/elasticsearch-analysis-ik/archive/master.zip
unzip master.zip
cd elasticsearch-analysis-ik/
然后使用
mvn package
命令,编译出jar包
将target/releases/下所有文件包复制到Elasticsearch的
plugins/analysis-ik
目录下,再把解压出的ik目录(配置和词典等),复制到Elasticsearch的
config
目录下。然后编辑配置文件
elasticsearch.yml
,在后面加一行:
index
.
analysis
.
analyzer
.
ik
.
type
:
"ik"
3、最后重启即可安装成功
三、kafka安装请参考本人上期安装说明博客
以上是关于elasticsearch+kafka日志收集和分析以及分布式配置(附)的主要内容,如果未能解决你的问题,请参考以下文章