前言:
首先要有一个全面的认识,什么是ELK?
Elastic Stack也就是ELK,ELK是三款软件的集合,分别是Elasticsearch,logstas,Kibana,在发展过程中,有了新的成员Beats加入,所以就形成了Elastic Starck.也是就是说ELK是旧的称呼,Elastic Stack是新的名字。
先通过Beats采集一切的数据如日志文件,网络流量,Win事件日志,服务指标,健康检查等,然后把数据发送给elasticsearch保存起来,也可以发送给logstas处理然后再发送给elasticsearch,最后通过kibana的组件将数据可视化的展示出来。
Elasticsearch
Elasticsearch基于java,是个开源分布式手术引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash
也是基于java,是一个开源的用于收集,分析和存储日志的工具。
Kibana
Kibana基于nodejs,也是开源和免费的工具,Kibana开源为logsash和Elasticsearch提供日志分析友好的web界面,可以汇总,分析和搜索重要的数据日志。
Beats
Bests是elastic公司开源的一款采集系统监控数据的代理agent,是在被监控服务器上以客户端形式运行的数据收集器的统称,可以直接把数据发送给Elasticsearch或者通过Logstash发送给Elasticsearch,然后进行后续的数据分析活动
ELK官网:
直接从官网下载ELK的所有安装包
Free and Open Search: The Creators of Elasticsearch, ELK & Kibana | Elastic
Note: 怎样部署ELK?
ELK需要使用单独的机器部署,为什么? 因为ELK不涉及业务,而且日志量大 会占用业务的资源,所以需要单独部署。
本文中需要安装ELK,以及kafka,zookeeper, kafka作为logstash的数据源。
1.安装单机版Elasticsearch
1、基础环境配置
添加用户
出于安全的考虑,elasticsearch不允许使用root用户来启动,所以需要创建一个新的用户,并为这个账户赋予相应的权限来启动elasticsearch集群(赋予权限的操作在后面启动ES的环节)。
修改服务打开文件数
防止进程虚拟内存不足:
使上面的设置生效:
2、修改ES配置文件elasticsearch.yml
3. 其它配置文件
(1).ES自带java,所以不需要在系统中安装java,但是如果系统中已经有了java,那么ES会用哪一个?
(2).由于Elasticsearch是Java开发的,所以可以通过../elasticsearch/config/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。 不过其中还是有两项最重要的-Xmx1g 与
-Xms1gJVM的最大最小Heap。如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢
系统本身。
4.启动es
1、给elasticsearch文件夹分配es权限
chown -R es:es elasticsearch文件路径
2、切换至es用户su - es
3、启动ES
bin/elasticsearch --前台启动
bin/elasticsearch -d --后台启动
5.验证ES集群:
shell命令行访问 :
虽然不是集群,但是也可以用这个API进行查看。
命令输出信息:
本地http访问:
curl http://localhost:9200
外部http访问:
开放防火墙端口:
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload
systemctl daemon-reload
导入数据到ES:
json数据文件data.json如下:
它的第一行定义了_index,_type,_id等信息;第二行定义了字段的信息(关于ES数据格式问题,比如要有哪些字段,请自行研究)。
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }
执行结果如下:
二、安装Kibana
Kibana是一个针对Elasticsearch的开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作,使用Kibana能执行高级的数据分析,并能以图表、表格和地图的形式查看数据。
1.获取到安装包
获取kibana-7.8.1-linux-x86_64.tar(自己去官网下载,这里不提供),然后解压
2.配置yum源:
在/etc/yum.repos.d/ 下新建 kibana.repo 配置 yum 源地址:
新建kibana.repo:
新建完成之后,在里面加上如下内容:
3.修改配置文件kibana.yml:
修改config文件夹下的kibana.yml,添加信息:
注意,里面的地址是你自己服务器的IP地址。
4.开启端口5601:
如果防火墙是关闭的,首先打开防火墙,否则没办法开启5601端口:
1.输入命令、开启防火墙:
2.开启防火墙后,添加5601端口:
出现success,说明端口开启成功。
3.重启防火墙:
5.启动kibana:
1.启动kibana之前,先启动ElasticSearch:
进入ES安装包下的bin目录,输入命令:
2.启动Kibana:
进入kibana安装目录下的bin目录,输入命令:
(1).新建kibana账户(推荐这种方式):
授权:
切换账户:
启动kibana:
(2).如果在root账户下启动kibana
需要加--allow-root参数。
3.关闭防火墙:
kibana成功启动后,关闭防火墙:
4.访问kibana:
三、安装Zookeeper
参考:centos7上安装zookeeper - web_bird - 博客园 (cnblogs.com)
1.需要先安装JDK:
jdk压缩包解压(自己去下载):
配置环境变量:
修改/etc/profile文件,在文件最后加上:
export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使配置生效:
查看java版本:
2.安装zookeeper:
zookeeper下载地址:https://downloads.apache.org/zookeeper/
解压安装包:
进入到conf文件夹:
修改配置文件zoo.cfg:
我们需要注意dataDir和datalogDir对应的目录,如果对应的目录不存在,我们需要去创建。
启动zookeeper:
也可以通过查看zookeeper的进程来判断其是否启动成功
3.设置zookeeper开机启动(尚未验证):
我们可以将zookeeper作为一个服务,设置其开机自启,这样每次我们打开虚拟机就可以开启zookeeper,彻底解放双手!设置zookeeper开机自启需要以下几个步骤:
1、进入 /etc/init.d 目录:
2.创建文件zookeeper,并添加脚本:
脚本内容为:
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
ZK_PATH= 你的zk路径(到zk根目录就行了)
export JAVA_HOME= jdk目录(也是到根目录就好了)
case $1 in
start) sh $ZK_PATH/bin/zkServer.sh start;;
stop) sh $ZK_PATH/bin/zkServer.sh stop;;
status) sh $ZK_PATH/bin/zkServer.sh status;;
restart) sh $ZK_PATH/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
3. 将zookeeper注册为服务:
4.测试其是否生效
这里采用先停服务,再使用命令启动,注意需要修改创建的zookeeper服务权限:
[root@zhiyou init.d]# service zookeeper start
env: /etc/init.d/zookeeper: 权限不够
[root@zhiyou init.d]#
[root@zhiyou init.d]# chmod +x zookeeper
[root@zhiyou init.d]#
[root@zhiyou init.d]# service zookeeper start
ZooKeeper JMX enabled by default
Using config: /opt/soft/zookeeper-3.4.11/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@zhiyou init.d]#
[root@zhiyou init.d]# service zookeeper status
ZooKeeper JMX enabled by default
Using config: /opt/soft/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: standalone
[root@zhiyou init.d]#
至此,我们已经完成了在centos7下安装zookeeper的全部步骤,以及设置了zookeeper开机自启动!
四、安装Kafka
解压kafka压缩包:
修改文件夹config中的配置文件server.properties.
配置log.dirs参数的时候,需要自己创建文件夹 /usr/local/kafka_2.13-2.6.0/logs