1. Cat简介
CAT(Central Application Tracking)基于Java开发的实时监控平台,主要包括移动端监控,应用侧监控,核心网络层监控,系统层监控等。是一个提供实时监控报警,应用性能分析诊断的工具。
主要有如下功能:
- 机器状态信息:CPU负载、内存信息、磁盘使用率等服务器信息及线程栈、堆、垃圾回收等应用进程信息;
- 请求访问情况:请求个数、响应时间、处理状态等接口访问信息;
- 异常情况:服务无响应、应用Exception等异常信息;
- 业务情况:订单量统计,销售额等业务信息。
2. 应用架构图
springboot应用可以通过client将监控信息传递至Cat服务端处理,生成报表并启动告警。
3. 项目配置
- 创建客户端路由配置
在被监控应用服务器上创建目录/data/appdatas/cat/
和/data/applogs/cat
,
在/data/appdatas/cat/
下新增客户端路由文件client.xml
,用于客户端连接Cat服务端,内容如下:<?xml version="1.0" encoding="utf-8"?> <config mode="client"> <servers> <server ip="10.253.129.2" port="2280" http-port="8080"/> <server ip="10.253.129.8" port="2280" http-port="8080"/> <server ip="10.253.129.17" port="2280" http-port="8080"/> </servers> </config>
- 依赖引入
客户端下载链接:https://github.com/dianping/cat/blob/master/lib/java/jar/cat-client-3.0.0.jar
也可以下载源代码自行编译:https://github.com/dianping/cat/tree/master/lib/java
<dependency> <groupId>com.dianping.cat</groupId> <artifactId>cat-client</artifactId> <version>3.0.0</version> </dependency>
- 应用配置
在resources
目录下创建META-INF
文件夹,在META-INF下创建app.properties
,文件内容如下:app.name=XXXXX #项目domain,应用自定义
- 增加访问URL监控
springboot应用增加如下文件即可(CatFilterConfigure.java
)package com.test.framework.config; import com.dianping.cat.servlet.CatFilter; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class CatFilterConfigure { @Bean public FilterRegistrationBean catFilter() { FilterRegistrationBean registration = new FilterRegistrationBean(); CatFilter filter = new CatFilter(); registration.setFilter(filter); registration.addUrlPatterns("/*"); registration.setName("cat-filter");