前言
- CAT 项目github地址:
https://github.com/dianping/cat
- CAT 服务端官方部署介绍:
https://github.com/dianping/cat/wiki/readme_server
打包cat
- 操作系统:windows 10
- jdk :1.8 (目前1.6,1.7,1.8都支持,官方推荐1.7)
- maven : 3.5.4
部署cat环境
- centos 7
- jdk 1.8
- mysql 5.7
cat 组件组成
CAT主要由以下组件组成(我这边搭建就是cat-home):
- cat-home: 服务端组件,负责收集监控信息,分析处理生成报告、执行告警
- cat-client: 客户端组件,负责与服务端进行连接通信,
- cat-core: 核心处理组件,负责具体的与客户端通信服务,解析数据、输出报告
- cat-consumer : 消费处理组件,负责实际的监控数据分析,处理工作
- cat-hadoop : HDFS存储组件
1. 下载项目
-
从github上clone项目下来
如果速度过慢,可以利用gitee急速拉去GitHub代码。
https://www.yepk.cn/archives/github-clone-tortoise-speed.html -
使用idea 加载项目,添加依赖
-
打包项目
clean install -Dmaven.test.skip=true
- 打成war包
2. 配置cat数据库
- 在mysql下建cat数据库
- 编码格式选择utf8mb4(文档要求)
- 将以下sql文件导入cat数据库执行
3. 配置CAT的配置文件目录
配置文件所在目录要和tomact所在目录
\data\appdatas\cat
\data\applogs\cat
- 在data\appdatas\cat目录下添加client.xml文件
- 说明
- 此配置文件的作用是所有的客户端都需要一个地址指向CAT的服务端
- 此文件可以通过运维统一进行部署和维护,比如使用puppet等运维工具
- 不同环境这份文件不一样,比如区分prod环境以及test环境,在美团点评内部一共是2套环境的CAT,一份是生产环境,一份是测试环境
- 注意:当路由错误,且该文件夹下存在
client_cache.xml
,请删除client_cache.xml
,再重启服务
<?xml version="1.0" encoding="utf-8"?> <config mode="client"> <servers> <server ip="127.0.0.1" port="2280" http-port="8080"/> </servers> </config>
- 在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></password> <!-- 请替换为真实数据库密码 -->
<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
</properties>
</data-source>
</data-sources>
4. tomact配置
- 把war名字改成cat.war
- 修改中文乱码问题
<Connector port="8080" protocol="HTTP/1.1"
URIEncoding="utf-8" connectionTimeout="20000"
redirectPort="8443" />
- 官方文档里说还要调整启动参数,修改 catalina.sh文件,自己搞吧,这里不伺候。
5. 启动项目
打开控制台的URL,http://127.0.0.1:8080/cat/s/config?op=routerConfigUpdate
默认用户名:admin 默认密码:admin。CAT本身无登录和权限校验功能,请按需定制
本机路由
-
服务端配置 (http://127.0.0.1:8080/cat/s/config?op=serverConfigUpdate)
-
说明:这个只需要更新一次,配置是保存在mysql的数据库里面。
-
CAT节点的不同职责(抄的,暂时也不是很清楚)
- 控制台 - 提供给业务人员进行数据查看【默认所有的cat节点都可以作为控制台,不可配置】
- 消费机 - 实时接收业务数据,实时处理,提供实时分析报表【默认所有的cat节点都可以作为消费机,不可配置】
- 告警端 - 启动告警线程,进行规则匹配,发送告警(目前仅支持单点部署)【可以配置】
- 任务机 - 做一些离线的任务,合并天、周、月等报表 【可以配置】
-
如下的直接抄进去就好了
<?xml version="1.0" encoding="utf-8"?>
<server-config>
<server id="default">
<properties>
<property name="local-mode" value="false"/>
<property name="job-machine" value="false"/>
<property name="send-machine" value="false"/>
<property name="alarm-machine" value="false"/>
<property name="hdfs-enabled" value="false"/>
<property name="remote-servers" value="127.0.0.1:8080"/>
</properties>
<storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7">
<hdfs id="logview" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="logview"/>
<hdfs id="dump" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="dump"/>
<hdfs id="remote" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="remote"/>
</storage>
<consumer>
<long-config default-url-threshold="1000" default-sql-threshold="100" default-service-threshold="50">
<domain name="cat" url-threshold="500" sql-threshold="500"/>
<domain name="OpenPlatformWeb" url-threshold="100" sql-threshold="500"/>
</long-config>
</consumer>
</server>
<server id="127.0.0.1"> <!-- 本机模式这个IP替换为cat拿到的内网IP,此IP是看transaction报表下cat的自己上报的IP,用127.0.0.1是没用的。 -->
<properties>
<property name="job-machine" value="true"/>
<property name="alarm-machine" value="true"/>
<property name="send-machine" value="true"/>
</properties>
</server>
</server-config>
结束
没了