cat監控平台環境搭建 專題


項目地址:https://github.com/dianping/cat

編譯步驟:

這個項目比較另類,把編譯需要的jar包,單獨放在git分支mvn-repo里了,而且官方文檔里給了一個錯誤的命令提示:

 git git@github.com:dianping/cat.git mvn-repo

當你直接把這條命令貼到terminal里執行時,會提示命令無效,正確的姿勢如下:

1、先安裝jdk 1.7或Jdk1.8【現在已經支持jdk1.8了】

這點很重要,cat項目的開發時間比較早,當時估計jdk8還沒有,在1.8下編譯雖然能成功,但是最后運行時會報錯。

注:對於已經安裝了jdk1.8的mac,可以參考Mac下同時安裝多個版本的JDK ,如果弄多版本jdk切換,不要在PATH變量里加$JAVA_HOME/bin,否則alias切換只切換了JAVA_HOME,但是PATH里的值不會變。

2、將分支mvn-repo下的jar包復制到本機maven倉庫

1、git clone https://github.com/dianping/cat.git
2、cd cat
3、git checkout mvn-repo
4cp -R * ~/.m2/repository
5、git checkout master
6、mvn clean install -DskipTests


溫馨提示:
3.0 移除了cat的maven插件
需要先切換到2.0 分支, 執行mvn cat:install 后再切回來,即可完成依賴包install

然后再編譯就可以了,再次提醒:如果安裝了多個版本的jdk,編譯前先將jdk版本切換到jdk 1.7(包括編譯成功后,運行時也要jdk 1.7環境) 

部署步驟:

mvn cat:install

安裝過程中,會提示輸入mysql的連接地址,輸入格式嚴格按 jdbc:mysql://127.0.0.1:3306 這種格式來,后面不要加一些額外參數,然后輸入用戶名、密碼(該用戶要有創建database的權限),之后會自動在mysql中創建cat數據庫,然后創建一堆表。

1、cd cat-home
2、mvn jetty:run  //啟動cat服務

如果啟動過程無錯,

成功后,在瀏覽器打開http://localhost:2281/cat 就可以看到cat監控界面了 

或者在cat目錄下輸入 mvn eclipse:clean eclipse:eclipse 然后將項目導入到eclipse中,運行cat-home項目里得‘com.dianping.cat.TestServer’來啟動CAT。

  



實時--》全部--》主機--》具體的Transaction


windows下的注意事項:

Windows 則是對系統運行盤下的/data/appdatas/cat和/data/applogs/cat有讀寫權限 //這個地方要特別說明一下,如有cat的源文件在E盤,則相關配置文件就應該放在e:/data/appdatas/cat/下面

 

1、Web.xml中新增filter

注:如果項目是對外不提供URL訪問,比如GroupService,僅僅提供Pigeon服務,則不需要。

Filter放在url-rewrite-filter 之后的第一個,如果不是會導致URL的個數無限多,比如search/1/2,search/2/3等等,無法監控,后端存儲壓力也變大。

xml:

    <filter>
        <filter-name>cat-filter</filter-name>
        <filter-class>com.dianping.cat.servlet.CatFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>cat-filter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

2.Pom.xml中更新jar包(點評內部公共組件,外部公司可以忽略)

       <dependency>
            <groupId>com.dianping.cat</groupId>
            <artifactId>cat-core</artifactId>   
            <version>1.2.7</version>
       </dependency>

cat-client的最新版本:

        <dependency>
            <groupId>com.dianping.cat</groupId>
            <artifactId>cat-client</artifactId>
            <version>1.4.0</version>
        </dependency>


3、配置domain (cat-core 1.1.3之后版本,優先讀取A配置)

A) 在資源文件中新建app.properties文件

在resources資源文件META-INF下,注意是src/main/resources/META-INF/文件夾, 而不是webapps下的那個META-INF,添加app.properties,加上domain配置,如:app.name=tuangou-web

B) 在資源文件中新建client.xml文件

在resources資源文件META-INF下,新建cat文件夾,注意是src/main/resources/META-INF/cat/client.xml文件, 而不是webapps下的那個META-INF,domain id表示項目名稱此處為CMDB申請的名字,比如

     <config mode="client">
         <domain id="tuangou-web"/>
     </config>

4./data/appdatas/cat/目錄下,新建一個client.xml文件(線上環境是OP配置)

如果系統是windows環境,則在eclipse運行的盤,比如D盤,新建/data/appdatas/cat/目錄,新建client.xml文件

項目文件中srouce中的client.xml,此文件代表了這個項目我是誰,比如項目的名字Cat。

/data/appdatas/cat/client.xml,此文件有OP控制,這里的Domain名字用來做開關,如果一台機器上部署了多個應用,可以指定把一個應用的監控關閉。

      <config mode="client">
          <servers>
             <server ip="192.168.213.115" port="2280" />
         </servers>
      </config>

alpha、beta這個配置需要自己在此目錄添加

預發以及生產環境這個配置需要通知到對應OP團隊,讓他們統一添加,自己上線時候做下檢查即可

a、192.168.213.115:2280端口是指向測試環境的cat地址

