在 Mac 上部署美團點評開源的 CAT 監控服務端,可以按照以下步驟操作:
1. 環境準備
1.1 安裝依賴
確保已安裝以下工具:
-
JDK 8+(建議 OpenJDK 11)
-
MySQL 5.7+(存儲監控數據)(8.0+不支持。。)
如果需要支持8.0,可以使用這個工程
https://github.com/lazeyliu/cat(最低支持tomcat-10。。)
https://github.com/carlzhangweiwen/cat(編譯不通過)
-
Maven 3.6+(構建 CAT 源碼)
-
Tomcat 8/9(部署 CAT Web 控制臺)
通過 Homebrew 安裝:
# 安裝 Homebrew(若未安裝)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 安裝依賴
brew install openjdk@11 mysql maven tomcat@9
1.2 配置環境變量
在 ~/.zshrc
或 ~/.bash_profile
中添加:
# Java
export JAVA_HOME=/usr/local/opt/openjdk@11
export PATH=$JAVA_HOME/bin:$PATH# Maven
export MAVEN_HOME=/usr/local/Cellar/maven/3.8.6
export PATH=$MAVEN_HOME/bin:$PATH# Tomcat
export CATALINA_HOME=/usr/local/opt/tomcat@9/libexec
export PATH=$CATALINA_HOME/bin:$PATH
生效配置:
source ~/.zshrc
2. 初始化 MySQL 數據庫
2.1 啟動 MySQL
brew services start mysql
2.2 創建 CAT 數據庫
登錄 MySQL:
mysql -u root -p
執行以下 SQL:
-- 創建數據庫
CREATE DATABASE `cat` DEFAULT CHARACTER SET utf8mb4;-- 創建用戶并授權
CREATE USER 'cat'@'localhost' IDENTIFIED BY 'cat_password';
GRANT ALL PRIVILEGES ON `cat`.* TO 'cat'@'localhost';
FLUSH PRIVILEGES;
2.3 導入 CAT 初始表結構
下載 CAT 源碼并導入 SQL:
git clone https://github.com/dianping/cat.git
cd cat/script
mysql -u cat -p cat < CatApplication.sql
mysql -u cat -p cat < CatDailyReport.sql
輸入密碼 cat_password
(與 SQL 中配置一致)。
3. 編譯 CAT 服務端
3.1 下載源碼
git clone https://github.com/dianping/cat.git
cd cat
3.2 修改數據庫配置
在Linux系統安裝時,CAT應用要求對/data/appdatas/cat和/data/applogs/cat路徑有讀寫權限。
CAT服務端應用會對這兩個目錄進行讀寫操作,因此需要首先創建這兩個目錄。并且應確保啟動CAT應用的用戶對這兩個目錄有讀寫權限。
服務端部署/data/appdatas/cat/client.xml和 server.xml配置無用(限3.0+war包),可以去掉
部署。
需要在data目錄下創建文件夾:
# mkdir -p /data/appdatas/cat && mkdir -p /data/applogs/cat
如果提示mkdir: /data: Read-only file system,表示mac根目錄無法創建文件夾,則可以通過軟鏈解決,具體解決方法查看:
https://blog.csdn.net/youwen21/article/details/115000907
編輯文件 cat-home/src/main/resources/datasources.xml
:
<?xml version="1.0" encoding="utf-8"?>
<data-sources><data-source id="cat"><properties><driver>com.mysql.jdbc.Driver</driver><url>jdbc:mysql://127.0.0.1:3306/cat</url><user>cat</user><password>cat_password</password><connectionProperties>useUnicode=true&characterEncoding=UTF-8&autoReconnect=true</connectionProperties></properties></data-source>
</data-sources>
3.3 編譯打包
mvn clean install -DskipTests
編譯成功后,生成以下文件:
-
cat-home/target/cat-home.war
(Web 控制臺) -
cat-client/target/cat-client.jar
(客戶端依賴)cat-client.jar目前沒有maven倉庫下載,需要自己上傳到自己的私服,或者存放到本地依賴目錄。
自己編譯的部署有問題,最好還是下載官方提供的war包吧https://github.com/dianping/cat/releases/tag/3.1.0
4. 部署到 Tomcat
4.1 復制 WAR 包到 Tomcat
cp cat-home/target/cat-home.war $CATALINA_HOME/webapps/
4.2 啟動 Tomcat
catalina start
訪問控制臺:
http://localhost:8080/cat
默認賬號:admin
,密碼:admin
。
5. 配置 CAT 服務端
5.1 開放端口
確保以下端口可用:
- 8080:Tomcat Web 端口(CAT 控制臺)
- 2280:CAT 服務端 TCP 端口(客戶端上報數據)
5.2 修改服務端配置(可選)
編輯 cat-home/src/main/resources/server.xml
,調整服務端參數:
<config local-mode="true"><server id="default"><property name="local-mode" value="true"/><property name="http-port" value="8080"/><property name="tcp-port" value="2280"/></server>
</config>
6. 驗證部署
6.1 檢查 CAT 控制臺
登錄后查看以下報表是否正常:
- Transaction:事務統計
- Event:自定義事件
- Heartbeat:心跳檢測
6.2 客戶端測試
在 Spring Boot 應用的 cat-client.xml
中配置:
<servers><server ip="localhost" port="2280" http-port="8080"/>
</servers>
重啟應用后,觀察 CAT 控制臺是否有數據上報。
常見問題排查
1. 控制臺無法訪問
把文件cat.war (如果叫cat-home.war 重命名為cat.war)
常見問題:https://www.cnblogs.com/jingch/p/17141552.html
http://localhost:8080/cat/s/config?op=serverConfigUpdate
-
檢查 Tomcat 是否啟動:
ps aux | grep tomcat
-
查看 Tomcat 日志:
tail -f $CATALINA_HOME/logs/catalina.out
2. 客戶端數據未上報
-
驗證端口連通性:
telnet localhost 2280
-
檢查
cat-client.xml
中的服務端 IP 和端口。
3. 數據庫連接失敗
-
檢查 MySQL 用戶權限:
SHOW GRANTS FOR 'cat'@'localhost';
-
確認 SQL 腳本已完整導入。
優化建議
-
數據清理策略
修改cat-home/src/main/resources/datasources.xml
,配置自動清理歷史數據:<property name="hdfs-clean-period">86400</property> <!-- 清理周期(秒) -->
-
集群部署
若需高可用,可部署多個 CAT 服務端節點,并配置負載均衡。
通過以上步驟,即可在 Mac 上完成 CAT 監控服務端的部署。如果遇到問題,可根據日志和端口連通性逐步排查。