ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。
ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELK Stack 具有如下几个优点:
• 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
• 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
• 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
• 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
• 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
以上摘自ELKstack中文指南
Logstash是能够用于收集,处理和转发事件或日志信息的工具.
Logstash: Logstash服务的组件,用于处理日志
Elasticsearch: 用于存储,索引日志
Kibana 4: 搜索和可视化的日志的Web界面.
Elasticsearch和Logstash需要运行Java环境,并且版本最好是1.7以上.
首先必须安装java7及以上的版本
[root@192_168_174_68 home]# wget 'http://sdlc-esd.Oracle.com/ESD6/JSCDL/jdk/8u73-b02/jre-8u73-linux-x64.rpm?GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/8u73-b02/jre-8u73-linux-x64.rpm&BHost=javadl.sun.com&File=jre-8u73-linux-x64.rpm&AuthParam=1457343423_73675d83c3aa00d667217e09e10d85c2&ext=.rpm' -O jre-8u73-linux-x64.rpm
--2016-03-07 17:18:01-- ?GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/8u73-b02/jre-8u73-linux-x64.rpm&BHost=javadl.sun.com&File=jre-8u73-linux-x64.rpm&AuthParam=1457343423_73675d83c3aa00d667217e09e10d85c2&ext=.rpm
Resolving sdlc-esd.oracle.com... 96.7.54.179, 96.7.54.187
Connecting to sdlc-esd.oracle.com|96.7.54.179|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 49210622 (47M) [application/x-sdlc]
Saving to: “jre-8u73-linux-x64.rpm”
100%[=================================================>] 49,210,622 1.58M/s in 31s
2016-03-07 17:18:32 (1.51 MB/s) - “jre-8u73-linux-x64.rpm” saved [49210622/49210622]
安装jdk
[root@192_168_174_68 home]# yum install jre-8u73-linux-x64.rpm -y
[root@192_168_174_68 home]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
Elasticsearch 2.2.0安装
YUM / DNF安装
下载并安装公钥:
[root@192_168_174_68 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
创建/etc/yum.repos.d/elasticsearch.repo文件,复制下面的内容到文件中
[root@192_168_174_68 ~]# vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/CentOS
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
安装elasticsearch
[root@192_168_174_68 ~]# yum install elasticsearch #新版本的Fedora使用 dnf install elasticsearch
配置elasticsearch服务自动启动,SysV init 版本使用
chkconfig --add elasticsearch
systemd使用:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
修改elasticsearch配置
[root@192_168_174_68 ~]# mkdir /opt/elasticsearch.path.data
[root@192_168_174_68 elasticsearch]# vim /etc/elasticsearch/elasticsearch.yml
path.data: /opt/elasticsearch.path.data
network.host: 0.0.0.0
启动服务:
[root@192_168_174_68 opt]# service elasticsearch start
Starting elasticsearch: [ OK ]
[root@192_168_174_68 opt]# ps aux |grep elastic
498 8171 24.3 3.2 6815980 263784 ? Sl 17:24 0:10 /usr/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/usr/share/elasticsearch -cp /usr/share/elasticsearch/lib/elasticsearch-2.2.0.jar:/usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch start -p /var/run/elasticsearch/elasticsearch.pid -d -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch -Des.default.path.data=/var/lib/elasticsearch -Des.default.path.conf=/etc/elasticsearch
root 8283 0.0 0.0 103252 844 pts/1 S+ 17:25 0:00 grep elastic
[root@192_168_174_68 opt]# netstat -lntp |grep 8171
tcp 0 0 ::ffff:127.0.0.1:9200 :::* LISTEN 8171/java
tcp 0 0 ::1:9200 :::* LISTEN 8171/java
tcp 0 0 ::ffff:127.0.0.1:9300 :::* LISTEN 8171/java
tcp 0 0 ::1:9300 :::* LISTEN 8171/java
[root@192_168_174_68 opt]#
服务已经启动.