b、配置可以加入CAT的開關,用於關閉CAT消息發送,將enabled改為false,如下表示將mobile-api這個項目關閉

      <config mode="client">
          <servers>
             <server ip="192.168.213.115" port="2280" />
         </servers>
         <domain id="mobile-api" enabled="false"/>
      </config>


5.CAT的Log4j集成 【建議所有Log都打到CAT,這樣才能更快發現問題】

業務程序的所有異常都通過記錄到CAT中,方便看到業務程序的問題,建議在Root節點中添加次appendar

a)在Log4j的xml中,加入Cat的Appender>

<appender name="catAppender" class="com.dianping.cat.log4j.CatAppender"></appender>

b)在Root的節點中加入catAppender

     <root>
       <level value="error" />
       <appender-ref ref="catAppender" />
     </root>

c)注意有一些Log的是不繼承root的,需要如下配置

      <logger name="com.dianping.api.location" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="locationAppender"/>
        <appender-ref ref="catAppender"/>
      </logger>

https://github.com/dianping/cat/tree/master/%E6%A1%86%E6%9E%B6%E5%9F%8B%E7%82%B9%E6%96%B9%E6%A1%88%E9%9B%86%E6%88%90

java config:

    @Bean
    public FilterRegistrationBean catFilter() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setFilter(new CatFilter());
        registrationBean.addUrlPatterns("/*");
        registrationBean.setName("cat-filter");
        registrationBean.setDispatcherTypes(DispatcherType.FORWARD, DispatcherType.REQUEST);
        registrationBean.setOrder(1);
        return registrationBean;
    }

 

 

linux 安裝maven:

apache源配置
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven
yum -y install ant

 

 

cat監控平台
Problem報表可以查找一些異常操作,配置Transcation報表使用。如果發現Transaction報表中有些URL max時間太長,可以在Problem中查找到,然后進行分析



FAQ:
Error when try connecting to /10.10.10.2:2280
原因是沒有配置客戶端路由導致

這時點擊左上角的紅色配置按鈕,如出現登錄窗口輸入默認賬號密碼,catadmin/catadmin
進入配置界面后選擇 全局告警配置-客戶端路由

Backup-server為當前服務器地址,端口固定2280

Default-server定義可跳轉的路由地址,這里設置的是本機地址,enable設置true表示啟用。設置完成后點擊提交保存。


https://github.com/dianping/cat/blob/master/%E6%A1%86%E6%9E%B6%E5%9F%8B%E7%82%B9%E6%96%B9%E6%A1%88%E9%9B%86%E6%88%90/Cat%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E6%80%BB%E7%BB%93-0.1.0.doc






 

 

異常解決:

要按readme的要求,使用jdk1.8以下進行編譯生成war。否則,就有下面的錯:

[ERROR] [ServletHolder] Servlet initializing failed. org.unidal.lookup.LookupException: Component(org.unidal.web.lifecycle.RequestLifecycle) lookup failure. details: Unable to lookup component 'org.unidal.web.lifecycle.RequestLifecycle', it could not be started.

role: org.unidal.web.lifecycle.RequestLifecycle
roleHint: mvc

maven用的jdk環境和我編譯的環境不一樣,maven要依賴javahome

http://www.oschina.net/question/1463652_2152237

  

更改tomcat JDK:

經測試,更改catalina.bat設置也可以

@echo off

set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_13
set JRE_HOME=C:\Program Files\Java\jre7

 

1、windows下:
修改 tomcat /bin/setclasspath .bat
rem Otherwise either JRE or JDK are fine
之前加上
set JAVA_HOME = C:\....   jdk路徑
set JRE_HOME = C:\....\jre  Jre路徑
 
2、linux環境下
修改tomcat /bin/setclasspath .sh
# First clear out the user classpath
CLASSPATH=
下面添加上
export JAVA_HOME= /home/tool/jdk1 .6.0_18  --jdk路徑
export JRE_HOME= /home/tool/jdk1 .6.0_18 /jre --jre路徑
 
保存,重新啟動tomcat
 
 
 

mvn編譯cat的代碼進報下面的錯:

A required class is missing:com/thoughtworks/xstream/io/HierarchicalStreamDriver

解決辦法:

在mvn本地倉庫中com\thoughtworks\xstream這個文件夾。重新執行mvn clean install -DskipTests即可

因為沒有這個文件夾,相關的jar都會重新下載,然后就下載到了。

http://www.myexception.cn/xml-soap/1898572.html

 
 
mvn jetty:run
報錯:

[INFO] Final Memory: 11M/307M
[INFO] ------------------------------------------------------------------------
[ERROR] No plugin found for prefix 'jetty' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories
[local (e:\m2repository), central (http://repo.maven.apache.org/maven2)] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundF
orPrefixException

 

原因:

settings.xml沒有配置插件應此需要

mvn org.mortbay.jetty:maven-jetty-plugin:run

這樣來運行。

如果需要使用jetty:run,那么必須在maven的setting.xml下配置

 

解決辦法:

在.m2的settings.xml文件的pluginGroups節點添加關於jetty的信息:

  <!-- pluginGroups
   | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
   | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
   | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
   |-->
  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
     <pluginGroup>org.mortbay.jetty</pluginGroup>  
  </pluginGroups>

http://www.xuebuyuan.com/1115208.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM