CAT链路监控平台在Windows下安装实践

什么是CAT

CAT是由大众点评开源的一款调用链监控系统,基于Java开发的。
优点:聚合报表丰富,中文支持好,国内案例多。
缺点:具有代码侵入性

CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。
CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。

CAT 很大的优势是它是一个实时系统,CAT 大部分系统是分钟级统计,但是从数据生成到服务端处理结束是秒级别,秒级定义是48分钟40秒,基本上看到48分钟38秒数据,整体报表的统计粒度是分钟级;第二个优势,监控数据是全量统计,客户端预计算;链路数据是采样计算

CAT优势
实时处理:信息的价值会随时间锐减,尤其是事故处理过程中。
全量数据:全量采集指标数据,便于深度分析故障案例。
高可用:故障的还原与问题定位,需要高可用监控来支撑。
故障容忍:故障不影响业务正常运转、对业务透明。
高吞吐:海量监控数据的收集,需要高吞吐能力做保证。
可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统。
报表丰富: 帮助管理人员从各个角度了解系统的整体状况。
 

一、前提条件:

1、安装好JDK(1.8版本以上),配置好JDK的环境变量
2、安装好tomcat(8.5版本或以上),配置好tomcat的系统环境变量
3、安装好mysql(8.0版本)

二、配置cat3.0版本

1、tomcat配置

在tomcat部署所在的磁盘下创建/data/appdatas/cat/目录,并在此目录下创建配置文件,client.xml,datasources.xml,server.xml。经过测试,/data/appdatas/cat/目录在windows下也不一定非得在tomcat部署的磁盘目录下;也可以再其他磁盘下,但环境变量必须设置CAT_HOME

三个文件的内容如下:

client.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- 下面的IP地址替换为主机的IP地址 -->
<config mode="client">
	<servers>
		<server ip="127.0.0.1" port="2280" http-port="8080"/>
	</servers>
</config>

配置说明:

mode : 定义配置模式,固定值为client;–暂未使用
servers : 定义多个服务端信息;
server : 定义某个服务端信息;
ip : 配置服务端(cat-home)对外IP地址
port : 配置服务端(cat-home)对外TCP协议开启端口,固定值为2280;
http-port : 配置服务端(cat-home)对外HTTP协议开启端口, 如:tomcat默认是8080端口,若未指定,默认为8080端口;

datasources.xml

<?xml version="1.0" encoding="utf-8"?>
<data-sources>
	<data-source id="cat">
		<maximum-pool-size>3</maximum-pool-size>
		<connection-timeout>1s</connection-timeout>
		<idle-timeout>10m</idle-timeout>
		<statement-cache-size>1000</statement-cache-size>
		<properties><driver>com.mysql.jdbc.Driver</driver>
		<!-- 请替换为真实数据库URL及Port  -->
		<url><![CDATA[jdbc:mysql://127.0.0.1:3306/cat_monitor]]></url>  
		<!-- 请替换为真实数据库用户名  -->
		<user>root</user>  
		<!-- 请替换为真实数据库密码  -->
		<password>1203</password>  
		<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
		</properties>
	</data-source>
</data-sources>

server.xml可以不用,会用默认文件,如果你要安装HDFS存报表需要。 

2、设置环境变量CAT_HOME

环境变量的值为创建的cat文件夹目录

三、编译源码文件(或者直接下载war包也可以)

1、War下载

War下载地址:https://github.com/dianping/cat/releases/download/3.1.0/cat-home.war

下载完毕后把cat-home.war的名字更改为cat.war。

或者直接下载源码编译 :

GitHub - dianping/cat: CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。

2、把war包拷贝到tomcat的webapps目录下

四、数据库创建

在MySQL建立一个cat的空数据库,然后导入脚本即可,脚本路径 /script/CatApplication.sql

五、启动tomcat,浏览cat页面

1、将cat.war放入tomcat的webapps,双击D:\apache-tomcat-8.5.30\bin\startup.bat。

启动tomcat,

浏览地址为http://localhost:8080/cat/r

用户名:admin;密码:admin

  • 图中1是上报日志类型栏
  • 2是应用栏,选择2才能到此界面
  • 3是选择时间栏,因为日志是根据时间分的,选择哪段时间可以查询哪段的,左侧为显示的查询时间
  • 4为分钟,要查看的日志分钟
  • 5为上报日志的应用
Transaction栏

监控代码运行情况:运行次数、QPS、错误次数、失败率、响应时间统计等,
如果看客户端的监控信息,需要看Type为URL的信息

Event栏
监控一段代码运行次数:例如记录程序中一个事件记录了多少次,错误了多少次。基本和Transaction栏一样,只是缺少了时间统计

Problem栏
Problem记录整个项目在运行过程中出现的问题,包括一些异常、错误、访问较长的行为。Problem报表是由logView存在的特征整合而成,方便用户定位问题。
所有错误汇总报表第一层分类,代表错误类型(称为type),比如error、long-url等,第二级分类(称为status),对应具体的错误,比如一个异常类名等

Heartbeat
Heartbeat报表是CAT客户端,以一分钟为周期,定期向服务端汇报当前运行时候的一些状态,包括JVM数据

Business
Business报表是可以查看业务的消耗时间

State
State报表显示了与CAT相关的信息

六、客户端实现

参看cat-monitor-test项目

Springboot的启动项目必须与tomcat的项目在同一个磁盘目录下

附录:

CAT提供以下几种报表,也就是支持以下几种类型的功能。

Transaction报表 一段代码运行时间、次数,比如URL、Cache、SQL执行次数和响应时间

Event报表 一行代码运行次数,比如出现一个异常

Problem报表 根据Transaction/Event数据分析出来系统可能出现的异常,包括访问较慢的程序等

Heartbeat报表 JVM内部一些状态信息,比如Memory,Thread等

Business报表 业务监控报表,比如订单指标,支付等业务指标

JVM相关指标

以下所有的指标统计都是1分钟内的值,cat最低统计粒度是一分钟。

JVM GC 相关指标      描述

NewGc Count / PS Scavenge Count     新生代GC次数

NewGc Time / PS Scavenge Time         新生代GC耗时

OldGc Count         老年代GC次数

PS MarkSweepTime     老年代GC耗时

Heap Usage Java虚拟机堆的使用情况

None Heap Usage        Java虚拟机Perm的使用情况

JVM Thread 相关指标        描述

Active Thread       系统当前活动线程

Daemon Thread  系统后台线程

Total Started Thread    系统总共开启线程

Started Thread     系统每分钟新启动的线程

CAT Started Thread      系统中CAT客户端启动线程

可以参考java.lang.management.ThreadInfo的定义

系统指标

System 相关指标        描述

System Load Average  系统Load详细信息

Memory Free       系统memoryFree情况

FreePhysicalMemory   物理内存剩余空间

/ Free   /根的使用情况

/data Free    /data盘的使用情况

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值