Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Qihoo360/doraemon
Doraemon is a Prometheus based monitor system
https://github.com/Qihoo360/doraemon
alertmanager golang kubernetes monitor prometheus
Last synced: about 1 month ago
JSON representation
Doraemon is a Prometheus based monitor system
- Host: GitHub
- URL: https://github.com/Qihoo360/doraemon
- Owner: Qihoo360
- License: gpl-3.0
- Created: 2020-05-18T08:48:08.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-04-20T06:39:36.000Z (over 2 years ago)
- Last Synced: 2024-08-02T15:53:32.560Z (4 months ago)
- Topics: alertmanager, golang, kubernetes, monitor, prometheus
- Language: JavaScript
- Homepage:
- Size: 6.46 MB
- Stars: 655
- Watchers: 27
- Forks: 208
- Open Issues: 46
-
Metadata Files:
- Readme: README-CN.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hacking-lists - Qihoo360/doraemon - Doraemon is a Prometheus based monitor system (JavaScript)
README
[English](README.md) | [中文](README-CN.md)
# Doraemon
[![License](http://img.shields.io/badge/license-GPLv3+-brightgreen.svg)](LICENSE)
Doraemon 是一个基于 **[Prometheus](https://prometheus.io)** 的监控系统。该系统主要由三个组件组成——计算引擎(Rule Engine),报警网关(Alert Gateway)以及 Web-UI。与 Prometheus 使用静态的配置文件来配置报警规则不同,Doraemon 可以通过 Web-UI 动态的配置加载报警规则。此外,Doraemon 还集成了许多自定义的报警功能。
## 特性
- 用户可以通过 Web-UI 动态配置报警规则。
- 支持灵活的报警策略,比如报警延迟(可以实现报警升级),创建报警接收组以及值班组。用户还能通过 HOOK 的方式来发送报警,由用户自己来决定如何处理报警。
- 用户可以通过 prometheus 的标签来实现批量确认报警。
- 支持创建维护组。维护组中的机器在维护时间段内产生的报警将不会发送给用户。
- 为了减少报警发送数量,所有报警都在报警规则的维度做了报警聚合(根据该报警规则对应的报警策略每个周期聚合一次并发送)。报警恢复信息也从报警规则的维度每分钟聚合发送一次。
- 支持多种登录方式:企业版支持 LDAP/OAuth 2.0/本地登录。## 架构
整个系统采用前后端分离的开发方案,前端使用 React 开发,后端使用 **[Beego](https://beego.me)** 框架开发,并使用 MySQL 存储数据。
![Architecture](docs/images/Architecture.png)
## 组件
- Rule Engine: 从 Alert Gateway 动态拉取报警规则,并下发到多个 prometheus server 进行计算,与此同时接收从 prometheus server 发来的报警并转发给 Alert Gateway。
- Alert Gateway: 接收从 Rule Engine 发送的报警,并根据报警策略聚合发送报警信息。
- Web UI: 用于运维人员添加报警规则,创建报警策略、维护组,进行报警确认或者查看历史报警。## 依赖
- Golang 1.12+ ([installation manual](https://golang.org/dl/))
- Docker 17.05+ ([installation manual](https://docs.docker.com/install))
- Bee ([installation manual](https://github.com/beego/bee))
- Node.js v10.16+ and npm 6.10+ ([installation with nvm](https://github.com/creationix/nvm#usage))
- MySQL 5.6.X (数据库最好使用该版本,否则报警时间可能显示不正常)## 快速启动
- 克隆代码仓库
```bash
$ git clone https://github.com/Qihoo360/doraemon.git
```- 修改配置文件
1.将[deployments/docker-compose/conf/config.js](deployments/docker-compose/conf/config.js)中的"localhost"替换为本机物理网卡 ip,端口号保持不变。
2.修改[deployments/docker-compose/conf/app.conf](deployments/docker-compose/conf/app.conf),将 WebUrl 中的"localhost"替换为本机物理网卡 ip,端口号保持不变。
- 启动服务
在 Doraemon 的根目录下,通过 docker-compose 创建服务```bash
$ cd deployments/docker-compose/
$ docker-compose up -d
```通过上述命令,您可以从通过 http://本机ip:32000 访问 Doraemon。默认登录用户 admin,密码是 123456。
## 文档
**[Wiki](docs/readme-CN.md)**
## 贡献者
- [@BennieMeng](https://github.com/BennieMeng)
- [@JayRyu](https://github.com/jayryu)
- [@JoveYu](https://github.com/JoveYu)
- [@70data](https://github.com/70data)