当前位置: 首页 > news >正文

ES集群部署-EFK架构实战 - 实践

文章目录

  • ElasticStack概述
    • 什么是ElasticStack
  • ElasticStack架构设计
  • ElasticSearch单点部署
    • 下载ES软件包(7.17.29)
    • ️安装ElasticSearch
    • 修改ElasticSearch的配置文件
    • 启动ES服务
    • 访问ES的WebUI
    • 浏览器访问
  • ES集群的颜色分别代表什么含义?
    • red: 红色
    • yellow: 黄色
    • green: 绿色
  • ElasticSearch集群常用术语
    • 索引:index
    • 分片:shard
    • 副本:replica
    • 文档
  • ElasticSearch集群部署
    • 修改配置文件
    • 重置单点配置
    • 同步配置文件
    • 重启ES集群
    • 验证集群状态
  • ElasticSearch的DSL语句初体验
    • 写入数据
    • 查询指定文档id的数据
    • 查看所有数据
    • ✂️删除数据
  • Kibana环境部署
    • 下载Kibana(7.17.29)
    • 安装Kibana
    • 修改Kibana的配置文件
    • 启动Kibana服务
  • Kibana的基础使用
  • Filebeat环境部署
    • 下载filebeat
    • 安装Filebeat
    • 修改Filebeat的配置文件
  • EFK架构实战案例
    • 编写配置文件
    • 启动Filebeat实例
    • 发送测试数据
    • ️Kibana创建索引模式
    • 查看索引(message)
  • 总结

ElasticStack概述

什么是ElasticStack

所谓的ElasticStack是elastic公司的推出的技术栈,早期业界有个很出名的ELK就来自于这家公司。

后来随着这家公司的工具链增多,后面更名elk stask为elasticStack。

ElasticStack架构设计

ElasticSearch: 数据存储

Logstash: 数据采集,处理

Kibana: 数据展示,可视化

ElasticSearch单点部署

下载ES软件包(7.17.29)

官方网站:https://www.elastic.co/cn/

复制下载链接到linux上

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.29-amd64.deb

️安装ElasticSearch

dpkg -i elasticsearch-7.17.28-amd64.deb

修改ElasticSearch的配置文件

vim /etc/elasticsearch/elasticsearch
cluster.name: zhu
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node

相关参数说明:

cluster.name 集群的名称

path.data ES的数据存储路径。

path.logs ES的日志存储路径。

network.host ES服务监听的地址。

discovery.type 指的ES集群的部署类型,此处的"single-node",表示的是一个单点环境。

启动ES服务

systemctl enable --now elasticsearch.service

端口说明:

9200:ES集群对外提供服务的端口,使用是http|https协议。

9300:ES集群内部数据同步,master选举的端口,使用tcp协议。

9300优于9200端口启动

访问ES的WebUI

curl http://10.0.0.91:9200/_cat/nodes
curl http://10.0.0.91:9200

浏览器访问

ES集群的颜色分别代表什么含义?

red: 红色

代表有部分主分片无法访问。一般情况下不会出现,如果数据量较大时启动时可能会短暂出现。

yellow: 黄色

代表有部分副本分片无法访问。处于亚健康状态。

green: 绿色

代表所有的主分片和副本分片均可以正常访问。

ElasticSearch集群常用术语

索引:index

ES集群数据存储的逻辑单元。对于客户端而言可以进行数据的读写。

分片:shard

一个索引对应一个或多个分片。当该索引的分片数量大于1时,意味着数据可以实现分布式存储。

副本:replica

一个分片可以有0个或多个副本。当分片的数量大于等于1时,就可以对分片进行数据备份。

注意,副本分片和主分片的数据不能在同一个节点上,主分片负责数据的读写,而副本分片负责备份主分片,且可以负责读的负载均衡。

文档

分片和副本存储的都是文档,文档是用户存储的数据实际载体。

文档分为元数据和源数据。

源数据指的是用户的实际数据。

元数据是用来描述源数据的数据,比如该文档术语哪个索引,文档的唯一编号等信息。

ElasticSearch集群部署

修改配置文件

1.修改配置文件
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: zhu-cluster
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["10.0.0.91", "10.0.0.92","10.0.0.93"]
cluster.initial_master_nodes: ["10.0.0.91", "10.0.0.92","10.0.0.93"]
2.检查
egrep -v '^#|^$' /etc/elasticsearch/elasticsearch.yml

discovery.seed_hosts 指的ES集群主机地址列表。

cluster.initial_master_nodes 指定ES集群能够参与master选举的主机列表。

重置单点配置

