日志监控思路分享,只监控日志内容,不存储

news2025/6/26 7:40:15

有一个这样的需求,就是实时监控日志文件的内容,不需要存储,仅当某行日志内容触发某个规则时调用一段业务逻辑就行了。比如用户触发限流规则,就将其封禁并发送钉钉通知到运维群。

看到这个需求首先想到的就是日志采集工具,如:FileBeat、Flume、Logstash、Vector。随即对这些采集工具进行了对比了解,对于当下需求都显得太过重量级,也就是说杀鸡焉用牛刀。

那么就尝试自己设计一个监控程序吧。

首先需要一个功能来实时读取日志文件,类似于 Linux 的 tail -n 1 xxx.log,可以将其称为 watcher 模块。watcher 模块读取的数据需要进行规则匹配。最简单的做法就是对字符串进行 contains 判断,类似于 |grep rule,将这个功能称为 rules 模块。

接着就是创建项目和做技术选型了。

从前面知道之所以要设计一个自己的监控程序,就是要做到轻量级,那么肯定要支持 native 部署,不能有运行时依赖。再考虑到要支持可扩展性(多规则、规则自定义和动态业务代码执行)。基于这两点考虑 Java 肯定不适合干这事了,Java 虽然有规则引擎如 drools 或者直接用 Groovy 也可以做的可扩展性,但 Java 对运行时依赖太重,即使用 GraalVM 打成 native 包,也不一定就好用。

因此,笔者选择使用 Rust 来开发做 watcher 模块开发,并集成 Lua 引擎到项目中,使用 Lua 脚本来提供可扩展性。Rust 高性能和可靠性非常适合来做这种非业务型系统开发,而 Lua 引擎极小的体积与 Rust 结合后,又为其带来了动态性。

那么就衍生出了以下结构。

watcher 实时采集日志,通过回调 scripts 中的 Lua rules 触发业务逻辑。scripts 依赖的公共类 Lua 函数和第三方库放在 lib 中。遵循需求,最终结构如下图。

未来要增加更多的业务规则,只要编写新的 Lua 脚本放到 scripts 目录中就可以了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1584198.html

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

相关文章

数据可视化的3D问题

三维对象非常流行,但在大多数情况下会对解释图形的准确性和速度产生负面影响。 以下是对涉及 3d 的主要图形类型的回顾,并讨论了它们是否被认为是不好的做法。 1、3D 条形图:不要 这是一个 3d 条形图。 你可能很熟悉这种图形,因为…

Windows上面搭建Flutter Android运行环境

Flutter Android环境搭建 电脑上面安装配置JDK电脑上下载安装Android Studio电脑上面下载配置Flutter Sdk (避坑点一)下载SDK配置对应的环境变量 到path 电脑上配置Flutter国内镜像运行 flutter doctor命令检测环境是否配置成功创建运行Flutter项目&…

网站HTTP升级成为HTTPS的方法

将网站从HTTP免费升级为HTTPS,您可以按照以下步骤操作: 1. 选择证书颁发机构(CA): - 为了免费升级,您可以选择使用JoySSL这样的公益项目。JoySSL提供免费、自动化的SSL/TLS证书颁发服务,适用于各…

拉普拉斯IPO丨用创新科技助力中国光伏产业高质量发展

近年来,在“以科技创新引领现代化产业体系建设”的战略指引下,整个光伏行业持续推动技术迭代与生产力升级,朝着更高光电转化效率、更低成本加速迈进。 在此背景下,一批以技术驱动为第一生产力的光伏厂商们,在自身领域…

Java编程题 | 打印杨辉三角

大家可以关注一下专栏,方便大家需要的时候直接查找,专栏将持续更新~ 题目描述 打印出杨辉三角形(要求打印出10行如下图) 解题思路 初始化变量:设置一个变量表示行号,从1开始。循环打印杨辉三角形…

DSP笔记9-9. GPIO程序控制LED

