学习目标:
掌握Elasticsearch集群的简单使用
学习内容:
Elasticsearch介绍
Elasticsearch:存储、搜索和分析
Elastcisearch是ELK核心的分布式搜索和引擎。logstash和beats有助于收集,聚合和丰富你的数据并将其存储在Elasticsearch中,使用kibana,可以交互式探索,可视化和共享对数据的见解,并管理和监视堆栈。Elasticsearch是发生索引,搜索和分析数据的地方
Elastcisearch为所有类型的数据提供近乎实时的搜索和分析
支持的数据类型:
- 结构化文本
- 非结构文本
- 数字数据
- 地理空间数据
文档
- Elasticsearch是面向文档的,文档是所有可搜索数据的最小单位
- 文档会被序列化成JSON格式,保存在Elasticsearch中
- 每个文档都有一个唯一ID
文档源数据
索引
ES集群部署
elasticsearch是一个分布式、restful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例;它集中存储数据。
集群特征
高可用:节点可用性,数据可用性
可扩展:请求量提升、数据增长
集群中的节点角色
master-eligible(合格) Node和master Node
- 每个节点启动后,默认就是一个master eligible节点
- master-eligible节点可以参加选主流程,称为master节点
- 当第一个节点启动时候,它会将自己选举成master节点
- 每个节点上都保存了集群的状态,只有master节点才能修改集群的状态信息(所有节点的信息、所有的索引和其相关的mapping与setting信息、分片的路由信息)
date node 和coordinating(协调) node
- date node:可以保存数据的节点,负责保存分片数据,在数据扩展上起到至关重要的作用
- coordinating node:负责接收client的请求,将请求分发到合适的节点,最终把结果汇集到一起,每个节点默认都起到coordinating node的职责
分片
主分片和副本:
- 主分片:用以解决数据水平扩展的问题,通过主分片可以将数据分布到集群内的所有节点上,一个分片是一个运行的Lucene的实例,主分片数在索引创建时指定,后续不允许修改,除非Reindex
- 副本:用以解决数据高可用的问题,是主分片的拷贝,副本分片数可以动态调整,增加副本数,可以在一定程度上提供服务的可用性(读取的吞吐)
部署步骤
- 首先导入Elasticsearch的gpg key,用于服务包完整性校验
#rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
- 创建elasticsearch服务的yum源文件,在/etc/yum.repo.d目录下
[elasticsearch]
name=Elasticsearch repostiory for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
- 配置好yum仓库后,开始安装
#yum -y install elasticsearch
- 下载好elasticsearch软件包之后,运行elasticsearch
#systemctl daemon-reload
#systemctl enable elasticsearch.service
#systemctl start elasticsearch.service
#systemctl status elasticsearch.service
-
服务启动之后可以通过命令查看进程端口和状态
-
二进制方式,下载二进制压缩包
#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-linux-x86_64.tar.gz
#tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local/
- 修改3台elasticsearch集群的配置文件
参数说明
cluster.name #集群名称,各节点配置成相同的集群名称
node.name #节点名称,各节点配置不同
node.data #指示节点是否是数据节点,数据节点包含并管理索引的一部分
path.data #各节点数据存放目录
network.host #绑定节点IP
http.port #监听端口
path.logs #日志存放目录
discovery.seed.hosts #指定集群成员,用于主动发现他们,所有成员都要写进来,包括自己,每个节点中应该写一样的信息
cluster.initial.master.nodes #指定有资格成为master的节点
http.cores.enabled #用于允许head插件访问ES
http.cores.allow-origin #允许的源地址
- 启动集群
在每个节点上启动elasticsearch进程
注意:
-
yum方式直接启动服务即可,以下方式为二进制方式的启动
- 切换到普通用户,(yum安装的直接使用systemctl start elastcisearch) - 执行如下命令 ./bin/elasticsearch -d (-d 后台运行)
-
默认端口号是:
9200 用于外部访问的监听端口,比如查看集群状态,向其传输数据,查询数据等
9300 用户集群中节点之间的互相通信,比如主节点的选举,集群节点信息的通告等 -
查看端口的命令:netstat -luntp
注意:如果集群配置错误,想重新初始化集群,只需要删除数据目录,重启服务即可 -
查看集群健康状态
curl -X GET "localhost:9200/_cat/health?v"
三种不同状态的含义
- 黄色:如果仅运行单个elasticsearch实例,则集群状态将保持黄色,单节点集群具有完整的功能,但是无法将数据复制到另一个节点以提供弹性
- 绿色:副本分片必须可用,集群状态为绿色
- 红色:某些数据不可用
- 查看集群节点信息
curl -X GET "localhost:9200/_cat/nodes?v"
ES集群测试
使用filebeat收集nginx日志,输出到logstash,再由logstash处理完数据后输出到Elasticsearch
配置步骤
确保Elasticsearch集群可用
-
logstash配置
-
验证Elasticsearch是够创建索引
目前logstash-2022.10.24-000001是Elasticsearch自动创建的索引 -
创建自己需要的索引
1、把访问日志access.log中的内容单独放到一个索引中
2、把错误日志error.log中的内容单独放到另一个索引中
更新配置文件
-
logstash未使用filebeat内置模块的情况
文章来源:https://www.toymoban.com/news/detail-407867.html -
logstash使用filebeat内置模块的情况
文章来源地址https://www.toymoban.com/news/detail-407867.html
到了这里,关于ELK分析系统----Elasticsearch集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!