需要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
等待下載完畢
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:sql;">
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 ,裡面內容如下:
8.5 配置編寫springmvc的攔截器。
public class CatInterceptor implements HandlerInterceptor {
private ThreadLocal tranLocal = new ThreadLocal();
private ThreadLocal pageLocal = new ThreadLocal();
@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,我當時就是沒有點擊這個,查問題查了一上午。其實已經
成功了,就是沒有點擊這個按鈕。