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

news/2024/12/26 21:31:38/

一、前文回顾 🔍

在前面的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/news/1558354.html

相关文章

威尔克斯(Wilks)分布

内容来源 应用多元统计分析 北京大学出版社 高惠璇编著 威尔克斯 Λ \Lambda Λ 分布 回顾一元统计中的 F F F 分布 设 ξ ∼ χ 2 ( m ) , η ∼ χ 2 ( n ) \xi\sim\chi^2(m),\eta\sim\chi^2(n) ξ∼χ2(m),η∼χ2(n),且相互独立,则 F ξ / m η…

Pikachu 漏洞练习平台 XXE漏洞学习记录

懒得自己搭建的可以直接FOFA找别人的靶场玩 FOFA "Pikachu 漏洞练习平台" 开始 随便输入个包含命名实体&#xff08;内部实体&#xff09;的xml数据&#xff08;以下代码中xxe是命名实体的实体名称&#xff09;&#xff1a; <?xml version"1.0"?>…

明厨亮灶系统

校园食堂明厨亮灶AI分析系统通过yolov5网络模型技术&#xff0c;校园食堂明厨亮灶监控分析系统针对校园餐厅后厨不按要求戴口罩、不穿厨师帽、陌生人员进入后厨、厨师不穿厨师服、上班时间玩手机、老鼠识别等行为校园食堂明厨亮灶监控分析系统自动识别抓拍告警。Yolo算法&#…

React第十八节 useEffect 用法使用技巧注意事项详解

1、概述 useEffect 是React中一个用于 将组件与外部系统同步的 Hook&#xff1b;在函数式组件中处理副作用函数的 Hook&#xff0c;用于替代类式组件中的生命周期函数&#xff1b; 可以在副作用函数中 实现以下操作&#xff1a; a、请求接口&#xff0c;获取后台提供数据 b、操…

使用 Docker 打包和运行 Vue 应用

在现代开发中&#xff0c;Docker 是一个强大的工具&#xff0c;可以帮助开发者将应用及其依赖打包到一个轻量级的容器中。本文将基于你提供的 Dockerfile 示例&#xff0c;指导你如何使用 Docker 打包和运行一个 Vue 应用。 1. 项目准备 首先&#xff0c;确保你已经安装了 No…

Nginx配置:如何在一个域名下运行两个网站

在现代的Web应用开发中&#xff0c;网站的数量和复杂性越来越高&#xff0c;多个网站使用同一个域名的情况也越来越常见。通过Nginx配置&#xff0c;我们可以轻松实现两个网站共用一个域名&#xff0c;并根据特定的路径、子域名或其他规则对流量进行分发。本文将详细介绍如何使…

【学习总结|DAY020】Java FIle、字符集、IO流

今天学习了Java中存储和读写数据的重要工具&#xff1a;File和IO流。这两者相辅相成&#xff0c;共同构成了Java处理文件和数据的基石。 File&#xff1a;文件操作利器 File类代表文件和目录路径名&#xff0c;可以用来获取文件信息、创建/删除文件/目录、判断文件类型等。 …

STM32-笔记9-电动车报警器

1、项目前期准备 接线如图所示&#xff1a; 2、这里主要用到07、08、09项目工程文件&#xff0c;复制09项目工程文件&#xff0c;重命名为10-电动车报警器项目 把08-继电器定时开闭项目中的alarm文件夹复制到10项目中 将alarm文件夹中的内容加载到项目文件中 3、代码&#x…