Amas:基于大數據平臺技術開發的統一監控平臺
Amas是什么
Amas是基于大數據平臺技術開發的統一監控平臺,其特點包括:
- 全維度監控指標,覆蓋從操作系統、中間件、大數據平臺(Hadoop/Spark/HBase/Kakfa等)到代碼級別
- 可擴展、自定義的采集框架,支持不同語言(Python/Perl/Shell/...)開發的采集器
- 基于OpenTSDB/HBase的海量數據存儲架構,可快速讀寫大量監控指標,滿足真實生產環境
- 清新簡約的Web界面,功能強大但簡單易用
- 基于Python原生multiprocess和async/await實現的分布式異步告警引擎,可水平擴展系統處理能力
- 多渠道、可自定義的通知方式(微信/郵件/Slack/API...)
- 可分組聚合的告警信息,避免海量數據監控場景下的告警風暴
- 基于Jagger的分布式鏈路追蹤數據提取和展示,歷史事件可追溯
- 可對接基于機器學習的異常檢測服務,落地AIOps智能運維
- 微服務架構,支持docker和docker-compose方式的部署 ...
技術棧
編程語言:
- (Backend)Python
- (Web)Javascript
Web服務:
- Vue, ECharts, Webpack
- Express(NodeJS)
后臺服務:
- HBase, OpenTSDB, MongoDB, Redis
- Spark, Kafka...
- Jagger, Tornado
- Pandas, Scikit-learn
- Docker, Swarm
服務端運行情況
- Linux(內核版本2.6+)
- Centos7(推薦)
Docker快速部署
目前Amas的代碼已經通過DockerHub實現自動構建,推薦使用docker來快速體驗:
1、安裝docker
2、保存如下shell腳本并執行:
- #!/usr/bin/env bash
- # 創建docker網絡
- docker network create amas
- # 運行數據庫服務
- # 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
- # 運行采集Agent(含Agent Manager):
- docker run -d --name collector --network amas -p 8001 : 8001 eacon/argus_collector
- # 運行告警模塊:
- docker run -d --name alert --network amas eacon/argus_alert
- # 運行統計模塊:
- docker run -d --name statistics --network amas eacon/argus_statistics
- # 運行Web服務:
- docker run -d --name web --network amas -p 8080 : 8080 eacon/argus-web
3、訪問界面:本地8080端口(通過127.0.0.1而不是localhost):http://127.0.0.1:8080
4、初始化:執行web容器的命令,初始化默認賬戶(用戶名/密碼:admin/123):
- docker exec -it web init_user
Docker-Compose
如果你使用了docker-compose,可以通過如下方式快速運行:
1、git clone本倉庫:
- git clone https:
- //github.com/amas-eye/amas.git; cd amas/docker/compose/
或者直接獲取文件:
- mkdir amas; cd amas; curl https:
- //raw.githubusercontent.com/amas-eye/amas/master/docker/compose/docker-compose.yml > docker-compose.yml
2、執行:
- docker-compose up -d
指標說明
詳見 Metrics.md。
部分功能截圖
Dashboard
監控圖表
告警規則和記錄
Slack通知

調用鏈
架構
- 模塊劃分(對應repo)
- Web服務:argus-web
后臺:
- 采集器:arguscollector
- 告警:argusalert
- 調用鏈:arguschain
- 統計中心:argusstatistics
- AIOps框架:argus_aiops
項目成員
Amas現由@Eacon和他的開發團隊負責維護
其他
Amas的內部開發代號為argus,這也會保留在開源項目的源碼中。
ToDoList
- 告警引擎,支持DSL語言定義規則
- 集成開源的Zabbix、Nagios等監控數據
- 基于AspectJ的Java字節碼注入監控
- 基于pyrasite的python字節碼注入監控 更多AIOps方案的落地...