AutohomeCorp / frostmourne

Frostmourne(霜之哀伤监控平台)是基于Elasticsearch, Prometheus, SkyWalking, InfluxDB,Mysql/TiDB,ClickHouse, SqlServer, IoTDB数据的分布式监控报警系统. Monitor & alert & alarm for Elasticsearch,Prometheus data。主要使用springboot2 + vue-element-admin
https://frostmourne-demo.github.io
MIT License
1.38k stars 307 forks source link
alarm alert alertmanager clickhouse dingtalk-robot elastalert elasticsearch element-ui influxdb iotdb logging monitor mybatis mybatis-dynamic-sql prometheus skywalking springboot2 vue vue-element-admin wechat-message

GitHub release GitHub Stars GitHub Forks GitHub Contributors GitHub issues JDK support LICENSE Downloads

Github地址 | Gitee地址 | 中文 | English

📖 介绍

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

项目初衷

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

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

✨ 主要功能

目录

💻 在线demo

为了更快的理解本项目的作用,提供了一个接口全mock的静态站点供大家预览功能: 在线demo 在线demo更新不及时,请以项目实际运行效果为准,demo只是用于快速浏览

📦 快速启动

提供docker-compose方式,让你更快运行起来便于更好理解项目作用。详细请看文档:Quick-Start

🧰 部署

预备环境准备:MySQL数据库表创建

Frostmourne所有表的创建语句都在 frostmourne.sql 文件中。

数据库密码默认使用明文,没有加密策略。如果你需要对密码进行加密,请参考druid官方文档:druid数据库密码加密

一、k8s部署方式

k8s部署参考以下三个配置文件

相关参数在 frostmourne-monitor-deployment.yaml 文件里配置。需要注意的是在frostmourne-monitor-service.yaml里指定对外映射端口,默认nodePort=30054

kubectl applt -f frostmourne-monitor-namespace.yaml
kubectl applt -f frostmourne-monitor-deployment.yaml
kubectl apply -f frostmourne-monitor-service.yaml

二、zip包部署方式

依赖环境

最新的Release版本zip包,请到 releases 中下载,解压后然后根据自己的环境修改应用配置文件application.properties文件和环境变量配置文件env,然后执行如下命令启动:

./scripts/startup.sh

执行如下命令停止应用:

./scripts/shutdown.sh

三、自构建部署方式

依赖环境

在项目frostmourne主目录下执maven构建命令:

mvn -U clean package -DskipTests=true

前端项目frostmourne-vue会自动把资源构建到frostmourne-monitorresources/dist下,所以你只需要部署frostmourne-monitor即可。

frostmourne-monitor已经配置了assembly打包,target目录下会生成zip包,你只需要将zip包解压,然后根据自己的 环境修改应用配置文件application.properties文件和环境变量配置文件env,然后执行如下命令启动:

./scripts/startup.sh

执行如下命令停止应用:

./scripts/shutdown.sh

📚 功能使用指南

Elasticsearch数据监控指南 HTTP监控使用说明 Prometheus数据监控指南
SkyWalking数据监控指南 MySQL/TiDB数据监控指南 ClickHouse数据监控指南
InfluxDB数据监控指南 PING监控指南 数值同比监控使用指南
消息模板配置 报警发送 报警抑制
用户管理和登录认证 注意事项 其他
数值环比监控使用指南 iotdb数据监控使用指南 telnet端口连通监控指南

🛠 开发调试

调试环境要求

启动frostmourne-monitor项目, 启动参数增加:

-Dmysql.host=localhost -Dmysql.user=root -Dmysql.password=example -Dlog.console.level=INFO

MySQL相关参数修改为自己环境的,active profile设置为local, 测试地址: http://localhost:10054 使用VS Code打开frostmourne-vue目录,进行前端调试。执行如下命令:

# install dependency
yarn install

# 建议不要直接使用 cnpm 安装以来,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
yarn install --registry=https://registry.npm.taobao.org

# develop
yarn dev

会自动打开: http://localhost:9528

搭建本地开发调试环境或者需要做二次开发遇到什么困难的都可以加群沟通,欢迎各路英雄多多PR

技术说明项目基于Java8实现,详细请看:技术说明

⚙后续规划

🗓 发版历史

👍 致谢

👷 Contributors

@menong-chen @fox2zz @xyzj91 @wxmclub @Aping @limbo

GitHub Contributors

💡️ 如何参与贡献

如果你觉得这个项目对你有所帮助想有所回馈,非常欢迎参与贡献。可以通过如下方式:

💬 联系我们

有问题需要帮助或者交流可以添加下边的微信群或QQ群,请优先选择提 issue ,便于问题的讨论和记录追踪,也方便有类似问题的伙伴搜索解决。也欢迎对项目感兴趣的同僚加群交流。 特别提一下:关于文档觉得哪里写的不通畅,不好理解,或者有哪方面缺失,都欢迎提 issue

📌 项目事记

👥 已注册使用者

通过 githubgitee 登记的使用者

汽车之家 最右APP 家家悦 阳光电源 ETCP LingoAce
叮当快药 爱库存

⭐️ Stargazers over time

Stargazers over time