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

news/2025/9/22 12:53:29/文章来源:https://www.cnblogs.com/lxjshuju/p/19104955

文章目录

  • 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.mzph.cn/news/909330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《BOE解忧实验室》第四季圆满收官 以科技重塑文化生活新范式

9月10日,由 BOE(京东方)自制的技术科普综艺节目《BOE解忧实验室》第四季迎来收官,全平台累计曝光量突破4.79亿,成为科技企业破圈营销行业示范标杆。作为中国科技企业首档技术科普综艺,本季节目以“中国地标+科技…

洛谷P2261 [CQOI2007] 余数求和

原题 题目描述 给出正整数\(n\)和\(k\), 请计算 \[G(n, k) = \sum_{i=1}^{n} k \bmod i \]其中\(k \bmod i\)表示k除以i的余数。 输入格式 输入只有一行两个整数,分别表示\(n\)和\(k\)。 输出格式 输出一行一个整数表…

负载排查和优化

负载排查和优化 Linux 网络优化与性能分析完全指南1️⃣ 中断与软中断基础 1.1 中断(IRQ)概念定义:CPU 在执行任务时,外设或内核事件请求 CPU 立即响应。作用:及时处理外设请求和系统事件,保证系统响应及时、稳定…

挑战骑行距离新记录:46公里

挑战骑行距离新记录:46公里周末要去江浦一趟,之前都是坐地铁转公交,这次突发奇想,干脆骑车去,反正时间比较充裕,于是早上8点半左右从住处出发,到中午11点53分到达,全长46公里左右(中间还走错一段路),用时3小…

arc206 总结

arc206 总结 这次前面切得比较快,然而 D 题漏了情况卡到最后也没过。E 题也属于中等难度的题。 A 枚举题目中的 \(L\),一个连续段只能有一个 \(L\),对答案的贡献为其后面不等于 \(a_L\) 的个数。 复杂度 \(O(n)\)。…

科研必读|提升酿酒酵母表达蛋白产量的关键技术

科研必读|提升酿酒酵母表达蛋白产量的关键技术酿酒酵母作为真核蛋白表达的经典宿主,其具有蛋白折叠、分泌途径、翻译后修饰(如糖基化、二硫键结合等)的能力,是许多科研与工业蛋白生产的首选平台。但实践中常遇到表…

【RK3576】【Android14】如何在Android14下单独编译kernel-6.1? - 详解

【RK3576】【Android14】如何在Android14下单独编译kernel-6.1? - 详解2025-09-22 12:41 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: au…

完整教程:栈与队列的实现方式与应用解惑

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:uniapp、devceo华为鸿蒙运行模拟器报错:未开启Hyper-V

完整教程:uniapp、devceo华为鸿蒙运行模拟器报错:未开启Hyper-Vpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

深入解析:08_多层感知机

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

9.8C++作业 - 实践

9.8C++作业 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Co…

(一)React面试(虚拟DOM/类组件) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

浏览器访问页面卡顿刷新页面方法

浏览器访问页面卡顿刷新页面方法浏览器访问页面卡顿刷新页面方法 同一个网址在一个浏览器中开了多个tab页窗口,会出现卡顿等转圈圈的现象 扩展浏览器缓存空间通过修改启动参数增加缓存容量: "C:\Program Files …

完整教程:散斑深度相机原理

完整教程:散斑深度相机原理pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

k8s Understanding Kubernetes Security Components

Understanding Kubernetes Security Components In Kubernetes, security is implemented through several components that work together to control access and permissions. Lets explore ServiceAccounts, Roles,…

如何用 Dify 无代码工作流实现 AI 自动化抓取与分析 LinkedIn 招聘数据

如何用 Dify 无代码工作流实现 AI 自动化抓取与分析 LinkedIn 招聘数据在本指南中,您将学习到以下内容:Dify 是什么? 为什么要将它与一体化搜索插件整合? 将 Dify 与 Bright Data 插件集成的优势 创建 Dify 搜索工…

2025/9/22

2025/9/22学习统一建模语言 学习数据结构,链表

WSL+共享文件夹搭建zephyr工作环境

之前使用window是编译,但是发现编译真的太慢了,所以还是尝试安装ubuntu来开发: 我这里有一个搭建好的,可以直接wsl安装,但是不支持完整的SDK工具,只支持esp32和arm sdk版本是 0.17.4,只安装了(arm,esp32, es…

如果 Spring Cloud Feign 配置了 OkHttp3 非阻塞 IO(NIO),那么还需要reactor 模型来提高性能吗

目录先明确核心区别:OkHttp3与Reactor模型的定位为什么可能还需要Reactor模型?何时需要引入Reactor?何时可以不引入Reactor?总结 如果 Spring Cloud Feign 配置了 OkHttp3 非阻塞 IO(NIO),那么还需要reactor 模…

数据结构-单链表基础2

0.基本结构和函数 前置内容,可以访问数据结构-单链表基础1点击查看代码 typedef int ElemType; typedef struct LNode {ElemType data;struct LNode *next; } LNode, *linkList; void CreateList_R(linkList *L, int …