云计算运维学习day19——ELFK+kafka架构

发布时间:2026/10/7 5:32:44

云计算运维学习day19——ELFK+kafka架构 目录一.ES数据备份与恢复1.1简单介绍1.2实现数据备份1.2.1配置快照仓库——nfs1.2.2配置ES集群节点1.2.3创建API仓库1.2.4创建快照1.2.5恢复快照1.2.6删除快照1.2.7ES集群管理界面管理快照二.ES集群监控2.1简单介绍2.2启用xpack认证2.2.2修改elasticsearch.yml文件并重启服务2.2.3将生成的证书远程传输给另外两台主机2.2.4完成server2和server3上的配置2.2.5为EFLK中的各个组件设置密码2.2.6访问Cerebro2.2.7访问Logstash2.2.8访问Kibana2.3实现metricbeat监控2.3.1简单介绍2.3.2进入KIbana的内部监测开启Metricbeat2.3.3三台主机安装metricbeat软件包并启动模块2.3.4三台主机编辑elasticsearch-xpack.yml文件2.3.5三台主机修改metricbeat.yml文件2.3.6三台主机重新进入Kibana查看是否配置成功2.4kibana 监控2.4.1三台主机安装filebeat软件包并启动elasticsearch模块2.4.2三台主机编辑elasticsearch.yml文件2.4.3三台主机编辑filebeat.yml文件2.4.4查看日志能否监测到三.ELFKkafka架构3.1简单介绍3.2部署ELFKkafka架构3.2.1准备工作3.2.2三台主机安装 JDK 环境3.3.3三台主机安装 Kafka3.3.4三台主机 Kafka 配置文件修改3.3.5Kafka 集群初始化3.3.6Kafka 集群可用性验证3.3修改FIlebeat 配置文件3.3.1修改filebeat.yml文件3.3.2Kafka 集群任意节点消费者测试3.4Logstash 消费 Topic 消息一.ES数据备份与恢复1.1简单介绍1.说明ES 数据备份与恢复基于“快照 仓库”机制通过将索引数据以增量方式备份到本地文件系统或云存储中实现灾难恢复、数据迁移和历史归档能力。通过 快照Snapshot 和 恢复Restore 机制实现数据备份依赖于共享存储仓库如本地文件系统、S3、HDFS 等1.2实现数据备份说明在server4上配置快照仓库接着在ES集群中每个主机上安装配置nfs指明快照的存储路径最后在ES集群管理界面上交互生成快照和恢复快照或者进入kibana生成快照和恢复快照1.2.1配置快照仓库——nfs说明NFS网络文件系统是一种分布式文件系统协议它允许你在网络上像访问本地文件一样访问远程服务器上的文件和目录。1.安装nfs软件yum install -y nfs-utils2.创建一个目录用于存储拍摄下的ES集群快照mkdir -p /data/es-backup chmod 777 /data/es-backup3.编辑/etc/exports文件并启动nfs服务vim /etc/exports systemctl enable --now nfs1.2.2配置ES集群节点1.安装nfs软件包yum install -y nfs-utils2.创建一个与server4路径相同的路径用于保存同时将Es集群的主机远程挂载到nfs的server端mkdir -p /data/es-backup mount 192.168.7.164:/data/es-backup #远程挂载3.修改estaicsearch.yml文件将快照保存到远程server4的目录下vim /etc/elasticsearch/elasticsearch.yml systemctl restart elasticsearch1.2.3创建API仓库1.进入Kibana控制台输入以下指令创建仓库PUT /_snapshot/my_backup # 仓库名称自定义 { type: fs, # 本地文件系统类型 settings: { location: /data/es-backup, # 与elasticsearch.yml中配置一致 compress: true # 启用压缩可选 } }2.验证仓库是否创建成功GET /_snapshot/my_backup1.2.4创建快照1.定义快照名称PUT /_snapshot/my_backup/snapshot_all_2026.08.11 # 快照名称自定义建议含时间2.备份指定索引PUT /_snapshot/my_backup/snapshot_syslog_2026.08.11 { indices: syslog-*, # 逗号分隔的索引名或通配符 ignore_unavailable: true, # 忽略不存在的索引 include_global_state: false # 是否备份集群全局状态如模板、别名等 }3.列出仓库中所有快照GET /_snapshot/my_backup/_all4.查看单个快照的详细情况GET /_snapshot/my_backup/snapshot_syslog_2026.08.111.2.5恢复快照1.将快照中的所有索引恢复到集群若索引已存在默认不覆盖需指定rename_pattern重命名POST /_snapshot/my_backup/snapshot_syslog_2026.08.11/_restore2.仅恢复快照中的部分索引并可重命名避免冲突POST /_snapshot/my_backup/snapshot_all_20251026/_restore { indices: syslog-2026.08.11, # 仅恢复syslog-2025.10.26索引 rename_pattern: syslog-(\\d), # 匹配原索引名的正则 rename_replacement: restored_syslog-$1, # 重命名 include_global_state: false # 不恢复集群全局状态 }1.2.6删除快照DELETE /_snapshot/my_backup/snapshot_all_2026.08.111.2.7ES集群管理界面管理快照二.ES集群监控2.1简单介绍1.简单说明ES集群监控是通过实时采集集群健康状态、性能指标如查询延迟、索引速率和资源水位CPU、内存、磁盘确保集群稳定运行并提前发现故障隐患的一套可观测性体系。2.2启用xpack认证2.2.1在server1上生成证书cd /usr/share/elasticsearch/ bin/elasticsearch-certutil ca bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 cp elastic-certificates.p12 /etc/elasticsearch cd /etc/elasticsearch/ chown elasticsearch elastic-certificates.p122.2.2修改elasticsearch.yml文件并重启服务vim /etc/elasticsearch/elasticsearch.yml systemctl restart elasticsearch2.2.3将生成的证书远程传输给另外两台主机scp /etc/elassticsearch/elastic-certificates.p12 server2:/etc/elasticsearch/ scp /etc/elassticsearch/elastic-certificates.p12 server3:/etc/elasticsearch/2.2.4完成server2和server3上的配置chown elasticsearch /etc/elasticsearch/elastic-certificates.p12 vim /etc/elasticsearch/elasticsearch.yml systemctl restart elasticsearch.service2.2.5为EFLK中的各个组件设置密码说明这里只需要ES集群中的一台主机设置即可他会自动同步到其他节点上cd /usr/share/elasticsearch/ bin/elasticsearch-setup-passwords interactive2.2.6访问Cerebro说明设置了E在访问EFLK中的任意一个组件时需要在url中输入用户和密码cd elasticsearch-head-master/ npm run start docker start cerebro #启动cerebro2.2.7访问Logstashvim /etc/logstash/conf.d/grok.conf /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf2.2.8访问Kibanavim /etc/kibana/kibana.yml systemctl restart kibana.service netstat -antlp|grep :56012.3实现metricbeat监控2.3.1简单介绍1.说明Metricbeat是一个轻量型的指标采集器通过启用其Elasticsearch模块可以主动从ES集群拉取节点、分片、索引等各项指标数据并将其输送至Elasticsearch或Kibana中进行存储和可视化展示2.3.2进入KIbana的内部监测开启Metricbeat注意ES集群中的所有主机都要完成下列操作2.3.3三台主机安装metricbeat软件包并启动模块说明elasticsearch-xpack模块用于开启Metricbeat对Elasticsearch集群的性能指标采集并支持基于X-Pack的安全认证与加密连接。rpm -ivh metricbeat-7.6.1-x86_64.rpm cd /etc/metricbeat/modules.d metricbeat modules enable elasticsearch-xpack2.3.4三台主机编辑elasticsearch-xpack.yml文件vim elasticsearch-xpack.yml2.3.5三台主机修改metricbeat.yml文件cd /etc/metricbeat vim metricbeat.yml systemctl enable --now metricbeat.service2.3.6三台主机重新进入Kibana查看是否配置成功注意ES集群中的所有机子都完成操作后查看2.4kibana 监控1.说明ES集群中的所有机子都要实现下列步骤2.4.1三台主机安装filebeat软件包并启动elasticsearch模块rpm -ivh filebeat-7.6.1-x86_64.rpm cd /etc/filebeat/modules.d filebeat modules enable elasticsearch2.4.2三台主机编辑elasticsearch.yml文件vim /etc/filebeat/modules.d/elasticsearch.yml2.4.3三台主机编辑filebeat.yml文件vim /etc/filebeat/modules.d/filebeat.yml systemctl enable --now filebeat2.4.4查看日志能否监测到三.ELFKkafka架构3.1简单介绍1.说明ELFKKafka架构是通过引入Kafka消息队列作为缓冲层将日志采集Filebeat与处理Logstash解耦实现高并发场景下的流量削峰填谷保障日志管道不丢失、不阻塞。2.KafkaKafka是一个分布式、高吞吐量的消息队列系统用于在系统之间可靠地传递数据流起到缓冲和解耦的作用。3.2部署ELFKkafka架构3.2.1准备工作1.准备8台CentOS 7虚拟机主机名IP地址角色server1192.168.7.171elasticsearch,filebeatserver2192.168.7.172elasticsearch,filebeatserver3192.168.7.173elasticsearch,filebeatserver4192.168.7.174cerebroserver5192.168.7.175Logstash,Kabanaserver6192.168.7.176Kafkaserver7192.168.7.177Kafkaserver8192.168.7.178Kafka2.完成各个主机上的域名解析3.2.2三台主机安装 JDK 环境rpm -ivh jdk-17.0.17_linux-x64_bin.rpm java -version3.3.3三台主机安装 Kafka官方安装包链接https://kafka.apache.org/community/downloads/https://kafka.apache.org/downloadstar zxf kafka_2.12-3.9.1.tgz -C /opt mv /opt/kafka_2.12-3.9.1 /opt/kafka #重命名 cd /opt/kafka/config/kraft cp server.properties{,.bak} # 备份配置文件 mkdir /opt/kafka/logs # 创建日志目录3.3.4三台主机 Kafka 配置文件修改vim /opt/kraft/server.properties scp /opt/kraft/server.properties server7:/opt/kraft/server.properties scp /opt/kraft/server.properties server8:/opt/kraft/server.properties3.3.5Kafka 集群初始化1.在server6 节点生成储目录唯一的 UUIDKAFKA_CLUSTER_ID$(/opt/kafka/bin/kafka-storage.sh random-uuid) echo ${KAFKA_CLUSTER_ID}2.三台主机用该 uuid 格式化 kafka 存储目录/opt/kafka/bin/kafka-storage.sh format -t 你的UUID -c /opt/kafka/config/kraft/server.properties3.三台节点启动 Kafka/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties jps3.3.6Kafka 集群可用性验证1.Kafka 集群任意节点创建 Topic/opt/kafka/bin/kafka-topics.sh --create --topic testtopics --bootstrap-server localhost:9092 --replication-factor 3 --partitions 3--replication-factor 3设置主题的副本因子为 3即每个分区的副本数量为 3。副本用于数据冗余和高可用性副本数需不能超过集群中 Broker 的总数。--partitions 3设置主题的分区数为 3。分区是 Kafka 并行处理消息的基本单位影响吞吐量和扩展性。分区数一旦创建不可减少。2.选择Kafka 集群的其他节点查看Topic是否创建/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:90923.Kafka 集群任意节点生产者测试/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testtopics4.Kafka 集群任意节点查看主题/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopics --from-beginning5.Kafka 集群任意节点查看 topic 详细信息/opt/kafka/bin/kafka-topics.sh --bootstrap-server server6:9092,server7:9092,server8:9092 --topic testtopics --describe3.3修改FIlebeat 配置文件3.3.1修改filebeat.yml文件vim /etc/filebeat/filebeat.yml filebeat test config -c /etc/filebeat/filebeat.yml #检验文件语法 filebeat test output -c /etc/filebeat/filebeat.yml #测试文件 systemctl restart filebeat3.3.2Kafka 集群任意节点消费者测试/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic apache-logs --from-beginning3.4Logstash 消费 Topic 消息说明进入server5到/etc/logstash/conf.d目录下创建一个kafka.conf配置文件cd /etc/logstash/conf.d vim kafka.conf /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/kafka.conf
延伸阅读

