项目作者: amas-eye
项目描述 :
Amas是“Amas,监控警报系统”的递归首字母缩写。
高级语言: Python
项目地址: git://github.com/amas-eye/amas.git
Amas

Language: English | 中文
What is Amas
Amas is a monitor alert system based on big-data platform, with features below:
- Provide metrics in full dimension, covering from operating-system, middleware, big-data platform(Hadoop/Spark/HBase/Kakfa…) to code level.
- Highly extensible collector agent, support custom metrics written by different scripting language(Python/Perl/Shell/…).
- Ability to read/write mass data quickly due to HBase/OpenTSDB on real production environment.
- Web UI is sexy and powerful, yet easy to use.
- Distributed asynchronous alert engine based on Python multiprocess and async/await, which makes it easily extend system processing ability.
- Multi-channel and customizable notify method(wechat/mail/slack/api…).
- Alerts could be aggregated by groups, preventing from “Alert Storm”.
- Distributed tracing collect and display based on Jagger, events are traceable.
- Anomaly detection service based on machine learning, landing AIOps.
- Due to micro-service architect, compatibly deploy with docker and docker-compose.
- …
Technology Stack
- Program language:
- (Backend)Python
- (Web)Javascript
- Web Service:
- Vue, ECharts, Webpack
- Express(NodeJS)
- Backend Service:
- HBase, OpenTSDB, MongoDB, Redis
- Spark, Kafka
- Jagger, Tornado
- Pandas, Scikit-learn
- Docker, Swarm
Runtime Environment
- Linux(Kernel2.6+)
- Centos7(Recommend)
Docker
So far, Amas repository is automated build on docker hub, you are recommended to run amas quickly by docker:
- Install Docker
- Create shell script below and execute:
```bash!/usr/bin/env bash
create network for amas
docker network create amas
run databases
opentsdb(v2.3.0+)
mongo(v3.10.0+)
redis(v3.10.0+)
docker run -d -p 4242:4242 —name opentsdb —network amas eacon/docker-opentsdb
docker run -d -p 27017:27017 —name mongo —network amas mongo
docker run -d -p 6379:6379 —name redis —network amas redis
run collector agent(Agent Manager included):
docker run -d —name collector —network amas -p 8001:8001 eacon/argus_collector
run alert process
docker run -d —name alert —network amas eacon/argus_alert
run statistics process
docker run -d —name statistics —network amas eacon/argus_statistics
run web server
docker run -d —name web —network amas -p 8080:8080 eacon/argus-web
3. Visit: open browser(try not to use ```localhost```, but ```127.0.0.1```):[http://127.0.0.1:8080](http://127.0.0.1:8080)
4. Init: execute web container to generate default account(username/password: admin/123):
docker exec -it web init_user
### Docker-Compose
With docker-compose installed,you could run amas as below:
1. git clone:
git clone https://github.com/amas-eye/amas.git; cd amas/docker/compose/
- Or just get that compose file:
mkdir amas; cd amas; curl https://raw.githubusercontent.com/amas-eye/amas/master/docker/compose/docker-compose.yml > docker-compose.yml
2. Execute command to run all containers up:
docker-compose up -d
```
Metrics
See more in Metrics.md.
Screenshots
Dashboard

Metric chart view

Alert rules and messages:


Slack notification:

Tracing display:


Architect
Modules(corresponding repo)
- Web server: argus-web
- Backend:
- Collector: argus_collector
- Alert: argus_alert
- Tracing: argus_chain
- Statistics: argus_statistics
- AIOps: argus_aiops
Authors
Amas is maintained by @Eacon and his develop team, see more in AUTHORS.
Other
- Amas’ code name is “argus”, and this would be reserved in source code.
ToDoList: