ELK是elasticsearch、logstash、kibana的组合简称,安装时,三个软件的版本需要匹配。
其中elasticsearch主要用来存储检索数据和数据处理,logstash主要用来数据采集和过滤然后给es,kibana主要从es里面加载数据然后展示。
1. elasticsearch简介
Elasticsearch 是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。
Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎:
一个分布式的实时文档存储,每个字段 可以被索引与搜索
一个分布式实时分析搜索引擎
能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
基础模块:
1 | cluster:管理集群状态,维护集群层面的配置信息。
2 | alloction:封装了分片分配相关的功能和策略。
3 | discovery:发现集群中的节点,以及选举主节点。
4 | gateway:对收到master广播下来的集群状态数据的持久化存储。
5 | indices:管理全局级的索引设置。
6 | http:允许通过JSON over HTTP的方式访问ES的API。
7 | transport:用于集群内节点之间的内部通信。
8 | engine:封装了对Lucene的操作及translog的调用。
elasticsearch应用场景有:
信息检索
日志分析
业务数据分析
数据库加速
运维指标监控
2 . elasticsearch安装与配置
准备三台虚拟机,分别给2G的内存,先建立单节点,后面创建集群。
vm1 | 172.25.10.11 |
---|---|
vm2 | 172.25.10.12 |
vm3 | 172.25.10.13 |
vm1和vm2是上次实验留下来的虚拟机,所以新建vm3,清理vm1和vm2的实验环境,使其环境纯净
每个节点都要添加vm1 vm2 vm3的解析
准备elasticsearch的安装包,官网下载https://elasticsearch.cn/download/
安装软件,7.6版本自带jdk,可以卸掉之前的jdk
编辑主配置文件
集群名称为my-es ,节点名称为vm1
0.0.0.0任何主机都可以访问,端口为9200
设定发现的主机有vm1,vm2,vm3 初始化节点为vm1
启动服务,开启开机自启,查询9200端口
访问vm1的9200端口,测试成功
我们之前修改了集群名称,查看日志
此处可以禁用swap分区,实验效果更加流畅,不禁用swap也可以
3、搭建elasticsearch集群
给vm2和vm3也安装elasticsearch
将vm1的配置文件发送给vm2和vm3,只修改一个节点名称
vm2和vm3设置开机自动启动elasticsearch并启动
分别测试两个IP的9200端口
4. elasticsearch可视化方法1——cerebro插件
原来的elasticsearch界面不美观,我们可以安装部署图形化界面
cerebro是镜像,正好真机是8.2的红帽系统,自带podman,所以在真机导入镜像
podman run -d --name cerebro -p 9000:9000 lmenezes/cerebro
运行该镜像,默认开放9000端口
访问真机IP的9000端口,输入需要监听的IP master: http://172.25.10.11:9200
成功,点击node,可以看到三个节点
5、elasticsearch可视化方法2——elasticsearch-head插件
elasticsearch-head是elasticsearch自带插件
下载elasticsearch-head 官网https://github.com/mobz/elasticsearch-head/archive/master.zip
head插件本质上是一个nodejs的工程,因此需要安装nodejs
https://mirrors.tuna.tsinghua.edu.cn/nodesource/rpm_9.x/el/7/x86_64/nodejs-9.11.2-1nodesource.x86_64.rpm
zip文件解压需要unzip解压工具,所以也需要安装
解压master.zip
npm源较慢,更换cnpm源安装
# cd elasticsearch-head-master/
# npm install -g cnpm --registry=https://registry.npm.taobao.org
查看版本号
安装bzip2,(安装cnpm需要用到)
yum install bzip2 -y
安装cnpm
进入子目录,查看app.js文件
可以看到监控的是9200本机IP9200端口
vm1后台运行head插件, 端口是9100
查看9100端口开启
进入目录修改elasticsearch配置文件
允许跨域,*表示支持所有域名
重启服务
访问172.25.10.11:9100,连接172.25.10.11:9200,可以看到三个节点,*表示master节点
在复合查询里创建一个索引
查看es的状态
绿色代表正常
灰色标识没有副本
黄色代表没有主分片丢失