更多相关文章

2026/9/30 22:46:29

如何用 Hugging Face 加载 DeepSeek-V4-Pro-0813?新手完整教程

如何用 Hugging Face 加载 DeepSeek-V4-Pro-0813?新手完整教程 【免费下载链接】DeepSeek-V4-Pro-0813 项目地址: https://ai.gitcode.com/hf_mirrors/deepseek-ai/DeepSeek-V4-Pro-0813 想在本地用 Hugging Face 加载 DeepSeek-V4-Pro-0813 跑推理&#xf…

2026/10/7 5:30:18

固态硬盘主控维修实战:SM2258XT与PS3111开卡救砖全攻略

固态硬盘用着用着突然不认盘、BIOS 里能识别但系统里死活不出现、容量变成 0 字节、盘符还在但双击提示格式化——这些场景我基本每个月都要遇到几次。很多人第一反应是闪存颗粒坏了,或者直接认定数据没救了,但根据我这几年的维修经验,至少一…

2026/10/7 5:30:18

Cadence Allegro差分对设置常见错误与排查方法详解

做硬件的人大都绕不开高速信号。USB、PCIe、以太网、DDR,板子一旦跑到几百兆甚至Gbps级别,Cadence Allegro里的差分对设置就是天天要打交道的活。我见过不少新同事抱着PCB设计教程啃了半天,一上手画高速板,Constraint Manager里飘…

