1. 程式人生 > >搭建大眾點評網CAT監控

搭建大眾點評網CAT監控

專案地址:https://github.com/dianping/cat

關於cat的介紹和安裝網上很多,這篇文章只是寫一下我安裝cat的過程。

一、可以用git下載這個專案,也可以直接按下圖所示下載zip檔案,解壓縮後是一個多模組的Maven專案。


我把解壓縮後的檔案都放在了E:\cat目錄下。


命令列視窗進入E:\cat目錄,執行mvn clean install -DskipTests,當然前提是你的系統安裝了maven,並配置了環境變數。我用的公司電腦maven的setting.xml配了公司的資源庫,剛開始有些jar包就沒更新下來,後來改成從中央倉庫下載就可以了。當然中央倉庫太慢,可以配一個國內的maven映象庫。比如下面這個阿里的就不錯,下載起來飛一般的感覺。

  <mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>

好了,執行完mvn clean install -DskipTests後,在各個模組專案中就生成了響應的jar包或war包。其中重點關注cat-home模組生成的war包,名字大約是cat-alpha-1.4.0.war,當然你的版本可能不是1.4.0,沒關係。

接下來按理說應該在web容器(例如tomcat)下執行war包。但cat執行需要先初始化一個cat執行環境,生成相關的配置,比如配置連線mysql,生成一個cat資料庫並建立一些表,以及建立cat的配置目錄和日誌目錄。所以先說一下配置cat環境。

配置cat環境的步驟如下:

1、在E:\cat目錄下執行mvn cat:install

安裝過程中,會提示輸入mysql的連線地址,輸入格式嚴格按 jdbc:mysql://127.0.0.1:3306 這種格式來,後面不要加一些額外引數,然後輸入使用者名稱、密碼(該使用者要有建立database的許可權),之後會自動在mysql中建立cat資料庫,然後建立一堆表。

2、Linux下建立/data/appdatas/cat和/data/applogs/cat兩個目錄,Windows系統下 則是在系統執行盤下建立/data/appdatas/cat和/data/applogs/cat目錄,要有讀寫許可權。

然後把cat專案下的script目錄下的配置檔案client.xml、datasources.xml、server.xml拷貝到/data/appdatas/cat目錄下(裡面的2281埠是jetty部署的,如果用tomcat,請改成8080)

 //這個地方要特別說明一下,如有cat的原始檔在E盤,則相關配置檔案就應該放在e:/data/appdatas/cat/下面

好了,下面就要執行war包了。進入cat-home目錄,執行mvn jetty:run,啟動服務,沒錯誤的話,瀏覽器開啟http://localhost:2281/cat 可以看到cat監控的介面。

網上說jdk要用1.6或1.7的,1.8會有問題。我沒親測過。

我在自己的專案裡接入cat監控的步驟:

1、匯入cat-client.jar包,在資源目錄(例如src/main/resources)下新建資料夾META-INF,間app.properties檔案,內容是app.name=自己的專案名

 還可以配置攔截器監控持久層(比如mybatis)的效能。這個就不多說了,cat專案裡面有個入門文件,可以參考進行配置。

最後說一下,因為我的專案是跑在D盤下的resin(用tomcat也可以)裡面,所以還要在D盤下建立目錄data/appdatas/cat和/data/applogs/cat,把E盤的data/appdatas/cat下面的client.xml拷貝過來就行。

好了,把你的專案跑起來,訪問一下,看看http://localhost:2281/cat頁面(實時模組)正確的話已經顯示出你剛才的訪問情況了。當然要確保你的專案部署的伺服器和cat監控安裝的伺服器之間能ping通。


最最最後再說一下,為啥要指定建立/data/appdatas/cat和/data/applogs/cat這兩個目錄呢,因為cat客戶端要上報給服務端,cat-client.jar包裡寫死的從/data/appdatas/cat讀取配置,向/data/applogs/cat輸出日誌。