一. ELKStack简介
ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
简单来说 :把客户的访问公司的各个方面的访问量(方面很广,包括访问量 、流量峰值等等)通过新处理模式进行导入和预处理来表达,进行数据分析来直观解决掉问题。
ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELKStack具有如下几个优点:
• 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
• 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
• 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
• 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
• 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
二. 安装部署ELK平台进行数据分析
实验环境准备
Linux6.5系统
三台主机
server1 172.25.20.1
server2 172.25.20.2
server3 172.25.20.3
需要下载的软件包
elasticsearch-2.3.3.rpm
elasticsearch-head-master.zip
jdk-8u121-linux-x64.rpm
(1)下面是单台主机实验
1.在server1上安装elasticsearch-2.3.3.rpm
[root@server1 ~]# yum install -y elasticsearch-2.3.3.rpm
2.修改elasticsearch的主配置文件
[root@server1 ~]# cd /etc/elasticsearch/
[root@server1 elasticsearch]# ls
elasticsearch.yml #主配置文件
logging.yml #日志文件
scripts #脚本文件
[root@server1 elasticsearch]# vim elasticsearch.yml
[root@server1 elasticsearch]# vim elasticsearch.yml
cluster.name: my-xiaozhuang #集群名字
node.name: server1 #节点名称
path.data: /var/lib/elasticsearch/ #存储目录,可配置多个磁盘
path.logs: /var/log/elasticsearch/ #日志储存目录
bootstrap.mlockall: true #启动时锁定内存
network.host: 172.25.20.1 #网卡ip
http.port: 9200 #http端口
[root@server1 elasticsearch]# /etc/init.d/elasticsearch start #开启elasticsearch服务
which: no java in (/sbin:/usr/sbin:/bin:/usr/bin)
Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME #这里会报错 缺少java环境
[root@server1 elasticsearch]# cd
[root@server1 ~]# ll
总用量 26788
-rw-r--r-- 1 root root 27430789 8月 25 09:27 elasticsearch-2.3.3.rpm
[root@server1 ~]# ll
总用量 190592
-rw-r--r-- 1 root root 27430789 8月 25 09:27 elasticsearch-2.3.3.rpm
-rw-r--r-- 1 root root 167733100 8月 25 09:34 jdk-8u121-linux-x64.rpm
[root@server1 ~]# rpm -ivh jdk-8u121-linux-x64.rpm #用rpm下载jdk
Preparing... ########################################### [100%]
1:jdk1.8.0_121 ########################################### [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
[root@server1 ~]# /etc/init.d/elasticsearch start #开启elasticsearch服务
正在启动 elasticsearch: [确定]
3. 开启服务elasticsearch服务后查看端口
[root@server1 ~]# netstat -antlp #查看端口
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 877/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 953/master
tcp 0 0 172.25.20.1:22 172.25.20.250:34952 ESTABLISHED 1316/sshd
tcp 0 0 ::ffff:172.25.20.1:9200 #出现9200端口 :::* LISTEN 2452/java
tcp 0 0 ::ffff:172.25.20.1:9300 :::* LISTEN 2452/java
tcp 0 0 :::22 ::