项目作者: amas-eye

项目描述 :
Amas是“Amas,监控警报系统”的递归首字母缩写。
高级语言: Python
项目地址: git://github.com/amas-eye/amas.git
创建时间: 2018-02-27T05:11:16Z
项目社区:https://github.com/amas-eye/amas

开源协议:MIT License

下载


Amas

Docker Automated build

Language: English | 中文

What is Amas

Amas is a monitor alert system based on big-data platform, with features below:

  1. Provide metrics in full dimension, covering from operating-system, middleware, big-data platform(Hadoop/Spark/HBase/Kakfa…) to code level.
  2. Highly extensible collector agent, support custom metrics written by different scripting language(Python/Perl/Shell/…).
  3. Ability to read/write mass data quickly due to HBase/OpenTSDB on real production environment.
  4. Web UI is sexy and powerful, yet easy to use.
  5. Distributed asynchronous alert engine based on Python multiprocess and async/await, which makes it easily extend system processing ability.
  6. Multi-channel and customizable notify method(wechat/mail/slack/api…).
  7. Alerts could be aggregated by groups, preventing from “Alert Storm”.
  8. Distributed tracing collect and display based on Jagger, events are traceable.
  9. Anomaly detection service based on machine learning, landing AIOps.
  10. 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:

  1. Install Docker
  2. 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

  1. 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)
  2. 4. Init: execute web container to generate default account(username/password: admin/123):

docker exec -it web init_user

  1. ### Docker-Compose
  2. With docker-compose installedyou could run amas as below
  3. 1. git clone

git clone https://github.com/amas-eye/amas.git; cd amas/docker/compose/

  1. - 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

  1. 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:

  • Support DSL defined rules in alert engine
  • Integrate with Zabbix, Nagios…
  • Java bytecode injection based on AspectJ
  • Python bytecode injection based on pyrasite
  • Landing more AIOps…