CAT

官方文档: https://github.com/dianping/cat/wiki/readme_server


使用场景

CAT 目前在美团的产品定位是应用层的统一监控组件,基本接入了美团所有核心应用,在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等。


CAT的优势

实时处理:信息的价值会随时间锐减,尤其是事故处理过程中;

全量数据:最开始的设计目标就是全量采集,全量的好处有很多;

高可用:所有应用都倒下了,需要监控还站着,并告诉工程师发生了什么,做到故障还原和问题定位;

故障容忍:CAT 本身故障不应该影响业务正常运转,CAT 挂了,应用不该受影响,只是监控能力暂时减弱;

高吞吐:要想还原真相,需要全方位地监控和度量,必须要有超强的处理吞吐能力;

可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统。


CAT支持的监控消息类型

Transaction 适合记录跨越系统边界的程序访问行为,比如远程调用,数据库调用,也适合执行时间较长的业务逻辑监控,Transaction用来记录一段代码的执行时间和次数;

Event 用来记录一件事发生的次数,比如记录系统异常,它和transaction相比缺少了时间的统计,开销比transaction要小;

Heartbeat 表示程序内定期产生的统计信息, 如CPU利用率, 内存利用率, 连接池状态, 系统负载等;

Metric 用于记录业务指标、指标可能包含对一个指标记录次数、记录平均值、记录总和,业务指标最低统计粒度为1分钟。


CAT服务端部署

CAT安装环境
  • Linux2.6以及之上(2.6内核才可以支持epoll),线上服务端部署请使用Linux环境,Mac以及Windows环境可以作为开发环境,美团点评内部CentOS6.5

  • List itemJava 6,7,8,服务端推荐使用jdk7的版本,客户端jdk6、7、8都支持

  • Maven 3及以上

  • MySQL 5.6,5.7,更高版本MySQL都不建议使用,不清楚兼容性 J2EE容器建议使用tomcat,建议使用推荐版本7.*.或8.0.

  • Hadoop环境可选,一般建议规模较小的公司直接使用磁盘模式,可以申请CAT服务端,500GB磁盘或者更大磁盘,这个磁盘挂载在/data/目录上

CAT组件

cat-home: 服务端组件,负责收集监控信息,分析处理生成报告、执行告警;

cat-client: 客户端组件,负责与服务端进行连接通信;

cat-core: 核心处理组件,负责具体的与客户端通信服务,解析数据、输出报告;

cat-consumer : 消费处理组件,负责实际的监控数据分析,处理工作;

cat-hadoop : HDFS存储组件。


部署Cat

1、安装JDK

卸载系统jdk

rpm -qa | grep java
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
---------------------——--------------------------------------------------------
yum -y remove java java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

安装jdk

使用wget 下载centos的repo文件
wget -O /etc/yum.repos.d/ali.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all 					//清除yum源
yum makecache 					//生成缓存 
yum  install java

配置环境变量:

vim /etc/profile

增加以下配置:

#java
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_131
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

执行以下语句,使环境变量生效;避免重启系统:

source /etc/profile

2、安装Maven

下载Maven

mkdir /usr/local/maven
tar -xvf apache-maven-3.3.9-bin.tar.gz -C /usr/local/maven

配置maven环境变量

vim /etc/profile

添加以下内容:

#Maven
export M2_HOME=/usr/local/maven/apache-maven-3.3.9
export M2=$M2_HOME/bin
export PATH=$PATH:$M2
source /etc/profile

3、安装数据库
  • 安装mysql数据库 ;
  • 创建cat用户和cat数据库 ,cat用户对cat数据库有完全控制权;
  • 导入cat数据库;

数据库脚本在源码包里面,cat-home/script/CatApplication.sql

mysql -uroot -Dcat < CatApplication.sql

说明:

注意1:一套独立的CAT集群只需要一个数据库;
注意2:数据库编码使用utf8mb4,否则可能造成中文乱码等问题。

MySQL的一个系统参数:max_allowed_packet,其默认值为1048576(1M),修改为1000M,修改完需要重启mysql


4、创建 /data 目录;
mkdir -pv /data/{appdatas,applogs}/cat

chmod -R 755 /data

5、配置/data/appdatas/cat/client.xml

说明

1、此配置文件的作用是所有的客户端都需要一个地址指向CAT的服务端

2、此文件可以通过运维统一进行部署和维护,比如使用puppet等运维工具

3、不同环境这份文件不一样,比如区分prod环境以及test环境,在美团点评内部一共是2套环境的CAT,一份是生产环境,一份是测试环境

4、注意:当路由错误,且该文件夹下存在client_cache.xml,请删除client_cache.xml,再重启服务

<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
    <servers>
        <server ip="10.1.1.1" port="2280" http-port="8080"/>
    </servers>
</config>

2280是默认的CAT服务端接受数据的端口,不允许修改,http-port是Tomcat启动的端口,默认是8080,建议使用默认端口


6、 配置/data/appdatas/cat/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><![CDATA[jdbc:mysql://127.0.0.1:3306/cat]]></url>  <!-- 请替换为真实数据库URL及Port  -->
			<user>root</user>  <!-- 请替换为真实数据库用户名  -->
			<password>root</password>  <!-- 请替换为真实数据库密码  -->
			<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
		</properties>
	</data-source>
</data-sources>

此xml仅仅为模板,请根据自己实际的情况替换jdbc.url,jdbc.user,jdbc.password的实际值


7、war打包

源码构建

在cat的源码目录,执行mvn clean install -DskipTests
如果发现cat的war打包不通过,CAT所需要依赖jar都部署在 http://unidal.org/nexus/

可以配置这个公有云的仓库地址到本地Maven配置(一般为~/.m2/settings.xml),理论上不需要配置即可,可以参考cat的pom.xml配置:

<repositories>
  <repository>
     <id>central</id>
     <name>Maven2 Central Repository</name>
     <layout>default</layout>
     <url>http://repo1.maven.org/maven2</url>
  </repository>
  <repository>
     <id>unidal.releases</id>
     <url>http://unidal.org/nexus/content/repositories/releases/</url>
  </repository>
</repositories>

官网下载
如果自行打包仍然问题,请使用下面链接进行下载:

http://unidal.org/nexus/service/local/repositories/releases/content/com/dianping/cat/cat-home/3.0.0/cat-home-3.0.0.war

官方的cat的master版本,重命名为cat.war进行部署,注意此war是用jdk8,服务端请使用jdk8版本


8、war包部署

将步骤6的war包部署到本机tomcat的webapps下,启动tomcat。

打开控制台的URL http://10.1.1.1:8080/cat/s/config?op=routerConfigUpdate

报表简介

  • Transaction报表
  • Event报表
  • Problem报表
  • Heartbeat报表
  • Business报表

配置简介

  • 项目配置
  • 告警配置
  • 全局配置
  • 路由配置
  • 业务指标配置
  • 心跳报表配置

服务端部署

客户端集成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值