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日志收集和分析以及分布式配置(附)的主要内容,如果未能解决你的问题,请参考以下文章

elasticsearch集群搭建 kafka filebeat logstach收集日志高可用方案

日志收集之--将Kafka数据导入Elastic

结合kafka部署ELK日志收集系统实践

ELK+kafka构建日志收集系统之环境安装

ELK+kafka构建日志收集系统之环境安装

filebeat+logstash+elasticsearch收集haproxy日志