Doraemon is a Prometheus based monitor system ,which are made up of three components —— the Rule Engine,the Alert Gateway and the Web-UI. Instead of configuring alarm rules in config file,this system can configure alarm rules dynamically through the Web-UI and integrates many customized alarm functions.
- Users can configure alarm rules dynamically through the Web-UI.
- Support flexible alarm strategies such as alarm delays through which can realize the alarm upgrade strategies,alarm groups and duty groups.Users can handle the alarms in their own way by sending the alarms to hooks.
- Users can confirm the alarms by prometheus tags.
- Support the maintain groups.
- In order to reduce the number of alarms,all of which are aggregated by rules.The alarms are aggregated once per cycle and the alarm recovery information are aggregated every minute.
- LDAP/OAuth 2.0/DB Multiple login mode support.
The whole system adopts the separation of front and back ends, in which the front end uses React for data interaction and display.The backend uses the Beego framework for data interface processing and data for MySQL storage.
- Rule Engine: Pull rules from Alert Gateway,and then send the rules to prometheus server to caculate and push the alerts to Alert Gateway.
- Alert Gateway: Aggregate the alarms and send them to alarm receivers according to their alarm strategies.
- Web UI: For adding rules,alarm strategies and maintain groups.To confirm alarms and view historical alarm records.
- Golang 1.12+ (installation manual)
- Docker 17.05+ (installation manual)
- Bee (installation manual)
- Node.js v11+ and npm 6.5+ (installation with nvm)
- MySQL 5.6+ (Most of the data is in MySQL.)
- Clone
$ git clone https://github.com/Qihoo360/doraemon.git
- Start Doraemon
Start server by docker-compose at Doraemon project.
$ cd deployments/docker-compose/
$ docker-compose up -d
With the above command, you can access the local Doraemon from http://127.0.0.1:4200, the default administrator account admin:123456.