如何基于ELK构建实时告警系统,保障你的系统稳定性

news/2024/7/7 5:49:24 标签: elk, elasticsearch, 微服务, 开源, 监控, 告警系统

在现代的分布式系统中,日志数据是非常重要的。为了监控和分析日志数据,Elasticsearch 已经成为了一个非常流行的选择。Elasticsearch 不仅可以存储大量的日志数据,还可以实时地搜索和分析数据。但是,当您的系统发生异常情况时,如何及时获得通知呢?这就需要一个实时的告警框架了。本文将介绍基于 Elasticsearch 的实时告警框架,并推荐一个强大的工具:Frostmourne。

Elasticsearch 告警框架简介

Elasticsearch 告警框架是一个基于 Elasticsearch 的实时告警框架,它可以帮助您监控 Elasticsearch 索引中的数据,并在满足预定义条件时发送告警通知。Elasticsearch 告警框架的工作流程如下:

  1. 应用程序将日志数据发送到 Elasticsearch。

  2. Elasticsearch 存储数据,并将数据索引到相应的索引中。

  3. Elasticsearch 告警框架从 Elasticsearch 中获取数据,并根据用户定义的规则发送告警通知。

Frostmourne

Frostmourne一个可以基于 Elasticsearch 的实时告警框架。它可以帮助您监控 Elasticsearch 索引中的数据,并在满足预定义条件时发送告警通知。

项目地址:https://github.com/AutohomeCorp/frostmourne

Frostmourne(霜之哀伤)是汽车之家经销商技术部监控系统的开源版本,用于帮助监控几乎所有数据库数据(包括Elasticsearch, Prometheus, SkyWalking, MySql 等等)。如果你已经建立起了日志系统, 指标体系,却苦恼于没有一个配套监控系统,也许它能帮到你。使用本系统得当,至少可以做到线上应用出了什么问题,相关开发能第一时间了解报错情况,知道问题出在哪里, 可以快速响应处理,几乎先于所有人知道线上的情况,也因为心中有数所以可以从容应对各种问询,一点都不慌,你们团队值得拥有。

项目初衷

在用ELK建立起日志系统之后,我们发现应用日志监控这块除了ElastAlert之外,没有其他方案。我们初期使用ElastAlert来解决日志监控的问题, 但是随着配置的增加,不仅管理成本和使用成本较高,稳定性方面也不能让我们满意,所以为了更好的易用性,稳定性,我们决定自己做一套简单的监控系统, 来解决日志监控的问题。

项目并不局限于Elasticsearch数据,还支持HTTP, PING, Telnet监控,Prometheus, SkyWalking, InfluxDB,MySQL, ClickHouse, IoTDB, SqlServer数据监控, 后面还会加入更多的常用数据源(如:Loki, MongoDB, Redis, Oracle 等)纳入监控范畴,需要做的东西还有很多,需要更多相关开发加入进来,欢迎联系我们,一起做大做强。

 主要功能

  • 只需要写一条数据查询就可以轻松搞定监控

  • 多种数据源支持:Elasticsearch, HTTP, SkyWalking, Prometheus, InfluxDB, MySQL/TiDb, ClickHouse, SqlServer, PING, IotDB, Telnet

  • 数值计算类型监控:count, min, max, avg, sum, unique count, percentiles, standard deviation; Elasticsearch数据支持分桶

  • 多种报警消息发送方式:钉钉(机器人)、企业微信(机器人)、飞书机器人、Email、短信、HTTP

  • 多种消息格式:text, markdown

  • 灵活的报警消息Freemarker模板定制,支持变量占位符;消息模板管理

  • 分布式调度实现,每个监控都是独立调度,互不影响

  • 报警消息附带日志查询短链接,直达报警原因

  • 数值同比,环比监控

  • HTTP数据监控, Javascript表达式判断是否报警; PING连通监控, Telnet端口连通监控

  • 前端简单易用:监控管理、测试、另存、执行日志和历史消息

  • Elasticsearch数据查询、分享和下载

  • 报警消息抑制功能,防止消息轰炸;也有报警升级功能,避免故障相关方长时间得不到通知。

  • 自带账号,团队,部门信息管理模块,也可自己实现内部对接

  • 集成LDAP登录认证

  • 权限控制,数据隔离,各团队互不影响

Elasticsearch 告警框架是一个非常重要的工具,它可以帮助您实现实时监控和快速响应异常情况。通过使用 Frostmourne,您可以轻松地设置和管理告警规则,以便及时通知您的团队。Frostmourne是一个强大的工具,它具有灵活的条件定义、多种告警通知方式和高可用性,可以满足您的各种告警需求。


http://www.niftyadmin.cn/n/1409241.html

相关文章

实现sizeof()函数,传入一个参数object,计算这个object占用了多少字节

注意点: number类型:8字节 string类型:每个长度是2字节 boolean类型:4字节对象的key也是占内存的对象被多次引用时,内存只被计算一次const xxx {name: zs}const testData {a: 111,b: cccc,22222: false,1111: xxx,3333: xxx}// number:8字节// string:每个长度是2字节// bool…

意识、预算与协作:驱动工业网络安全发展的ABC

对于工业网络安全来说,没有什么事情是简单的。想要对抗目标坚定且技艺精湛的网络攻击者,保护复杂且老旧的工业系统免受直接或间接的网络攻击,你面临的挑战将如同在运营技术(OT)中遇到的挑战一样艰巨。而且,…

获取不到svg中的对象_阿里技术:如何让 Flutter 应用更好地使用 SVG?

作者:领蜂 阿里技术阿里妹导读:SVG 作为一个强大的矢量图标准格式,在图片清晰度的表现力上有着位图无法比拟的优势。那么是否 SVG 就是绝对的首选了呢?事实可能并非如此。本文将带大家了解 SVG 在 Flutter 应用中的性能问题&#…

$ git push origin test:master // 提交本地test分支 作为 远程的master分支

$ git push origin test:master // 提交本地test分支 作为 远程的master分支

Tesseract-OCR 字体库下载地址

https://github.com/tesseract-ocr/tesseract/wiki/Data-Files转载于:https://www.cnblogs.com/AnAng/p/9077703.html

TS的常用类型

// 原始类型 const Age: number 12; const Name: string "zs"; const isLoading: boolean true; const n: null null; const u: undefined undefined; const s: symbol Symbol(); // 数组 //1.推荐写法 const numArr: number[] [1, 2, 3]; // 2.Array<类型…

php 简繁体字同时显示_阔别两年,我又从 Go 转回了 PHP

本文经授权转载自CSDN (ID: CSDNnews)整理 | 局长为保狗命&#xff0c;先事先声明&#xff0c;本文无意引战&#xff0c;纯粹是想分享一个从 PHP 转到 Go&#xff0c;又再从 Go 转回 PHP 的案例。看看这位开发者是基于怎样的考虑&#xff0c;以及又是在怎样的场景下&#xff0c…

Fragment获取Activity,Activity获取Fragment

在界面布局文件中使用<fragment>元素添加Fragment时,可以为<fragment>元素指定android:id或android:tag属性,这两个属性都可用于标识该Fragment&#xff0c;接下来可以通过findFragmentById(int id)或者findFragmentByTag(String tag)来获取该Fragment Activity获取…