1.前言:
看了网上很多的Cat服务的搭建,要不是2.0的版本要不是用maven命令打包,但是本猿各种方式试过均不成功,用maven命令中出现打包错误的,再就是各种配置文件网友也没有说明在哪个节点配置,配置对应的参数对于新手来说都很模糊。是乎就还是去看官网 地址:https://github.com/dianping/cat 测试版本3.0.0 服务采用centos6.5部署
2.进入官网可以找到 服务端>集群部署 当然本人测试的是单机版本的,其原理差不多 只是多了几个服务器节点而已
3.想我一样不熟悉docker的前面直接忽略,看下面重要的 找到第六部,既然自己打包不成功那么我们就自己下载war包。如下图:
4.从官网下载后,我们需要将这个war部署在我们的centos服务器上,启动之前需要配置服务器的数据库文件
4.1创建目录 mkdir -p /data/appdatas/cat 并且赋予相应的权限 chmod 755 /data/appdatas/cat
4.2在该目录下创建文件 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>
记得修改配置文件中数据库地址和用户名和密码
数据库脚本将官网下的script目录下的CatApplication.sql直接导入到自己的数据库
至于/data 下的日志文件好像会自动创建,没做详细的测试,不放心的话 可以手动创建 mkdir -p /data/applogs/cat
4.3 启动cat的war包 本人用tomcat测试
4.4 这时候其实就可以访问你的cat项目了,只是没有监控业务项目的访问
5.配置路由地址 不配置的话点击application 会出现 cat服务无法访问[127.0.0.1] 类似的报错 配置地址参考官网
http://127.0.0.1:8080/cat/s/config?op=routerConfigUpdate
官网截图如下:
注意 127.0.0.1 的ip配置改成你部署的cat项目的内网IP
重启项目 点击application 就不会提示刚才的错误啦!
6.配置客户端的访问 重要配置文件 client.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>
注意client配置的ip指的是你的cat服务所在的ip http-port指的是你cat项目的访问端口 port 2280 不要修改 默认的
client.xml所在的配置文件是和你业务项目部署在同一台服务器的。并且所在的目录也是 /data/appdatas/cat 和4.1步骤一样的只是配置文件只有client.xml 不需要数据源的xml文件
7.项目监控
本人测试采用的是springboot的方式 其实都无所谓
pom文件中引入
<!-- 客户端接入CAT的依赖 -->
<dependency>
<groupId>com.dianping.cat</groupId>
<artifactId>cat-core</artifactId>
<version>3.0.0</version>
</dependency>
8.在 src/main/resources目录下创建 文件夹META-INF 在META-INF下创建app.properties文件
我的内容为:app.name=testcat testcat可以改成你自己的项目名称
9.测试controller
@RequestMapping("test")
public String test(){
Transaction t = Cat.newTransaction("URL", "/test");
Cat.logEvent("your event type", "your event name", Event.SUCCESS, "keyValuePairs");
t.setStatus(Transaction.SUCCESS);
return "test";
}
10.将项目部署到业务服务器上启动项目 访问test方法 查看cat项目的页面 点击Transaction 搜索你自己的项目名称
就可以看到你自己的项目访问路径啦! 至此完成
11.遇到的坑 总结:
1.项目用maven打包 无法启动 改成直接下载war包
2.路由配置 需要配置服务器内网ip
3.记住cat服务器不需要配置client.xml 除非你要监控你自己本身的访问