https://github.com/AsuraTeam/monitorjava
運維工做中本身開發的監控系統,功能強大靈活
系統安裝簡單,配置簡單,相比zabbix, nagios,cacti,小米監控等都使用至關簡單。只須要會寫腳本,語言不限就能夠實現任意監控需求。
系統安裝簡單,配置簡單
一、數據採集免配置: agent自發現、agent主動推送, 任何數據自定義腳本
二、可擴展性, 擴展簡單,隨時擴,隨心擴
三、歷史數據查詢, 能夠秒級返回整年數據趨勢圖, 多個指標數據, 趨勢圖更明晰:
3天 7天,15天,30天,60天,90天,120天,180天,240天,360天時間段趨勢
四、架構設計高可用: 整個系統無核心單點,所涉及到的
負載均衡(nginx, haproxy, lvs)均可以用來負載server端, mysql(無數據壓力,不作數據存儲),
redis(須要高可用配置,推薦使用Codis),
共享存儲設備(本地磁盤,nfs,mfs等).
五、任何數據圖像實時查看,歷史查看功能
六、針對統一系統,基礎監控無需添加配置,自動添加(好比cpu,負載,磁盤使用率,網絡流量,ss狀態信息等,均可以自定義實現)
七、報警組配置,支持微信,釘釘,手機,郵件功能(微信,釘釘須要單獨處理,不是人都有的)
八、分佈式監控,每一個裝agent的都是一個監控系統,除配置外(配置只能在server端完成)
九、自定義數據上報時間,最低5秒上報一次數據
十、不一樣server性能對比,更簡單,更清晰
十一、支持圖像搜索,主機名,ip地址搜索圖像
十二、圖像收藏功能,經常使用的直接在收藏列表點開查看
1三、支持ldap認證登錄
1四、支持任何指標數據多條件篩選排序,資源使用狀況一目瞭然
mysql
歡迎加入 阿修羅監控系統 QQ羣 149469467
總體架構
ios
監控大盤
報警信息查看
圖像展現
大圖顯示
多維數據顯示(任何機器任何數據組合對比)
指標排序功能
圖像搜索功能
指標聚合功能,單指標多服務器,平均和求和
圖像收藏功能
系統概覽
報警統計
指標報警分析報表
監控添加頁面
腳本添加頁面
nginx
一、java環境, jdk1.7
二、tomcat
三、redis
四、mysql數據庫
五、mvn
六、agent
git
運行系統 Centos 6.5
爲方便使用,軟件包tools/下面已集成mvn, java, redis,tomcat工具,直接可使用, 無需自行下載
github
一、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 替換成你本身的域名
二、準備一個redis服務
請綁定host os.redis.com到你的redis地址
ping os.redis.com 看是否能解析到你的redis的IP地址
若是要修改域名請在安裝完成後修改 /home/runtime/tomcat_8081/webapps/ROOT/WEB-INF/classes/system.properties 替換成你本身的域名
三、修改對應的環境變量
四、綁定本機hostname到你的ip地址
五、本系統強制依賴時間,請保證全部服務器時間一致
web
一、安裝mysql數據庫
二、安裝jdk7
三、安裝redis服務
四、安裝tomcat
五、安裝mvn
Mysql庫請使用utf8字符集
其中redis, tomcat, mvn,jdk7 能夠直接使用tools裏面的包, 安裝程序統一部署到 /home/runtime 目錄
詳情查看deploy.sh腳本redis
目錄結構:
#ls /home/runtime
jdk7 tomcat_8081 redis maven 數據庫自行配置便可
sql
一、使用mvn打包, 打包完成後,將target/agent.jar 記錄,稍後會用到
二、程序運行環境在tools/monitor.tar.bz2, 解壓到 /home/runtime/目錄
三、將tools裏面的jdk7解壓並更名爲 /home/runtime/monitor/java/ 目錄
四、修改agent配置文件,將全部v.asura.com替換爲你的服務端的地址,爲方便後期負載,儘可能使用nginx等負載設備, 使用域名形式配置
修改redis.server 和server端使用的redis一致
五、將剛纔的 agent.jar 複製到 /home/runtime/monitor/lib/ 目錄
cp -v agent.jar /home/runtime/monitor/lib/
六、啓動 cd /home/runtime/monitor/bin; sh agent start
七、查看日誌 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
一、配置資源信息
點擊 資源信息->資源配置 配置下列資源數據
該模塊主要是記錄資源數據
一、機房配置(可選)
二、機櫃配置(可選)
三、環境配置
四、業務線配置
五、管理員配置
六、服務器類型配置
七、服務類型配置
八、系統類型配置
以上配置只爲第9條準備
九、服務器配置
二、配置告警相關配置
點擊 監控分析->監控配置->告警發送配置 配置下列信息
注意:發送報警只對組發送
一、配置聯繫組
二、配置聯繫人
三、消息通道配置
消息通道配置默認有郵件和手機的配置模板,自行修改便可
三、其餘更多配置,須要你們共享
四、歡迎共享監控腳本
監控腳本輸出爲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"}]
配置完以上信息基本就能夠跑演示版本了
演示步驟:
一、首先在服務端訪問 curl http://127.0.0.1:8081/monitor/configure/cache/all 初始化緩存信息二、啓動agent 啓動agent後,稍等一會就能夠看到一個演示版本了