ELK是什么
-
ELK Stack 是Elasticsearch、Logstash、Kiban三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。
-
ELK Stack成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELK Stack 具有如下几个优点:
- 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
- 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
- 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
- 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
- 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
Elasticsearch简介
-
Elasticsearch 是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。
-
Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎:
- 一个分布式的实时文档存储,每个字段 可以被索引与搜索;
- 一个分布式实时分析搜索引擎;
- 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据 。
-
它是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。
-
基础模块:
- cluster:管理集群状态,维护集群层面的配置信息;
- alloction:封装了分片分配相关的功能和策略;
- discovery:发现集群中的节点,以及选举主节点;
- gateway:对收到master广播下来的集群状态数据的持久化存储;
- indices:管理全局级的索引设置;
- http:允许通过JSON over HTTP的方式访问ES的API;
- transport:用于集群内节点之间的内部通信;
- engine:封装了对Lucene的操作及translog的调用。
-
elasticsearch应用场景:
- 信息检索;
- 日志分析;
- 业务数据分析;
- 数据库加速;
- 运维指标监控。
部署Elasticsearch
- 实验环境:
主机 | 角色 |
---|---|
server2 | Elasticsearch 主机 |
server9 | Elasticsearch 主机 |
server10 | Elasticsearch 主机 |
- 步骤一:安装elasticsearch,并修改配置文件
vim /etc/elasticsearch/elasticsearch.yml
这里添加我们将要部署elasticsearch的主机,初始化的节点暂时先写server2,因为在server9和server10上还没有部署elasticsearch
- 步骤二:修改系统限制,关闭swap分区
vim /etc/security/limits.conf
vim /etc/elasticsearch/jvm.options
Xmx设置不超过物理RAM的50%,以确保有足够的物理RAM留给内核文件系统缓存。但不要超过32G
vim /usr/lib/systemd/system/elasticsearch.service
swapoff -a
vim /etc/fstab
- 步骤三:启动elasticsearch
systemctl daemon-reload
systemctl start elasticsearch.service
systemctl status elasticsearch.service
在浏览器中访问一下 192.168.0.102:9200
- 步骤四:安装head插件
ElasticSearch-head是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作。
yum install -y nodejs-9.11.2-1nodesource.x86_64.rpm #head插件本质上是一个nodejs的工程,因此需要安装nodejs
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip
修改elk主机ip和端口
cd elasticsearch-head-master/
vim _site/app.js
更换npm源安装
启动head插件
在浏览器中访问 192.168.0.102:9100
修改ES跨域主持
vim /etc/elasticsearch/elasticsearch.yml
systemctl restart elasticsearch.service
-
步骤五:测试创建索引
-
步骤六:给集群添加server9和server10节点(步骤与之前在server2上安装elasticsearch的步骤一样)