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

server/2024/12/27 21:50:25/

一、前文回顾 🔍

在前面的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/server/153249.html

相关文章

【提审】Android包提审报权限问题

问题:华为应用市场审核不通过 平台审核检测详情: 日志: 自检工具:frida-server【Unity&Android】安卓app自测应用隐私相关获取和申请权限_apk 隐私合规 自测-CSDN博客 参考资料:Unity启动时获取了android_id等设…

机器学习之scikit-learn(简称 sklearn)

scikit-learn(简称 sklearn)是 Python 生态中一个非常流行且强大的机器学习库,支持各种机器学习算法和工具。 核心模块和功能 监督学习 (Supervised Learning): 分类 (Classification): 支持的算法:KNN、SVM、决策树、…

生成式AI:药学科普的新引擎

在信息爆炸的时代,药学知识的普及显得尤为重要。而今,生成式人工智能(Generative AI)正以其强大的内容生成和数据分析能力,悄然改变着传统的药学科普模式。它不仅能加速信息的传递,更能为患者提供个性化、易…

深入探讨C++标准输入输出流:iostream

C标准库中的输入输出流(iostream)是处理数据输入和输出的核心部分,提供了灵活且高效的方式来读写各种数据类型。通过理解和运用iostream,开发者可以实现丰富的输入输出功能,从而增强程序的交互性和用户体验。本文将深入探讨C的标准输入输出流…

轮播图带详情插件、uniApp插件

超级好用的轮播图 介绍访问地址参数介绍使用方法(简单使用,参数结构点击链接查看详情)图片展示 介绍 带有底部物品介绍以及价格的轮播图组件,持续维护,uniApp插件,直接下载填充数据就可以在项目里面使用 …

OpenAI 展示全新桌面版 ChatGPT

有人说:一个人从1岁活到80岁很平凡,但如果从80岁倒着活,那么一半以上的人都可能不凡。 生活没有捷径,我们踩过的坑都成为了生活的经验,这些经验越早知道,你要走的弯路就会越少。 今天凌晨,Open…

12寸半导体厂等保安全的设计思路

等级保护(等保)二级和三级的主要区别在于安全要求的严格程度、所需部署的安全措施和设备、以及对安全事件响应和处理的能力。以下是等保二级和三级之间的一些关键区别: 一、 安全要求严格程度: - 等保二级:适用于需要较高安全保护的信息系统,要求能够防范轻微的恶意攻击…

Partition Strategies kafka分区策略

原文链接 Kafka Partition Strategy 分区策略简介 分区增加了并行化并允许Kafka扩展。存在许多将消息分发到主题分区的策略。在我们深入研究每种策略的背景之前,下面的表格给出了每种策略的简要概述。 Kafka消息由生产者发送,由消费者接收。这两种策略…