GPIO23低电平点亮 周期性改变GPIO23电平,使得LED闪烁 void main(void) { InitSysCtrl(); //初始化系统时钟 InitGpio(); //初始化 GPI0 EALLOW; //允许保护 GpioCtrlRegs.GPAMUX2.bit.GPI0230; //将GP1023设置为GPIO GpioCtrlRegs.GPADIR.bit.GPI0231; //将GP1…

恒创科技:香港服务器CPU核心数如何选?越多越好吗?

​  谈到 CPU“核心”是完成所有处理的组件,程序能否顺利运行的第一因素是你有多少个核心。但由于不同的计算任务占用不同的资源,所以如果您打算简单地创建小型网站或者其他请求处理数据也不高的业务,那么您的基本型号应该包含 1、2 核已经…

康谋分享 | aiSim5 物理相机传感器模型验证方法(一)

摘要: aiSim5可以实时模拟复杂的传感器配置,在多GPU分布式渲支持的支持下,aiSim可以渲染20多个摄像头、10多个雷达和10多个激光雷达在同一环境下运行。aiSim5独有的实时渲染引擎能够满足对物理精确环境和天气模拟的所有要求,具有…

RUKOTA 网络ip对讲系统

RUKOTA 网络ip对讲系统 IP对讲采用TCP/IP技术, 将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输的免提对讲系统,解决了传统对讲系统存在的传输距离有限、易受干扰等问题。 IP对讲系统结构简捷, 只需将终端接入计算机网络即可构成功…

AcWing---游戏---区间dp

1388. 游戏 - AcWing题库 思路: 两个人比赛,是一道博弈论问题,主要思想就是A-B取到最大值。A是我方得到的分数,B是对方得到的分数。我们设g[i][j]是从第i个数到第j个数,先手-后手取得的最大值,分类讨论&a…

【教学类-50-06】20240410“数一数”4类星号图片制作PDF学具

作品展示: 背景需求: 前文遍历四个文件夹,分别将每个文件夹内的10个图片的左上角加入星号,显示难度系数 【教学类-50-05】20240410“数一数”4类图片添加“难度星号”-CSDN博客文章浏览阅读55次,点赞2次,…

ctfshow--web入门--文件上传--web168--web170

web168 法一免杀脚本 还是检查&#xff0c;准备上传图片马 我写的是<?php eval($_POST[a]);?> 上传之后没反应 那么查一下&#xff0c;原来是发现对eval,system还有$_POST和$_GET进行过滤,$_REQUEST还可以用 那么再写一个马&#xff08;免杀脚本&#xff09; <?…

lovesql 手工sql注入

1.页面 2.万能密码登录成功 我还傻乎乎的以为密码就是flag 但不是 3. 继续注入 判断列数 确定了只有三列 开始尝试联合注入 4.使用联合注入之前先判断显示位 5.之后一步一步的构造&#xff0c;先得到当前数据库名 利用database&#xff08;&#xff09; 再得到库里有哪些表 …

vue3中使用antv-S2表格(基础功能版)

先看展示效果&#xff1a; 可以调整行宽、列宽、自定义字段图标、表头图标、添加排序、显示总计、小计等 首先确保搭建一个vue3项目环境&#xff0c;从0开始的小伙伴着重看第一点&#xff1a; 一、搭建vue3项目环境 首先创建一个vue3vitets项目&#xff0c;可以查看下面相关…

windows + pytorch + gpu

nvidia、cuda和cudnn之间的版本匹配关系 1. 命令行查看nvidia的驱动版本 英伟达驱动版本是512.78&#xff0c;cuda版本是11.6&#xff08;说明要下的cuda toolkit版本最高是11.6的&#xff09; 插入&#xff1a;显卡驱动的安装 2. 网站查看cuda和英伟达驱动、cudnn之间的关系…

JVM面试整理--对象的创建和堆

文章目录 对象的创建过程是怎样的?对象在内存中的结构是怎样的&#xff08;专业的叫法&#xff1a;对象的内存布局&#xff09;对象在内存分配时使用的哪种方式&#xff08;有的地方也称为&#xff1a;分配算法&#xff09;知道什么是“指针碰撞”吗&#xff1f;知道什么是“空…

PlayerSettings.WebGL.emscriptenArgs设置无效的问题

1&#xff09;PlayerSettings.WebGL.emscriptenArgs设置无效的问题 2&#xff09;多个小资源包合并为大资源包的疑问 3&#xff09;AssetBundle在移动设备上丢失 4&#xff09;Unity云渲染插件RenderStreaming&#xff0c;如何实现多用户分别有独立的操作 这是第381篇UWA技术知…

“盲人辅助”科技革新:软件赋能,破解出行难题

作为一名资深记者&#xff0c;我长期关注并报道社会弱势群体权益保障议题&#xff0c;其中视障人士的出行困境尤为引人深思。面对城市生活的复杂环境&#xff0c;盲人辅助技术的革新显得至关重要。近期&#xff0c;一款专注于辅助盲人避障的应用蝙蝠避障脱颖而出&#xff0c;以…

基于高德地图数据采集及可视化城市交通健康榜

基于高德地图数据采集及可视化城市交通健康榜 引言 交通状况是衡量一个城市发展水平和居民生活质量的重要指标之一。近年来&#xff0c;随着城市化进程的加快&#xff0c;交通拥堵问题日益凸显&#xff0c;成为城市管理者和居民关注的焦点。高德地图作为中国领先的数字地图内…

ELK企业日志分析系统介绍

前言 随着企业级应用系统日益复杂&#xff0c;随之产生的海量日志数据。传统的日志管理和分析手段&#xff0c;难以做到高效检索、实时监控以及深度挖掘潜在价值。在此背景下&#xff0c;ELK日志分析系统应运而生。本文将从ELK 日志分析系统的原理、架构及其在实践中的应用做相…