版本:
centos7
jdk1.8
kafka2.12-2.1.0
elasticsearch6.6.0
logstash6.6.0
kibana6.6.0
准备工作:
logstash,elasticsearch,kafka 的运行都需要java虚拟机。
本机在centos7下已安装好JDK1.8及kafka2.12-2.1.0,安装参考链接:
https://blog.csdn.net/QYHuiiQ/article/details/86560498
https://blog.csdn.net/QYHuiiQ/article/details/86556591
安装elasticsearch,logstash,kibana:
1.官网下载elasticsearch:https://www.elastic.co/downloads/elasticsearch
2.官网下载logstash:https://www.elastic.co/downloads/logstash
3.下载kibana:https://www.elastic.co/downloads/kibana
参考链接:https://blog.csdn.net/scirhh/article/details/83016456#Elasticsearch https://www.cnblogs.com/luoahong/articles/9531240.html
参考书籍:《kafka从入门到实践》电子书分享链接:https://pan.baidu.com/s/1-P0RfgBUIxVIL5TYjkr1xg 提取码:nul7
4.下载好安装包之后,使用SSHH Secure File Transafer将安装包放到Linux下的/usr/local/wyh/elk-kafka路径下:
5.解压缩安装包:tar -xzvf 压缩包名
配置elasticsearch
5.1:修改解压缩后的elasticsearch-6.6.0/config/elasticsearch.yml文件
进入config下,vi elasticsearch.yml:
添加或修改:
cluster.name: wyh-cluster
node.name: wyh-node-1
network.host: 192.168.184.128
http.port: 9200
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
注意冒号后面的空格
http.enabled: true
5.2修改/etc/security/limits.conf文件,增加以下配置:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
要记得前面有*
5.3修改/etc/security/limits.d/90-nproc.conf文件,将该文件中第一行的值改为4096:
* soft nproc 4096
5.4修改/etc/sysctl.conf文件,增加以下配置:
vm.max_map_count=655360
然后执行sysctl -p使之生效。
注意:以上修改配置的操作都是在root角色下执行的,root与自己创建的用户之间相互切换使用su root或su elssearch.
5.5由于elasticsearch不允许以root身份运行,所以我们需要创建一个运行elasticsearch的用户(如:elssearch)
创建elssearch用户组:
groupadd elssearch
创建用户elssearch。创建一个elssearch的用户,并将该用户加入到elssearch用户组,同时设置该用户登录密码为elssearch:
useradd elssearch -g elssearch -p elssearch
更改elasticsearch安装目录所属用户。修改elasticsearch安装目录及其子目录属于elssearch用户,进入elasticsearch安装目录下执行命令:
[root@localhost elk-kafka]# chown -R elssearch:elssearch /usr/local/wyh/elk-kafka
切换到elssearch用户:
[root@localhost elk-kafka]# su elssearch
切换后如图:
进入elasticsearch的bin目录下启动elasticsearch:
[elssearch@localhost bin]$ ./elasticsearch
如图说明启动成功。
5.6使用9200端口进入浏览器查看输出信息:
如图说明启动成功。
如果想要停止es服务,执行jps查看正在运行的进程,然后kill进程号:
6.接下来我们安装一下head插件,方便我们查看elasticsearch的信息:
之前已经安装好了nodejs及npm(由于安装的时候不太顺利,所以写的博客总结的步骤比较杂乱,在此就不分享了),现在接着来安装一下grunt:
6.1先来查看一下node和npm的版本:
6.2使用npm安装grunt:
[root@localhost bin]# npm install -g grunt
查看是否安装成功:
[root@localhost bin]# grunt -version
grunt-cli v1.2.0
6.3下载head插件源码:
[root@localhost /]# wget https://github.com/mobz/elasticsearch-head/archive/master.zip
6.4解压安装包:
[root@localhost /]# unzip master.zip
bash: unzip: 未找到命令
需要先安装zip、unzip应用:
[root@localhost /]# yum install zip unzip
安装完之后再执行刚才的解压命令。
6.5进入到elasticsearch-head-master目录下,并执行安装下载下来的包:
[root@localhost /]# cd elasticsearch-head-master
[root@localhost elasticsearch-head-master]# npm install
安装过程中如果出错,可以使用下面的方式安装:
[root@localhost elasticsearch-head-master]# npm install -g cnpm --registry=https://registry.npm.taobao.org
6.6如果elasticsearch已经启动,先要停止:
[root@localhost elasticsearch-head-master]# jps
7505 Jps
6918 Elasticsearch
[root@localhost elasticsearch-head-master]# kill 6918
6.7我们需要修改elasticsearch中的config下的elasticsearch.yml,使之可以跨域访问:
http.cors.enabled: true
http.cors.allow-origin: "*"
注意冒号后面有空格。
6.8进入elasticsearch-head-master目录下,修改Head插件的配置:
[root@localhost elasticsearch-head-master]# vi Gruntfile.js
添加红框部分。
6.9启动elasticsearch:
要注意切换到elssearch用户下。使用-d后台启动。进入到elasticsearch的bin目录下。
[elssearch@localhost bin]$ ./elasticsearch -d
6.10启动 head:
进入到elasticsearch-head-master目录下执行:
[root@localhost elasticsearch-head-master]# grunt server
6.11在浏览器中访问9100端口:
出现not connected,把connect按钮左边的localhost改为ip即可:
至此elasticsearch及其head插件就安装好了。
7.安装kibana:
7.1解压:
[elssearch@localhost elk-kafka]$ tar -xzvf kibana-6.6.0-linux-x86_64.tar.gz
7.2修改配置文件:
进入kibana-6.6.0-linux-x86_64--------config,修改kibana.yml:
7.3启动kibana:
注意在启动kibana之前一定要先把elasticsearch启动起来,因为kibana要去连接elasticsearch。
[elssearch@localhost bin]$ ./kibana
7.4在浏览器中访问5601端口:
kibana启动成功。(第一次启动kibana好慢好慢啊啊啊)
8.安装logstash
8.1解压安装包
8.2在config文件夹下创建一个从kafka消费消息的配置文件。
[root@localhost elk-kafka]# vi config/wyh-logstash.conf
8.3启动logstash
[root@localhost logstash-6.6.0]# ./bin/logstash -f ./config/wyh-logstash.conf
8.4在kafka中创建topic:wyh-elk-kafka-topic
8.5在kibana中创建索引:
在创建之前需要先向kafka中写入一些数据.
创建索引:
索引就是我们在创建logstash的配置文件(wyh-logstash.conf)时写的output中的Index,用*模糊匹配。
step2:我们可以选择timestamp来filter,然后点击create index pattern:
8.6创建好索引之后,我们可以在左侧菜单栏中点击Discover来查看elasticsearch中的数据:
右上角有刷新频率可以选择,然后点击refresh进行刷新。上面的柱状图展示了一定时间范围内的数据量,下面展示的就是具体的elasticsearch中的数据。红框部分就是我们之前发送到kafka的json格式的数据,以键值对的形式出现。
在左上角还可以添加filter进行过滤筛选查询,可以根据自己的需求定义。
如果你同时启动kafka、elasticsearch、logstash、kibana出现了某个服务挂掉或者jvm不满足的情况,那么你可以试着先启动kafka、elasticsearch、logstash,保证以logstash为桥梁将kafka中的数据传到elasticsearch中,这样保证数据到了elasticsearch之后,就可以把kafka和logstash停掉,这时只启动elasticsearch和kibana来查看数据,也就是在kibana启动之前传到elasticsearch中的数据在kibana启动之后还是可以看到的,因为kibana中的数据只与elasticsearch有关。当然,这只是在初始使用的时候这么做,如果在实际使用中我们还是需要将kafka和logstash都正常启动的,因为我们要保证整个平台实时运行。
以上就是实现了kafka与elasticsearch、logstash、kibana之间的整合,以后会继续研究整个平台在实际中的应用案例。
参考博客:https://blog.csdn.net/zoubf/article/details/79007908