Linux部署ELK 日志分析系统与简单测试

ELK stack是指由Elasticsearch,Logstash,Kibana三个组件结合起来而构成的一个日志收集,分析,可视化的一个套件。
    环境说明

部署路径:/opt/elk
    官网下载地址(配套下载,避免出现版本不匹配问题):https://www.elastic.co/products

简单介绍 1:E->Elasticsearch

es和solr比较类似,都是基于lucene的来提供的搜索服务。但是在高并发的表现上,ES的负载均衡效果是优于solr的。
Elasticsearch 是基于 Lucene 的近实时搜索平台,它能在一秒内返回你要查找的且已经在 Elasticsearch 做了索引的文档。它默认基于 Gossip 路由算法的自动发现机制构建配置有相同 cluster name 的集群,但是有的时候这种机制并不可靠,会发生脑裂现象。鉴于主动发现机制的不稳定性,用户可以选择在每一个节点上配置集群其他节点的主机名,在启动集群时进行被动发现。

Elasticsearch 中的 Index 是一组具有相似特征的文档集合,类似于关系数据库模型中的数据库实例,Index 中可以指定 Type 区分不同的文档,类似于数据库实例中的关系表,Document 是存储的基本单位,都是 JSON 格式,类似于关系表中行级对象。我们处理后的 JSON 文档格式的日志都要在 Elasticsearch 中做索引,相应的 Logstash 有 Elasticsearch output 插件,对于用户是透明的。

Hadoop 生态圈为大规模数据集的处理提供多种分析功能,但实时搜索一直是 Hadoop 的软肋。如今,Elasticsearch for Apache Hadoop(ES-Hadoop)弥补了这一缺陷,为用户整合了 Hadoop 的大数据分析能力以及 Elasticsearch 的实时搜索能力.

2:L->Logstash

Logstash 是一种功能强大的信息采集工具,类似于 Hadoop 生态圈里的 Flume。通常在其配置文件规定 Logstash 如何处理各种类型的事件流,一般包含 input、filter、output 三个部分。Logstash 为各个部分提供相应的插件,因而有 input、filter、output 三类插件完成各种处理和转换;另外 codec 类的插件可以放在 input 和 output 部分通过简单编码来简化处理过程。

3:K->Kibana

kibana是一个可以可以用来查看ES里数据的Web。在早期logstash有一个logstash-web,但是功能比较简单。咱们这里说的kibana严格意义上说是kibana4,是在2015年重构完成的一个版本。

ELK与Hadoop/Spark的比较

ELK应付常见的日志摘要和分析是没问题的,上PB级的数据量也不是难事。ELK简单、轻量、易扩展倒是真的,但数据容量,二次抽洗,以及周边生态,还是没有Hadoop来得好。elk在掌握简单的正则以后即可对任意数据进行抽取(要求半格式化数据),处理同样的数据spark还需要学一门编程语言。

具体参考:

Elasticsearch的部署与head插件的安装 1:Elasticsearch的部署

解压到指定目录/opt/elk,并启动

sudo tar -zxvf /home/thinkgamer/下载/ELK/elasticsearch-2.4.0.tar.gz -C .

bin/elasticsearch

利用以下命令获取状态信息(得到的内容和下边图片上显示的是一样的)

curl -X GET :9200/

也可以在浏览器窗口输入localhost:9200,可以看到类似于如下的界面

这里写图片描述

从中我们可以看出elasticsearch的版本为2.4.0,是基于lucene5.5.2开发的

2:安装head插件

执行命令

bin/plugin install mobz/elasticsearch-head

访问url:

:9200/_plugin/head/

LogStash的部署

解压到/opt/elk目录下:

tar -zxvf /home/thinkgamer/下载/ELK/logstash-2.4.0.tar.gz -C .

这里针对这个input和output有三种情况

1.shell 端输入 shell 端输出

此种情况下,并不涉及elasticsearch和kibana,只是简单测试Logstash服务是否正常,预期将输入的内容结构化的输出到界面上

bin/logstash -e ‘input { stdin { } } output { stdout {} }’ &

提示:

Settings: Default pipeline workers: 4 Pipeline main started

这个时候由于我们定义的input和output是stdin和stdout,并没有进行额外的处理,所以你输入什么就会输出什么

thinkgamer@thinkgamer-pc:/opt/elk/logstash-2.4.0$ bin/logstash -e 'input{stdin{}} output{stdout{}}' Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=gasp Settings: Default pipeline workers: 4 Pipeline main started qwewq 2016-09-25T05:14:04.819Z thinkgamer-pc qwewq safdaas 2016-09-25T05:15:32.132Z thinkgamer-pc safdaas 我爱你 2016-09-25T05:15:34.792Z thinkgamer-pc 我爱你

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7324161d8980473edcbe7baf4a893513.html