CAT 服务端搭建
- 目录
前言
- 觉得没什么好写,这次搭建的过程和之前看到的文档有些不一样,估计以后还会不一样。但依旧记录一下,总结一下,凑凑数吧。
- CAT 项目github地址:https://github.com/dianping/cat
- CAT 服务端官方部署介绍:https://github.com/dianping/cat/wiki/readme_server
搭建环境
- 操作系统:windows 10
- jdk :1.8 (目前1.6,1.7,1.8都支持,官方推荐1.7)
- tomact 7
- maven : 3.2.5
- 我搭建的是本地模式,没钱,集群模式没能力搭
cat 组件组成
CAT主要由以下组件组成(我这边搭建就是cat-home):
- cat-home: 服务端组件,负责收集监控信息,分析处理生成报告、执行告警
- cat-client: 客户端组件,负责与服务端进行连接通信,
- cat-core: 核心处理组件,负责具体的与客户端通信服务,解析数据、输出报告
- cat-consumer : 消费处理组件,负责实际的监控数据分析,处理工作
- cat-hadoop : HDFS存储组件
1. 下载项目
- 从github上clone项目下来
- 使用idea 加载项目,添加依赖
- 打包项目
clean install -Dmaven.test.skip=true
- 找到我们要的war包
2. 配置cat数据库
- 在mysql下建cat数据库
- 编码格式选择utf8mb4(文档要求)
- 将以下sql文件导入cat数据库执行
3. 配置CAT的配置文件目录
- 配置文件所在目录要和tomact所在的盘符一致,比如我都是F盘
\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”?>
在data\appdatas\cat目录下添加datasources.xml文件
<?xml version=”1.0” encoding=”utf-8”?>
<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
//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>
在之前看的文档里说有三个xml文件,都在之前的script文件夹里面,但是我在clone的项目里面并没有看到。。。而且新的官方文档里面好像也只要添加如上这两个文件,并都是手动添加的,没有模板,可能是被删除了吧。
4. tomact配置
在tomact 的webapps目录下新增cat目录,并将war包拷至该目录,改名字为cat.war
- 我启动时候不知道为什么不能识别,我自己解压出来就可以了
在tomact的server.xml配置文件下添加contextPath
* 修改中文乱码问题
官方文档里说还要调整启动参数,修改 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”?>
<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>
<properties>
<property name="job-machine" value="true"/>
<property name="alarm-machine" value="true"/>
<property name="send-machine" value="true"/>
</properties>
结束
- 简单的搭起来了服务端,怎么用还是一脸懵逼,先到这里权当记录
还没有评论,来说两句吧...