一、ELKStack是什么?
ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。
ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELK Stack 具有如下几个优点:
• 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
• 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
• 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
• 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
• 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
ELK地址:https://www.elastic.co/
Logstash 最佳实践:http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html
Elasticsearch 权威指南:http://www.learnes.net/index.html
ELKStack中文社区:https://kibana.logstash.es/content/
日志汇总,主要分为收集、查询、存储、展示这4个步骤,刚好开源社区有这4累产品,他们分别为:
logstash(收集)
elasticsearch(存储+搜索)
kibana(展示)
通过上面三个,就组成了ELK架构,架构图如下:
图片解释:elk 前面主要靠logstash来进行收集日志,logstash将日志上传到broker上,后面还有一个logstash用来读取broker中的日志,在将日志存储到es里面,最后用kibana练到es上进行展示
提示:我们可以将Elasticsearch简称为es
二、Elasticsearch安装部署
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
## 2.1 Elasticsearch部署
Elasticsearch首先需要Java环境,所以需要提前安装好JDK,可以直接使用yum安装。也可以从Oracle官网下载JDK进行安装。开始之前要确保JDK正常安装并且环境变量也配置正确:
## 1) 安装JDK {本次使用2台服务器}
[root@linux-node1 ~]# yum install -y java
[root@linux-node1 ~]# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)
2) 配置Elasticsearch
下面使用yum进行安装
1.下载并安装GPG key
[root@linux-node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
2.添加yum仓库
[root@linux-node1 ~]# cat /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
3.安装elasticsearch
[root@hadoop-node1 ~]# yum install -y elasticsearch
4.修改配置文件
[root@node01 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: myes #ES集群名称
node.name: abcdocker-node-1 #节点名称
path.data: /data/es-date #数据存储的目录(多个目录使用逗号分隔)
path.logs: /var/log/elasticsearch #日志格式
bootstrap.memory_lock: true #锁住es内存,保证内存不分配至交换分区
network.host: 192.168.0.33 #设置本机IP地址
http.port: 9200 #端口默认9200
5.设置数据目录权限
[root@node1 ~]# chown -R elasticsearch:elasticsearch /data/es-date/
#这个是我们存放数据的目录,手动创建
#es默认发现有组播和单播,组播就是都加入到一个组里面,单播就是一对一通信
#提示: yum安装时会少了许多配置,如果编译安装就会产生很多。
6.启动es
systemctl start elasticsearch.service
#默认使用9200端口,可以使用netstat -lntup|grep 9200 去查看端口状态
本次环境我们使用2台服务器,这2台服务器的服务搭建可以跟上面的步骤相同即可
访问测试:http://IP:9200
####################################################################
Elasticsearch提供了非常多的插件,还可以使用curl进行通讯
我们可以使用curl来查看es里面有什么内容
[root@abcdocker ~]# curl -i -XGET 'http://192.168.0.33:9200/_count?'
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 59
{"count":0,"_shards":{"total":0,"successful":0,"failed":0}}[
#解释:
#返回头部200,执行成功0个,返回0个
#Elasticsearch有很多插件,但是有的插件好用但是收费
三、Elasticsearch插件介绍
1、Haed插件:主要是做es集群管理的插件
下载方式:
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...
Downloading ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................DONE
Verifying https://github.com/mobz/elasticsearch-head/archive/master.zip checksums if available ...
NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify)
Installed head into /usr/share/elasticsearch/plugins/head
下载完会在/usr/share/elasticsearch/plugins/目录下产生插件目录
访问:http://ip地址:9200/_plugin/head/
2、Bigdesk插件:性能监控
Github下载:https://github.com/lukas-vlcek/bigdesk
3、cerebro 插件:cerebro是一个简单的网络管理工具
githua下载:https://github.com/lmenezes/cerebro
- QQ精品交流群
-
- 微信公众号
-