ELK系列-(六)Redis也能作为消息队列?(下)

embedded/2024/12/26 13:16:26/

一、前文回顾 🔍

在前面的ELK系列中,我们已经搭建了ELK的核心组件,包括:

  • ELK系列-(一)Docker部署ELK核心组件
  • ELK系列-(二)LogStash数据处理的瑞士军刀
  • ELK系列-(三)Kibana 数据可视化的艺术家
  • ELK系列-(四)轻量级的日志收集助手-Beat家族
  • ELK系列-(五)指标收集-MetricBeat(上)
  • ELK系列-(六)Redis也能作为消息队列?(上)

系统架构图 📊

Screenshot 2024-12-10 at 13.46.34

有关整个系统架构的部署,您可以回顾前面的文章。今天,我们将继续探讨Redis在ELK系统中的落地

关于Redis的选型、Beats的部署使用,请翻阅往期博客哦

二、Beat发送消息到Redis

第一步就是将Beats的消息发送到Redis,因此我们需要修改Beats的配置如下:

output.redis:# 启用或禁用输出模块的布尔标志。enabled: true# 要连接的 Redis 服务器列表。如果启用了负载均衡,则事件将分发到列表中的服务器。如果某个服务器无法访问,则事件仅分发到可访问的服务器。# hosts 设置支持带有自定义密码的 redisrediss URLs,例如 redis://:password@localhost:6379。hosts: ["121.**.60.**:6379"]# 用于认证 Redis 的密码。默认不使用认证。password: your_password# 事件发布到的 Redis 数据库号。默认值为 0。db: 9# 用于发布事件的 Redis 数据类型。如果数据类型为 list,则使用 Redis RPUSH 命令。如果数据类型为 channel,则使用 Redis PUBLISH 命令。默认值为 list。datatype: list# 配置的每个主机用于发布事件到 Redis 的工作线程数。将此设置与负载均衡选项一起使用。例如,如果你有 2 个主机和 3 个工作线程,总共启动 6 个工作线程(每个主机 3 个)。worker: 1

三、 LogStash从Redis获取消息

改为多Pipeline

以前单管道,现在要引入Beats消息,要改为多管道

# 原本
/usr/share/logstash/pipeline/logstash.conf
# 改造后
/usr/share/logstash/pipeline/conf.d/metricbeat.conf
/usr/share/logstash/pipeline/conf.d/application_log.conf

配置文件(logstash.yml)也挂载出来:

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]
path.config: "/usr/share/logstash/pipeline/conf.d/*.conf"
metricbeat配置

其配置存在特殊性,输出如果和普通的一样配置,不会纳入Kibana的Observability视图

经过反复阅读文档,调试,发现Metricbeat使用的是数据流,即多个索引的特殊组合。所以此处要使用数据流作为输出

数据流会在下一篇讲哦

修改metricbeat.conf,使用如下配置:

# 从redis获取
input {redis {host => "121.**.60.**"port => 6379password => "**"data_type => "channel"key => "metricbeat"db => 9threads => 1tags => ["metricbeat"]}
}# metricbeat收集的数据打时间标签
filter {if "metricbeat" in [tags] {date {match => ["timestamp", "yyyy-MM-dd HH:mm:ss"]timezone => "Asia/Shanghai"target => "@timestamp"}}
}# 指定输出,数据流相关信息
output {if "metricbeat" in [tags] {elasticsearch {hosts => ["es:9200"]data_stream => truedata_stream_type => "metrics"data_stream_dataset => "8.15.0"data_stream_namespace => "metricbeat"}}
}

此处不太能写入metricbeat原生数据流,写入到新数据流就可以,Kibana能正常识别

完成之后可以到kibana中的索引管理里面去看哦!


http://www.ppmy.cn/embedded/148901.html

相关文章

helm函数

默认函数介绍 在 Helm 中,default 函数用于为变量提供默认值,以确保模板渲染不会因为变量未定义或为空值而失败。基本语法如下: {{ default "默认值" .变量 }} 或者: {{ .Valumes.XX | default "latest" }}…

aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发

aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发 学习内容: 使用本地EC2中部署docker应用使用ECS的EC2模式进行容器开发使用ECS的Fargate模式进行容器开发 1. 使用本地EC2中部署docker应用 docker整体 这里展示了docker的整体流程。 开发阶段 编写dockerfile…

比 SaaS 更具性价比,火山引擎云数仓 ByteHouse 上新“云托管”模式

本地部署、SaaS 部署、私有化部署.....都是常见的软件部署方式。企业往往从安全、成本、易用性等多角度综合选择部署方式。SaaS 往往被认为初始成本更低、具备更强扩展性,但由于数据存储在软件供应商的服务器上,一些对数据安全和隐私要求高的企业会对此存…

HarmonyOS NEXT 实战之元服务:静态案例效果--- 手机一键加速、手机垃圾清理

背景: 前几篇学习了元服务,后面几期就让我们开发简单的元服务吧,里面丰富的内容大家自己加,本期案例 仅供参考 先上本期效果图 ,里面图片自行替换 效果图1完整代码案例如下: import { authentication } …

java高频面试之SE-05

面试官:java中为什么有多态? 面试官你好!Java 中有多态主要是为了实现灵活性和可扩展性。通过多态,可以用统一的接口处理不同的对象,从而提高代码的可维护性和可复用性。以下是多态的几个关键原因: 1. 代…

不在广东想把自己的IP变成广东怎么办

点击这篇文章的读者中,很多可能需要将自己的本机IP地址修改为广东省的IP地址。那么如何操作才能切换到广东省呢?如果您人不在广东省内,但是在国内的其他地区,这时可使用支持切换IP地址的软件进行辅助。 随着代理IP技术在网络中得到…

如何根据一系列提交文件,匹配对应的git提交记录?用ai

显示提取提交文件记录的git历史(用的豆包写一下) 显示每次提交涉及的文件名及提交注释等基本信息 可以使用以下命令格式: git log --name-only --prettyformat:“%an - %s” myFolder/ –name-only选项的作用是在显示提交信息时&#xff0…

【Leetcode】855. 考场就座

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 在考场里,有 n n n 个座位排成一行,编号为 0 0 0 到 n − 1 n - 1 n−1。 当学生进入考场后,他必须坐在离最近的人最远的座位上。如果有多个…