ELK Stack 介绍

文章首发站点: OpensGalaxy.com

ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称,官方网站 https://www.elastic.co

ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELK Stack 具有如下几个优点:

  • 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
  • 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
  • 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
  • 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
  • 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。

Logstash

Logstash是一个实时开源数据收集引擎。Logstash可以动态的从不同的数据源收集数据,并发送到你选择的目的地,采用插件式架构设计(Input、filter、Output),可以轻松的扩展功能,目前有超过200个插件可用。
官方介绍页

https://www.elastic.co/guide/en/logstash/current/introduction.html#_logstash_loves_data

Elasticsearch

Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎。它允许你存储,搜索,并迅速以近乎实时的分析数据的大容量。它通常用作底层引擎/技术,具有复杂的搜索功能和需求的力量应用。

下面是Elasticsearch可用于一些样品用例:

  • 你运行一个在线网络商店,你让你的客户来搜索您所销售的产品。在这种情况下,你可以使用Elasticsearch存储您的整个产品目录和库存,并为他们提供搜索和自动完成建议。
  • 要收集日志或交易数据,要分析和挖掘这些数据来寻找趋势,统计,研究概述,或异常。在这种情况下,你可以使用Logstash(该Elasticsearch / Logstash / Kibana堆栈的一部分)收​​集,汇总,并分析你的数据,然后Logstash输出这个数据到Elasticsearch。一旦数据在Elasticsearch,您可以运行搜索和聚合挖掘是你感兴趣的任何信息。
  • 你运行一个价格告警平台,允许价格精明的客户指定,如“我感兴趣的是购买特定的电子设备,我想,如果小工具的价格在未来一个月内低于$ X来自任何供应商被通知”的规则。在这种情况下,你可以刮供应商的价格,将其推入Elasticsearch并使用其反向搜索(过滤器)功能,以匹配客户查询价格走势,并最终推动警报到客户一旦找到匹配。
  • 你必须分析/商业智能需求,并希望快速调查,分析,可视化,并要求对大量数据的即席问题(想记录百万或数十亿)。在这种情况下,你可以使用Elasticsearch来存储你的数据,然后使用Kibana(该Elasticsearch / Logstash / Kibana堆栈的一部分),以建立一个能够可视化对您很重要的数据方面的定制仪表盘。此外,还可以使用Elasticsearch聚合功能对你的数据进行复杂的商业智能查询。

https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html

Kibana

Kibana 是开放源代码的分析和可视化平台,旨在与 Elasticsearch结合使用。Kibana 用于搜索、查看和与存储在 Elasticsearch 指数中的数据进行交互。你可以轻松执行高级的数据分析和可视化你的数据在各种图表、表格和地图。

Kibana 使它易于理解数据量很大。其简单的、基于浏览器的界面使您能够快速地创建和分享到 Elasticsearch 查询实时显示变化的动态面板。

https://www.elastic.co/guide/en/kibana/current/introduction.html

ELK Stack 部署

单实例的ELK Stack很好部署,官方提供了多种部署方式。

installing Logstash

1、Logstash 2.3依赖 java1.7或更高版本

2、安装logstash可以采用下载压缩包、RPM、DEB,本文下载的是Logstash 2.3.4 All Plugins 压缩包版本。
https://www.elastic.co/downloads/logstash

3、运行

[root@server01 elkstack]# mkdir -p /etc/logstash/conf.d   ##存放配置文件
[root@server01 elkstack]# tar -zxvf logstash-all-plugins-2.3.4.tar.gz
[root@server01 elkstack]# /opt/logstash-2.3.4/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

输入 Hello World
结果:

Hello World
Settings: Default pipeline workers: 2
Pipeline main started
{
       "message" => "Hello World",
      "@version" => "1",
    "@timestamp" => "2016-08-26T07:22:14.710Z",
          "host" => "server01"
}

这样Logstash就运行成功了,当然这只是一个配置例子,标准输入和标准输出到终端,更复杂的配置稍后文章会介绍。

installing Elasticsearch

1、安装

[root@server01 elkstack]# wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.5/elasticsearch-2.3.5.rpm
[root@server01 elkstack]# rpm -ivh elasticsearch-2.3.5.rpm

配置文件在 /etc/elasticsearch/ ###本文采用默认配置
数据文件在 /var/lib/elasticsearch
2、运行
[root@server01 elkstack]# service elasticsearch start
3、查看状态,浏览器访问IP:9200

{
  "name" : "Arkon",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.3.3",
    "build_hash" : "218bdf10790eef486ff2c41a3df5cfa32dadcfde",
    "build_timestamp" : "2016-05-17T15:40:04Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}

表示elasticsearch 运行正常

installing Kibana

[root@server01 elkstack]# wget https://download.elastic.co/kibana/kibana/kibana-4.5.4-1.x86_64.rpm
[root@server01 elkstack]# rpm -ivh kibana-4.5.4-1.x86_64.rpm
[root@server01 elkstack]# service kibana start

安装后程序文件目录是/opt/kibana/ 下

浏览器访问 http://IP:5601
image

表示运行正常,初次运行需要建立index,然后才能进入其他标签使用 Discover、Visualize等,开始你的ELK Stack之旅吧!!!

发表评论