GithubHelp home page GithubHelp logo

skymysky / amas Goto Github PK

View Code? Open in Web Editor NEW

This project forked from amas-eye/amas

0.0 2.0 0.0 7.18 MB

Amas is recursive acronym for “Amas, monitor alert system”.

License: MIT License

Python 100.00%

amas's Introduction

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

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:
#!/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. Visit: open browser(try not to use localhost, but 127.0.0.1):http://127.0.0.1:8080
  2. 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
  1. 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...

amas's People

Contributors

eacontang avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.