身为程序员,避免不了的要跟BUG打交道。一般在出现BUG的时候,要么登陆Linux查日志、要么通过ELK查关键字。但是这两种都存在一些缺点。
如果通过Linux查日志:
1、需要申请线上服务器权利
2、机器多了,文件多了,无法进行快速定位
如果通过ELK查日志:
1、只能通过关键字查日志
而且这两种方式,都存在共同的劣势:
1、无法对bug种类进行统计,以判断优先级。毕竟出现很多种bug时,要有限处理优先级高的,以保障线上服务的运行。
2、无法知道服务影响时间,如果服务响应很慢,在QPS高的情况下很容出现time out 的问题。无法做到提前预知以便修改。
所以在这里小编推出一个很好用的实时监控平台CAT。除了能查看BUG外,还能实时监控服务的响应时间,以便于及时的做优化、加机器处理,保障服务的健壮性。
CAT搭建:
1、保证/data/appdatas/cat目录的操作权限。下面包含三个配置文件。
a.配置服务端和客户端的配置文件client.xml,需要部署在客户端,用来感知服务端的地址:
2280是CAT服务端默认端口,8080是tomcat的默认端口
b.数据库配置datasources.xml,需要部署在服务端,用来记录操作信息:app库跟cat库一样,但是不起作用,仅仅保证代码不报错。
c.服务端server.xml
CAT节点一共有四个职责
控制台 - 提供给业务人员进行数据查看【默认所有的cat节点都可以作为控制台,不可配置】
消费机 - 实时接收业务数据,实时处理,提供实时分析报表【默认所有的cat节点都可以作为消费机,不可配置】
告警端 - 启动告警线程,进行规则匹配,发送告警(目前仅支持单点部署)【可以配置】
任务机 - 做一些离线的任务,合并天、周、月等报表 【可以配置】
2、cat-home.war部署
git源码地址:https://github.com/dianping/cat,下载源码打包cat-home.war,在tomcat进行部署
3、利用tomcat启动上步中的cat.war(将cat-home.war重命名)
4、监控业务配置:
5、客户端实战:
在git源码中下载jar:
查看文档中设计文档,选择监控模型
5、效果展示
业务整体预览:
服务调用总次数、失败次数、服务耗时情况等
错误曲线图