# frostmourne **Repository Path**: tim_guai/frostmourne ## Basic Information - **Project Name**: frostmourne - **Description**: frostmourne是基于Elasticsearch, Prometheus, SkyWalking, InfluxDB数据的监控,报警,分析系统. Monitor & alert & alarm & analyze for Elasticsearch && InfluxDB Log Data - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 387 - **Forks**: 127 - **Created**: 2020-06-14 - **Last Updated**: 2026-02-04 ## Categories & Tags **Categories**: system-monitor **Tags**: alert, ElasticSearch, prometheus, 监控, 报警 ## README
[Github地址](https://github.com/AutohomeCorp/frostmourne) | [Gitee地址](https://gitee.com/tim_guai/frostmourne) | [中文](./README.md) | [English](./README_en.md) # 📖 Introduction `Frostmourne` is an open source version of the Autohome Dealer Tech monitoring system to help monitor almost all database data (including `Elasticsearch`, `Prometheus`, `SkyWalking`, `MySql`, etc.) . If you have established a logging system, metric system, but worry about not having a supporting monitoring system, maybe it can help you. ### Purpose After building a logging system with `ELK`, we found that there is no other solution for application log monitoring except `ElastAlert`. We initially used `ElastAlert` to solve the problem of log monitoring, However, with the increase of configuration, not only the management cost and usage cost are high, but also the stability cannot satisfy us. Therefore, for better ease of use and stability, we decided to build a simple monitoring system by ourselves. to solve the problem of log monitoring. The project is not limited to `Elasticsearch` data, but also supports `HTTP`, `PING`, `Telnet` monitoring, `Prometheus`, `SkyWalking`, `InfluxDB`, `MySQL`, `ClickHouse`, `IoTDB`, ` SqlServer` data monitoring, Later, more common data sources (such as `Loki`, `MongoDB` `Redis`, `Oracle`, etc.) will be added to the monitoring category. There are still many things that need to be done, and more related development needs to be added. Welcome to join us to make the project more powerful. # ✨ Features * You only need to write a data query to easily get monitoring * Support multiple data source support:`Elasticsearch, HTTP, SkyWalking, Prometheus, InfluxDB, MySQL/TiDb, ClickHouse, SqlServer, PING, IotDB, Telnet` * Support number aggregation:`count, min, max, avg, sum, unique count, percentiles, standard deviation`; and `Elasticsearch` data bucket. * Support multiple message way: dingtalk(robot)、wechat(robot)、feishu robot、Email、sms、HTTP * Support multiple message type: `text, markdown` * Flexible alarm message `Freemarker` template customization, support for variable placeholders; message template management * Distributed scheduling implementation, each monitoring is independently scheduled without affecting each other * The alarm message comes with a short link for log query, directly to the cause of the alarm * Value year-on-year, month-on-month monitoring * `HTTP` data monitor, judge with `Javascript` expression; support `PING` monitor, `Telnet` monitor * The front end is simple and easy to use: monitoring management, testing, saving, execution logs and historical messages * `Elasticsearch` data query、share and download * Alarm message suppression function to prevent message bombardment; there is also an alarm upgrade function to prevent fault-related parties from not being notified for a long time. * Account, team, department information management module, you can also realize internal docking by yourself * Integrated `LDAP` login authentication * Permission control, data isolation, each team does not affect each other #### wechat robot message example: (View full function screenshots)
## Table of contents
- [Introduction](#-Introduction)
- [Features](#-features)
- [Online demo](#-online-demo)
- [Quick start](#-quick-start)
- [Deployment](#-deployment)
- [Prepare mysql](#preparemysql-scripts)
- [k8s deployment](#1k8s-deployment)
- [zip package deployment](#2zip-package-deployment)
- [Self-build deployment](#3self-build-deployment)
- [Usage guide](#-usage-guide)
- [Develop](#-develop)
- [Follow-up planning](#follow-up-planning)
- [ReleaseNotes](./ReleaseNotes.md)
- [Contributors](#-contributors)
# 💻 Online demo
In order to understand the role of this project more quickly,we provide a static web with mock data for preview: online demo
The online `demo` is not updated in time, please refer to the actual running effect of the project. The `demo` is only for quick browsing.
# 📦 Quick start
We provides the `docker-compose` method to make it run faster and better understand the role of the project。
Please see the documentation for details:Quick-Start
# 🧰 Deployment
#### Prepare:`MySQL` scripts
> Frostmourne's all sql scripts in file: [frostmourne.sql](./doc/mysql-schema/frostmourne.sql) 。
#### 1、`k8s` deployment
`k8s` way deployment refers to the following three configuration files:
* [frostmourne-monitor-namespace.yaml](./doc/docker/k8s/frostmourne-monitor-namespace.yaml)
* [frostmourne-monitor-deployment.yaml](./doc/docker/k8s/frostmourne-monitor-deployment.yaml)
* [frostmourne-monitor-service.yaml](./doc/docker/k8s/frostmourne-monitor-service.yaml)
Related parameters are configured in the `frostmourne-monitor-deployment.yaml` file.
It should be noted that the external mapping port is specified in `frostmourne-monitor-service.yaml`,default `nodePort=30054`
```bash
kubectl applt -f frostmourne-monitor-namespace.yaml
kubectl applt -f frostmourne-monitor-deployment.yaml
kubectl apply -f frostmourne-monitor-service.yaml
```
#### 2、`zip` package deployment
requirements
* `JDK 1.8`
* `MySQL 5.7.8+`
The latest Release zip package,please go to [releases](https://github.com/AutohomeCorp/frostmourne/releases) for download.
After decompression, modify the application configuration file `application.properties`
and environment configuration file `env` according to your own environment,then execute the following command to start:
```bash
./scripts/startup.sh
```
execute the following command to stop:
```bash
./scripts/shutdown.sh
```
#### 3、Self-build deployment
requirements
* `JDK 1.8`
* `Maven 3.2.x+`
* `MySQL 5.7.8+`
In `frostmourne` main folder, execute `maven` build command:
```bash
mvn -U clean package -DskipTests=true
```
The frontend module `frostmourne-vue` will copy static resource to `frostmourne-monitor` module's `resources/dist` folder,so you only need deploy `frostmourne-monitor`.
`frostmourne-monitor` config `assembly` package,`target` folder has `zip` package,then you can refer `zip` package deployment.
# 📚 Usage guide

![]() |
![]() |
![]() |
![]() |
![]() |