1.停止ES服务
systemctl stop elasticsearch
2.查看监听端口
ss -lntup | egrep "9200|9300"
3.清除日志文件
rm -rf /var/log/elasticsearch/*
rm -rf /var/lib/elasticsearch/*

同步配置文件

scp /etc/elasticsearch/elasticsearch.yml 10.0.0.92:/etc/elasticsearch/
scp /etc/elasticsearch/elasticsearch.yml 10.0.0.93:/etc/elasticsearch/

重启ES集群

[root@elk91 ~]# systemctl enable --now elasticsearch.service
[root@elk92 ~]# systemctl enable --now elasticsearch.service
[root@elk93 ~]# systemctl enable --now elasticsearch.service

验证集群状态

http://10.0.0.91:9200/_cat/nodes

ElasticSearch的DSL语句初体验

写入数据

curl --location --request POST 'http://10.0.0.91:9200/_bulk' \
--header 'Content-Type: application/json' \
--data-raw '{ "create" : { "_index" : "zhu", "_id" : "1001" } }
{ "name" : "猪八戒","hobby": ["猴哥","高老庄"] }
{ "create" : { "_index" : "zhu", "_id" : "1002" } }
{ "name" : "沙和尚","hobby": ["流沙河","挑行李"] }
{ "create" : { "_index" : "zhu", "_id" : "1003" } }
{ "name" : "白龙马","hobby": ["大师兄,师傅被妖怪抓走啦"] }
'

查询指定文档id的数据

curl -s --location --request GET '10.0.0.93:9200/zhu/_doc/1003' | jq

curl -s --location --request GET '10.0.0.93:9200/zhu/_search' \
--header 'Content-Type: application/json' \
--data-raw '{
"query": {
"match": {
"hobby": "猴哥"
}
}
}' | jq

查看所有数据

curl -s --location --request GET '10.0.0.93:9200/zhu/_search' | jq

✂️删除数据

curl -s --location --request DELETE '10.0.0.93:9200/zhu/_doc/1003' | jq

Kibana环境部署

下载Kibana(7.17.29)

官网下载地址:https://artifacts.elastic.co/downloads/kibana/kibana-7.17.29-amd64.deb

安装Kibana

dpkg -i kibana-7.17.29-amd64.deb

修改Kibana的配置文件

vim /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]
i18n.locale: "zh-CN"

相关参数说明:

server.port: 服务监听的端口。

server.host: 服务监听的地址。

elasticsearch.hosts: kibana管理ES集群的地址。

i18n.locale: kibana的语言。

启动Kibana服务

systemctl enable --now kibana.service

Kibana的基础使用

选择自己浏览

选择索引管理

选择索引模式

创建索引模式

选择Discover

选定需要查看的字段

Filebeat环境部署

下载filebeat

官网下载:https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.29-amd64.deb

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.29-amd64.deb

安装Filebeat

dpkg -i filebeat-7.17.29-amd64.deb

修改Filebeat的配置文件

mkdir /etc/filebeat/config
cd /etc/filebeat/config/
vim 01-stdin-to-console.yaml
filebeat.inputs:
- type: stdin
output.console:
pretty: true

查询官方文档:https://www.elastic.co/guide

选择对应的版本

选择inputs

选择stdin标准输入

EFK架构实战案例

编写配置文件

1.备份配置文件
cp 01-stdin-to-console.yaml 02-tcp-to-es.yaml
2.修改配置文件
vim 02-tcp-to-es.yaml
filebeat.inputs:
- type: tcp
host: "0.0.0.0:9000"
#output.console:
# pretty: true
# 将数据写入到ES集群
output.elasticsearch:
# 指定ES集群地址
hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]
# 指定ES的索引名称
index: filebeat-tcp-xixi
# 禁用索引的生命周期,否则自定义索引名称无效
setup.ilm.enabled: false
# 定义索引模板
setup.template.name: "filebeat-tcp"
# 定义索引模板的匹配模式
setup.template.pattern: "filebeat-tcp*"
# 如果索引模板已经存在是否覆盖
setup.template.overwrite: false
# 配置索引模板
setup.template.settings:
# 指定分片数量
index.number_of_shards: 3
# 指定副本数量
index.number_of_replicas: 0

启动Filebeat实例

filebeat -e -c /etc/filebeat/config/02-tcp-to-es.yaml

发送测试数据

echo zhu | nc 10.0.0.92 9000

️Kibana创建索引模式

查看索引(message)

总结

  • ElasticStack架构组成部分
    • ElasticSearch
    • Kibana
    • Filebeat
    • Logstash
  • elasticsearch单点部署
  • elasticsearch集群部署
  • Kibana环境部署
  • Filebeat环境部署
  • EFK架构数据流走向

http://www.gsyq.cn/news/9480.html

相关文章:

  • 《BOE解忧实验室》第四季圆满收官 以科技重塑文化生活新范式
  • 洛谷P2261 [CQOI2007] 余数求和
  • 完整教程:uniapp、devceo华为鸿蒙运行模拟器报错:未开启Hyper-V
  • 深入解析:08_多层感知机
  • (一)React面试(虚拟DOM/类组件) - 详解
  • 浏览器访问页面卡顿刷新页面方法
  • 完整教程:散斑深度相机原理
  • k8s Understanding Kubernetes Security Components
  • G1垃圾回收过程
  • Trellix自动化大规模修复开源漏洞,已修补超6万个项目
  • 人形机器人 —— 电机控制的三种模式 —— 力矩、速度、位置
  • 解决Windows更新后WPF代码报TypeLoadException异常的困难
  • PC与基恩士PLC通信的C#实现
  • Excel 表格技能
  • rk3588的ai功能和deepseek
  • EPSON L1300打印机清零教程
  • tomcat CPU数量和线程数的关系
  • python处理Excel单机小程序:匹数据,增强版VLookup
  • CF623B Array GCD
  • Python爬虫实现双色球历史数据抓取
  • 酵母细胞工厂全球调控策略研究进展:从遗传编辑到智能响应
  • Java实现双色球历史开奖对比器
  • 成都恒利泰HT-SCA-4-10+是一款1分4射频功分器
  • 研发项目管理能力建设路线图
  • 好用的提示词
  • 使用 AI app 模板扩展来创建基于订制数据进行聊天的 .NET AI 应用
  • 用光学计算加速AI模型中的卷积和矩阵乘法操作
  • 船舶运动控制,PID控制算法,反步积分控制器
  • 光隔离探头与高压差分探头的可替代性讨论
  • 【笔记】人工智能原理