阿修罗监控系统AsuraMonitor

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

总体架构 
p_w_picpath 
ios

监控大盘 

p_w_picpath
报警信息查看

p_w_picpath
图像展现

p_w_picpath
大图显示

p_w_picpath
多维数据显示(任何机器任何数据组合对比)

p_w_picpath

p_w_picpath

p_w_picpath
指标排序功能

p_w_picpath
图像搜索功能

p_w_picpath
指标聚合功能,单指标多服务器,平均和求和

p_w_picpath
图像收藏功能

p_w_picpath
系统概览

p_w_picpath
报警统计

p_w_picpath
指标报警分析报表

p_w_picpath
监控添加页面

p_w_picpath
脚本添加页面

p_w_picpath
nginx


特别注意:本系统不能在公网开放,只能在私有网络运行,避免数据泄露或篡改


请注意防火墙, 监控上报数据使用 tcp 80端口和udp的50000到50300端口, 请保证agent都能链接到server的这些端口




系统组成部分:


一、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

agent安装配置


六、安装agent


一、使用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后,稍等一会就能够看到一个演示版本了

相关文章
相关标签/搜索