(1) 配置jdk安装环境
需要jdk1.7_79以下的jdk版本,以上的不兼容。我以前本地的是jdk1.7_80 ,编译好后,放到tomcat下不行。
jdk环境安装的过程如下:
1:获得jdk1.7.67
>wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz
解压
>tar -xvf jdk-7u67-linux-x64.tar.gz
2:配置环境变量
>vi /etc/profile
在最后一行添加你的jdk的安装目录
export JAVA_HOME=/home/k12ct/jdk1.7.0_67
export PATH=$JAVA_HOME/bin:$PATH
保存退出,并使载入最新配置
source /etc/profile
查看jdk版本
>java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
(2):安装maven
2.1:下载maven包
wget http://apache.fayea.com/apache-mirror/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz
2:解压
>tar -xvf apache-maven-3.2.3-bin.tar.gzba
3:配置环境变量
>vi /etc/profile
在最后一行添加你的maven的安装目录
export M2_HOME="/home/k12ct/apache-maven-3.2.5"
export M2="$M2_HOME/bin"
export PATH="$M2:$PATH"
保存退出,并使载入最新配置
>source /etc/profile
4:查看maven版本号
>mvn -v
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-15T01:29:23+08:00)
Maven home: /home/k12ct/apache-maven-3.2.5
Java version: 1.7.0_67, vendor: Oracle Corporation
Java home: /home/k12ct/jdk1.7.0_67/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.19.0-25-generic", arch: "amd64", family: "unix"
(3)安装git
1:安装
>sudo apt-get install git
2:查看git版本
>git --version
git version 1.9.1
(4)安装mysql
tips: 如果有mysql的可以跳过这一步
请参考我的另外一篇文章 ubuntu 14.04 安装 mysql 5.6 :http://blog.csdn.net/chenpy/article/details/50344085
在此就不多说了。
当然如果想图方便,可以在本机先安装个mysql的服务端
>sudo apt-get install mysql-server
输入mysql的root的密码
root
如果你是centos
安装命令如下
>yum -y install mysql-server
>/etc/rc.d/init.d/mysqld restart
>/usr/bin/mysqladmin -u root password ‘root‘
>cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
删除所有的内容,添加如下内容
http://blog.csdn.net/chenpy/article/details/51556673
(5)下载最新的cat源码,并编译,发布
>mkdir git
>cd git
>git clone https://github.com/dianping/cat.git
等待下载完毕
cat依赖的jar包有些事墙外的,因此需要把cat依赖的jar包安装到本地仓库
下载分支:mvn-repo
>wget https://codeload.github.com/dianping/cat/zip/mvn-repo
其实下载的是一个压缩包
>mv mvn-repo mvn-repo.zip
解压
>unzip ./mvn-repo.zip
>cd cat-mvn-repo/
把里面的文件复制到本地仓库
cp -r ./com/ ~/.m2/repository/
cp -r ./org/ ~/.m2/repository/
如发现没有maven的目录,请创建之。
如果发现本地仓库有这些文件夹,请强制覆盖
利用管道符:
>yes | cp -fr ./org/ ~/.m2/repository/
复制完毕后就可以编译cat了
>mvn clean install -DskipTests
完毕后请安装:cat
>mvn cat:install
如果发现安装出错,可能是没有/data 目录的权限。
请修改data目录的权限
>cd /data/
>chmod -R 777 ./appdatas/
>chmod -R 777 ./applogs/
重新安装
>mvn cat:install
安装需要输入mysql的配置
按照提示输入:
1:jdbc:xxx:ip:3306
root
root
就可以
(6)配置cat
下载tomcat7
>wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz
>tar -xvf apache-tomcat-7.0.69.tar.gz
把在cat-home/target/里面打包好的cat-alpha-1.3.6.war 放到tomcat 的webapp中,并改名为cat.war
进入 /data/appdatas/cat/ 目录
<1>检查并修改client.xml
如果该目录下没有, 则拷贝 cat/script 目录下的client.xml 到该目录下
Mode默认为client不需要修改
servers标签 里面的 server 标签 里面的ip需要修改为你服务端的ip,端口也是要修改为服务端的端口,默认是2280,http-port 是tomcat端口,
如果是默认的tomcat则是8080
<2>检查并修改 datasources.xml
如果能正确的执行 mvn cat:install 命令,则这里的数据源的配置都是正确的,不需要修改
如下是正确的配置截图
配置完毕后,查看是否在数据库中已经建立了cat的数据库,如果没有建立,请执行 script 文件夹里面的cat.sql手动建库
<3> 配置server.xml
Local-mode :为本地模式,设置为false,否则将不会使用数据库和hdfs存储
Hdfs-machine: 是否启用hdfs存储,设为false
Job-machine:当前服务为报告工作机,当有多台服务器时,开启一台即可
Alert-machine :定义为报警机,同样开启一台即可,如没有一台开启,告警功能将不能够正常使用。
Storage :定义数据存储相关信息,这里定义了本地目录/data/appdatas/cat/buket/为存储目录,本地报告及本地日志保存时间均为7天。
Console:控制台信息,定义默认的domain为Cat(每个cat应用要求都需要有一个domain,Cat本身的domain为Cat),并显示cat的domain
Remote-servers:定义http服务列表,我这里就一台机器 192.168.1.203
(7):启动cat服务,并配置客户端路由
进入tomcat的bin目录,启动tomcat
进入http://192.168.1.203:8080/cat
如果发现如下界面,说明启动成功
点击红色的 “配置”按钮
输入:catadmin catadmin
进入 全局告警配置 -》 客户端路由
到此为止,服务端已经配置完毕。
(8) 客户端配置
也就是本机要做demo的配置
新建demo的maven工程
主要的配置如下:
8.1:配置基础的pom.xml文件
主要的依赖
<dependency>
<groupId>com.dianping.cat</groupId>
<artifactId>cat-core</artifactId>
<version>1.3.6</version>
</dependency>
<!-- spring mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.0.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.0.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.0.9.RELEASE</version>
</dependency>
<!-- jsp -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- jsp -->
如果添加cat core依赖发现没有加载到jar包,
说明你本地仓库里面没有cat的包。
需要安装cat到本地仓库
具体方法和安装服务端一样
>git clone https://github.com/dianping/cat.git
下载分支:mvn-repo, 安装cat依赖到本地仓库
执行maven命令安装
mvn clean install -DskipTests
8.2:配置spring-mvc
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
<!-- scan the package and the sub package -->
<context:component-scan base-package="com.k12ct.demo" />
<!-- don‘t handle the static resource -->
<mvc:default-servlet-handler />
<!-- if you use annotation you must configure following setting -->
<mvc:annotation-driven />
<!-- configure the InternalResourceViewResolver -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="internalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 后缀 -->
<property name="suffix" value=".jsp" />
</bean>
<!-- 配置拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.k12ct.demo.CatInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
</beans>
8.3 配置web.xml
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>class-service</display-name>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<!-- <load-on-startup>1</load-on-startup> -->
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
8.4 配置cat相关
在src/main/resources 包下
新建 META-INF 文件夹
在此文件夹中新建 app.properties文件 ,里面内容如下 :
app.name=demo
在META-INF文件夹中,新建cat文件夹,
然后在cat文件夹中,新建client.xml ,里面内容如下:
<config mode="client">
<domain id="demo" />
</config>
8.5 配置编写springmvc的拦截器。
public class CatInterceptor implements HandlerInterceptor {
private ThreadLocal<Transaction> tranLocal = new ThreadLocal<Transaction>();
private ThreadLocal<Transaction> pageLocal = new ThreadLocal<Transaction>();
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
String uri = request.getRequestURI();
Transaction t = Cat.newTransaction("URL", uri);
Cat.logEvent("URL.Method", request.getMethod(), Message.SUCCESS, request.getRequestURL().toString());
Cat.logEvent("URL.Host", request.getMethod(), Message.SUCCESS, request.getRemoteHost());
tranLocal.set(t);
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
String viewName = modelAndView != null ? modelAndView.getViewName() : "无";
Transaction t = Cat.newTransaction("View", viewName);
pageLocal.set(t);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// 请求-页面渲染前
Transaction pt = pageLocal.get();
pt.setStatus(Transaction.SUCCESS);
pt.complete();
// 总计
Transaction t = tranLocal.get();
t.setStatus(Transaction.SUCCESS);
t.complete();
}
}
8.6 配置cat的client
进入cd /data/appdatas/cat/ 目录,我本机是mac系统,就直接进入的这个目录,如果你是windows系统,
请进入和eclipse同级的同目录下。例如,你的eclipse是d盘,则在d盘的 /data/appdatas/cat/
编写client.xml
然后启动项目,随便访问一下链接,
进入cat的服务端,你就会看到,你的demo项目的东西
tips:要点击搜索栏旁边的全部和常用,要不,你发现不了你自定义的domain,我当时就是没有点击这个,查问题查了一上午。其实已经
成功了,就是没有点击这个按钮。
下面是我做的demo的源码包。
http://download.csdn.net/download/chenpy/9537955
简单的demo做完了,下一篇文章是深入学习cat。并加入到项目中。
如果文章中有问题,或者你安装配置中出现了问题,请联系本人QQ:397352642。
谢谢 ~~~~