阿修羅監控系統AsuraMonitor

https://github.com/AsuraTeam/monitor

運維工作中自己開發的監控系統,功能強大靈活
系統安裝簡單,配置簡單,相比zabbix, nagios,cacti,小米監控等都使用相當簡單。只需要會寫腳本,語言不限就可以實現任意監控需求。
系統安裝簡單,配置簡單

1、數據採集免配置: agent自發現、agent主動推送, 任何數據自定義腳本
2、可擴展性, 擴展簡單,隨時擴,隨心擴
3、歷史數據查詢, 可以秒級返回全年數據趨勢圖, 多個指標數據, 趨勢圖更明晰:
3天 7天,15天,30天,60天,90天,120天,180天,240天,360天時間段趨勢
4、架構設計高可用: 整個系統無核心單點,所涉及到的 
負載均衡(nginx, haproxy, lvs)都可以用來負載server端, mysql(無數據壓力,不做數據存儲),
redis(需要高可用配置,推薦使用Codis),
共享存儲設備(本地磁盤,nfs,mfs等).
5、任何數據圖像實時查看,歷史查看功能
6、針對統一系統,基礎監控無需添加配置,自動添加(比如cpu,負載,磁盤使用率,網絡流量,ss狀態信息等,都可以自定義實現)
7、報警組配置,支持微信,釘釘,手機,郵件功能(微信,釘釘需要單獨處理,不是人都有的)
8、分佈式監控,每個裝agent的都是一個監控系統,除配置外(配置只能在server端完成)
9、自定義數據上報時間,最低5秒上報一次數據
10、不同server性能對比,更簡單,更清晰
11、支持圖像搜索,主機名,ip地址搜索圖像
12、圖像收藏功能,常用的直接在收藏列表點開查看
13、支持ldap認證登陸
14、支持任何指標數據多條件篩選排序,資源使用情況一目瞭然

歡迎加入 阿修羅監控系統 QQ羣 149469467

整體架構 
image 

監控大盤 

image
報警信息查看

image
圖像展示

image
大圖顯示

image
多維數據顯示(任何機器任何數據組合對比)

image

image

image
指標排序功能

image
圖像搜索功能

image
指標聚合功能,單指標多服務器,平均和求和

image
圖像收藏功能

image
系統概覽

image
報警統計

image
指標報警分析報表

image
監控添加頁面

image
腳本添加頁面

image


特別注意:本系統不能在公網開放,只能在私有網絡運行,避免數據泄露或篡改


請注意防火牆, 監控上報數據使用 tcp 80端口和udp的50000到50300端口, 請保證agent都能連接到server的這些端口




系統組成部分:


1、java環境, jdk1.7
2、tomcat
3、redis
4、mysql數據庫
5、mvn
6、agent


運行系統 Centos 6.5 
爲方便使用,軟件包tools/下面已集成mvn, java, redis,tomcat工具,直接可以使用, 無需自行下載


準備工作:


1、mysql準備好,將cmdb.sql 導入到數據庫
對需要鏈接的服務器進行授權
mysql>source cmdb.sql mysql>grant select,update,insert,delete on cmdb.* to monitor@你的ip地址 identified by "aZkl299feM";
mysql>flush privileges;
請綁定host os.dbm.com 到你的數據庫的地址
ping os.dbm.com 看是否能解析到你的數據庫IP地址
如果要修改域名請在安裝完成後修改 /home/runtime/tomcat_8081/webapps/ROOT/WEB-INF/classes/jdbc.properties 替換成你自己的域名
2、準備一個redis服務
請綁定host os.redis.com到你的redis地址
ping os.redis.com 看是否能解析到你的redis的IP地址
如果要修改域名請在安裝完成後修改 /home/runtime/tomcat_8081/webapps/ROOT/WEB-INF/classes/system.properties 替換成你自己的域名
3、修改對應的環境變量
4、綁定本機hostname到你的ip地址
5、本系統強制依賴時間,請保證所有服務器時間一致



安裝步驟:


1、安裝mysql數據庫
2、安裝jdk7
3、安裝redis服務
4、安裝tomcat
5、安裝mvn
Mysql庫請使用utf8字符集
其中redis, tomcat, mvn,jdk7 可以直接使用tools裏面的包, 安裝程序統一部署到 /home/runtime 目錄
詳情查看deploy.sh腳本