2026/10/7 5:30:18

USB3.0集线器移动硬盘掉线?供电不足诊断与PMOS改造方案

插上移动硬盘的那一刻,我得到的是连续几声“叮咚、叮咚”,盘符在电脑右下角闪了两次又消失,最后彻底无声。拔下来直插主板,硬盘在半秒内正常识别。这种“USB3.0集线器一接硬盘就掉线”的毛病,用过扩展坞、多口Hub的人多…

2026/10/7 5:30:18

2026智能体规模化落地:从概念到工程实战指南

2026年确实可以称得上是智能体规模化落地的元年。我最近在整理这一周的AI圈动向时,感受特别明显:大家讨论的重点已经从“哪个模型又刷了多少分”转移到“智能体到底能帮我完成哪些真实任务”。从对话工具到可自主执行的智能体,这个跳跃比很多…

2026/10/7 5:30:18

GitHub月榜怎么看?从访问加速到项目评估,筛选高价值开源项目

每天刷一遍 GitHub 热榜,已经成了我雷打不动的习惯。说得矫情一点,这就像订报时代的人翻头版,只不过现在的“头版”一天一换,而且经常失真——今天的日榜第一,可能只是因为一个梗、一次转发、或者一个新模型 Demo 的截…

2026/10/7 5:25:18

Claude Code 卡住转圈?从 Spinner 状态识别到完整排查方案

说实话,用Claude Code最让人血压上升的画面,就是那个spinner一直在转:转十秒、转三十秒、转一分钟,屏幕上一行字都没多。不管你是刚装好claude code的新手,还是已经在VSCode里配好插件的老手,遇到这种"…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