{"id":20226855,"url":"https://github.com/qihoo360/doraemon","last_synced_at":"2025-04-12T22:28:27.354Z","repository":{"id":41989939,"uuid":"264881308","full_name":"Qihoo360/doraemon","owner":"Qihoo360","description":"Doraemon is a Prometheus based monitor system","archived":false,"fork":false,"pushed_at":"2022-04-20T06:39:36.000Z","size":6774,"stargazers_count":657,"open_issues_count":46,"forks_count":207,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-04-04T01:29:39.025Z","etag":null,"topics":["alertmanager","golang","kubernetes","monitor","prometheus"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Qihoo360.png","metadata":{"files":{"readme":"README-CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-18T08:48:08.000Z","updated_at":"2025-03-28T06:05:27.000Z","dependencies_parsed_at":"2022-08-12T01:40:13.873Z","dependency_job_id":null,"html_url":"https://github.com/Qihoo360/doraemon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qihoo360%2Fdoraemon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qihoo360%2Fdoraemon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qihoo360%2Fdoraemon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qihoo360%2Fdoraemon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Qihoo360","download_url":"https://codeload.github.com/Qihoo360/doraemon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248639265,"owners_count":21137811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alertmanager","golang","kubernetes","monitor","prometheus"],"created_at":"2024-11-14T07:20:50.278Z","updated_at":"2025-04-12T22:28:27.329Z","avatar_url":"https://github.com/Qihoo360.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](README.md) | [中文](README-CN.md)\n\n# Doraemon\n\n[![License](http://img.shields.io/badge/license-GPLv3+-brightgreen.svg)](LICENSE)\n\nDoraemon 是一个基于 **[Prometheus](https://prometheus.io)** 的监控系统。该系统主要由三个组件组成——计算引擎（Rule Engine），报警网关（Alert Gateway）以及 Web-UI。与 Prometheus 使用静态的配置文件来配置报警规则不同，Doraemon 可以通过 Web-UI 动态的配置加载报警规则。此外，Doraemon 还集成了许多自定义的报警功能。\n\n## 特性\n\n- 用户可以通过 Web-UI 动态配置报警规则。\n- 支持灵活的报警策略，比如报警延迟（可以实现报警升级），创建报警接收组以及值班组。用户还能通过 HOOK 的方式来发送报警，由用户自己来决定如何处理报警。\n- 用户可以通过 prometheus 的标签来实现批量确认报警。\n- 支持创建维护组。维护组中的机器在维护时间段内产生的报警将不会发送给用户。\n- 为了减少报警发送数量，所有报警都在报警规则的维度做了报警聚合（根据该报警规则对应的报警策略每个周期聚合一次并发送）。报警恢复信息也从报警规则的维度每分钟聚合发送一次。\n- 支持多种登录方式：企业版支持 LDAP/OAuth 2.0/本地登录。\n\n## 架构\n\n整个系统采用前后端分离的开发方案，前端使用 React 开发，后端使用 **[Beego](https://beego.me)** 框架开发，并使用 MySQL 存储数据。\n\n![Architecture](docs/images/Architecture.png)\n\n## 组件\n\n- Rule Engine: 从 Alert Gateway 动态拉取报警规则，并下发到多个 prometheus server 进行计算，与此同时接收从 prometheus server 发来的报警并转发给 Alert Gateway。\n- Alert Gateway: 接收从 Rule Engine 发送的报警，并根据报警策略聚合发送报警信息。\n- Web UI: 用于运维人员添加报警规则，创建报警策略、维护组，进行报警确认或者查看历史报警。\n\n## 依赖\n\n- Golang 1.12+ ([installation manual](https://golang.org/dl/))\n- Docker 17.05+ ([installation manual](https://docs.docker.com/install))\n- Bee ([installation manual](https://github.com/beego/bee))\n- Node.js v10.16+ and npm 6.10+ ([installation with nvm](https://github.com/creationix/nvm#usage))\n- MySQL 5.6.X (数据库最好使用该版本，否则报警时间可能显示不正常)\n\n## 快速启动\n\n- 克隆代码仓库\n\n  ```bash\n  $ git clone https://github.com/Qihoo360/doraemon.git\n  ```\n\n- 修改配置文件  \n  1.将[deployments/docker-compose/conf/config.js](deployments/docker-compose/conf/config.js)中的\"localhost\"替换为本机物理网卡 ip，端口号保持不变。  \n  2.修改[deployments/docker-compose/conf/app.conf](deployments/docker-compose/conf/app.conf)，将 WebUrl 中的\"localhost\"替换为本机物理网卡 ip，端口号保持不变。\n- 启动服务  \n   在 Doraemon 的根目录下，通过 docker-compose 创建服务\n\n  ```bash\n  $ cd deployments/docker-compose/\n  $ docker-compose up -d\n  ```\n\n  通过上述命令，您可以从通过 http://本机ip:32000 访问 Doraemon。默认登录用户 admin，密码是 123456。\n\n## 文档\n\n**[Wiki](docs/readme-CN.md)**\n\n## 贡献者\n\n- [@BennieMeng](https://github.com/BennieMeng)\n- [@JayRyu](https://github.com/jayryu)\n- [@JoveYu](https://github.com/JoveYu)\n- [@70data](https://github.com/70data)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqihoo360%2Fdoraemon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqihoo360%2Fdoraemon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqihoo360%2Fdoraemon/lists"}