目錄結構:
#ls /home/runtime
jdk7 tomcat_8081 redis maven 數據庫自行配置即可

agent安裝配置


6、安裝agent


1、使用mvn打包, 打包完成後,將target/agent.jar 記錄,稍後會用到
2、程序運行環境在tools/monitor.tar.bz2, 解壓到 /home/runtime/目錄
3、將tools裏面的jdk7解壓並改名爲 /home/runtime/monitor/java/ 目錄
4、修改agent配置文件,將所有v.asura.com替換爲你的服務端的地址,爲方便後期負載,儘量使用nginx等負載設備, 使用域名形式配置
修改redis.server 和server端使用的redis一致
5、將剛纔的 agent.jar 複製到 /home/runtime/monitor/lib/ 目錄
cp -v agent.jar /home/runtime/monitor/lib/
6、啓動 cd /home/runtime/monitor/bin; sh agent start
7、查看日誌 tail -f /home/runtime/monitor/logs/agent.log



系統登錄 系統默認密碼用戶名爲 admin admin
登錄後請修改密碼
如果需要ldap登錄,需要修改配置文件進行配置ldap服務信息


配置流程


因系統調用了hostname, 所以請將你的主機名和ip地址做下綁定
示例:
cat /etc/hosts
10.1.1.1 localhost.localhost
10.1.1.1 web_xx_xx

1、配置資源信息
點擊 資源信息->資源配置 配置下列資源數據
該模塊主要是記錄資源數據
1、機房配置(可選)
2、機櫃配置(可選)
3、環境配置
4、業務線配置
5、管理員配置
6、服務器類型配置
7、服務類型配置
8、系統類型配置
以上配置只爲第9條準備
9、服務器配置
2、配置告警相關配置
點擊 監控分析->監控配置->告警發送配置 配置下列信息
注意:發送報警只對組發送
1、配置聯繫組
2、配置聯繫人
3、消息通道配置
消息通道配置默認有郵件和手機的配置模板,自行修改即可
3、其他更多配置,需要大家共享
4、歡迎共享監控腳本
監控腳本輸出爲json格式:
示例:
[
{
"name":"",
"groups":"",
"status":"",
"ip":"",
"messages":"",
"value":"",
"command":"",
}
]
name 爲指標名字比如 system.load.min1 | system.memrory.used | system.io.r_s.vda 
groups 爲指標所在的組,一個組裏放相關的指標, 比如所有cpu指標都放在cpu組裏 
status 腳本邏輯執行返回狀態, 
1爲正常, 2爲危險,
3爲警告, 4爲未知,
在報警時只有狀態爲2發送報警,其他狀態不發送報警,在監控全局可以看到該狀態

ip 可選, 默認腳本返回json沒有ip字段,系統會按請求到數據上報的客戶端地址記錄ip地址
messges 報警信息,可選, 在發送報警時發送的信息,自定義想寫啥寫啥,就是你的報警內容中會出現的文字
value 程序採集指標結果,爲數字類型,不能爲空
command 可選
任何一個腳本只要能返回這樣的一個json格式的數據,就可以配到監控腳本,開始監控你的系統了
上傳一個CPU類型的數據採集返回值:
[{"status": "1", "name": "system.cpu.user", "messages": "system.cpu.user 5.67", "value": "5.67", "command": "7", "groups": "cpu"}, {"status": "1", "name": "system.cpu.nice", "messages": "system.cpu.nice 0.00", "value": "0.00", "command": "7", "groups": "cpu"}, {"status": "1", "name": "system.cpu.system", "messages": "system.cpu.system 1.08", "value": "1.08", "command": "7", "groups": "cpu"}, {"status": "1", "name": "system.cpu.iowait", "messages": "system.cpu.iowait 0.58", "value": "0.58", "command": "7", "groups": "cpu"}, {"status": "1", "name": "system.cpu.steal", "messages": "system.cpu.steal 0.00", "value": "0.00", "command": "7", "groups": "cpu"}, {"status": "1", "name": "system.cpu.idle", "messages": "system.cpu.idle 92.66", "value": "92.66", "command": "7", "groups": "cpu"}]

配置完以上信息基本就可以跑演示版本了

演示步驟:
1、首先在服務端訪問 curl http://127.0.0.1:8081/monitor/configure/cache/all 初始化緩存信息
2、啓動agent 啓動agent後,稍等一會就可以看到一個演示版本了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章