一、踩坑
坑一:git上的资源下载不下来
不知道最近git咋的,下啥都下载到一半然后中断,中断重试又重新下载,周而复始了好久还是下载不了,网上说的用git客户端下载、什么镜像下载,我试过,我本地不行,不知道其他人行不行,然后几经周折,终于找到了一个cat项目,下载完后,还要拉分支cat-mvn-repo的资源,不然打包不了,maven里面需要这些包,这里面又耗费了大量时间去下载
坑二:安装插件mvn cat:install,根本就安装不了
看了好多博客,说要执行这个命令来安装插件,执行了好多次一直报错,根本下载不了,无奈之下到处找方法,还有的说3.0.0安装不了,切换到2.0.0就可以了,我也试过,根本就不行,后面才发现这个插件可以不用安装,它的主要作用就是去找数据库的连接信息,如果你也遇到这种问题,这步可以不弄的
坑三:创建\data\appdatas\cat的坑
网上有的说在tomcat的根目录下面创建这个目录,然后放入资源,我创建了,根本没用,一直报找不到数据源,让我苦苦折腾了好久,最后发现应该放在tomcat所在盘符的根目录,比如tomcat在D盘,那就应该在D盘的目录中创建文件
二、搭建cat完整步骤
1、资源准备、环境要求
需要准备好cat项目,cat-mvn-repo两个资源
地址:https://github.com/dianping/cat(cat)
https://codeload.github.com/dianping/cat/zip/mvn-repo(cat-mvn-repo) 反正git上不好下载,老是断,我看看能不能上传资源,刚写博客不久
搭建环境
· git (拉源码)
· jdk6+
· maven3+
· mysql5+ (CAT web后台数据库使用mysql)
· tomcat7+ (我们会使用tomcat来跑cat-home)
2、打包、配置
打包
用管理员身份运行cmd,进入到我们的cat-master目录,执行命令
mvn clean install -DskipTests
打包的时候可能不是一帆风顺的,如果报哪个包下载失败,就去对应pom文件中中切换你maven中有的版本,例如:我之前打包2.4就不行,我就切换到2.5,可能有多个报错,依次解决就行了
配置资源
1、在项目中分别找到以下文件 client.xml、datasources.xml和server.xml三个文件
然后在你项目位置的根目录(不是tomcat的根目录)下创建文件夹\data\appdatas\cat,将这三个资源放进去
其中主要配置DataSource.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.01: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>
Server.xml
<?xml version="1.0" encoding="utf-8"?>
<server-config>
<server id="default">
<properties>
<property name="local-mode" value="true"/>
<property name="job-machine" value="true"/>
<property name="send-machine" value="false"/>
<property name="alarm-machine" value="true"/>
<property name="hdfs-enabled" value="false"/>
<property name="remote-servers" value="172.19.16.153:8080"/>
</properties>
<storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="2" local-logivew-storage-time="1" har-mode="true" upload-thread="5">
<hdfs id="dump" max-size="128M" server-uri="hdfs://127.0.0.1/" base-dir="/user/cat/dump"/>
<harfs id="dump" max-size="128M" server-uri="har://127.0.0.1/" base-dir="/user/cat/dump"/>
<properties>
<property name="hadoop.security.authentication" value="false"/>
<property name="dfs.namenode.kerberos.principal" value="hadoop/dev80.hadoop@testserver.com"/>
<property name="dfs.cat.kerberos.principal" value="cat@testserver.com"/>
<property name="dfs.cat.keytab.file" value="/data/appdatas/cat/cat.keytab"/>
<property name="java.security.krb5.realm" value="value1"/>
<property name="java.security.krb5.kdc" value="value2"/>
</properties>
</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="172.19.16.153">
<properties>
<property name="job-machine" value="true"/>
<property name="send-machine" value="false"/>
<property name="alarm-machine" value="true"/>
</properties>
</server>
</server-config>
参数说明:
server节点:代表一台机器的配置。如果id为default,代表默认配置;如果id为ip,代表该台服务器的配置
local-mode : 定义服务是否为本地模式(开发模式),在生产环境时,设置为false,启动远程监听模式。默认为 false;
hdfs-machine : 定义是否启用HDFS存储方式,默认为 false;
job-machine : 定义当前服务是否为报告工作机(开启生成汇总报告和统计报告的任务,只需要一台服务机开启此功能),默认为 false;
alarm-machine : 定义当前服务是否为报警机(开启各类报警监听,只需要一台服务机开启此功能),默认为 false;
send-machine : 定义当前服务告警是否发送(当时为了解决测试环境开启告警线程,但是最后告警不通知,此配置后续会逐步去除,建议alarm-machine开启为true的时候,这个同步为true)
storage节点: 定义数据存储配置信息
local-report-storage-time : 定义本地报告存放时长,单位为(天)
local-logivew-storage-time : 定义本地日志存放时长,单位为(天)
local-base-dir : 定义本地数据存储目录
hdfs : 定义HDFS配置信息,便于直接登录系统
server-uri : 定义HDFS服务地址
console : 定义服务控制台信息
remote-servers : 定义HTTP服务列表,(远程监听端同步更新服务端信息即取此值)
ldap : 定义LDAP配置信息(这个可以忽略)
ldapUrl : 定义LDAP服务地址(这个可以忽略)
client.xml
<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
<servers>
<server ip="172.19.16.153" port="2280" http-port="8080"/>
</servers>
</config>
2、在数据库中创建cat数据库
然后执行sql文件,sql文件位置
项目启动
进入项目,拷贝/cat-home/target/cat-alpha-1.3.6-SNAPSHOT.war这个文件到tomcat的webapps里面,修改名字成:cat.war。然后启动tomcat
最后在浏览器里面输入http://localhost:8080/cat/r,就可以看到如下界面了
追加:
1、如果是其他端口的话需要在这里加上端口号,不然会一直报500