mac部署CAT監控服務

在 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&amp;characterEncoding=UTF-8&amp;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 腳本已完整導入。


優化建議

  1. 數據清理策略
    修改 cat-home/src/main/resources/datasources.xml,配置自動清理歷史數據:

    <property name="hdfs-clean-period">86400</property> <!-- 清理周期(秒) -->
    
  2. 集群部署
    若需高可用,可部署多個 CAT 服務端節點,并配置負載均衡。


通過以上步驟,即可在 Mac 上完成 CAT 監控服務端的部署。如果遇到問題,可根據日志和端口連通性逐步排查。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/75949.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/75949.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/75949.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言基礎:第10天筆記

內容提要 函數 函數的概述 函數的分類 函數的定義 形參和實參 函數的返回值 函數 函數的概述 函數&#xff1a;實現一定功能的&#xff0c;獨立的代碼模塊&#xff0c;函數是c程序的核心構成模塊&#xff0c;可以說c程序就是由眾多的函數組成&#xff0c;對于函數的使用…

集成開發環境革新:IntelliJ IDEA與Cursor AI的智能演進

集成開發環境革新&#xff1a;IntelliJ IDEA 與 Cursor AI 的智能演進 集成開發環境&#xff08;IDE&#xff09; 是軟件開發者必不可少的工具。一個優秀的 IDE 不僅能夠幫助編寫和調試代碼&#xff0c;還能集成版本控制和代碼優化等多種功能。如今&#xff0c;隨著人工智能&a…

【Django】教程-1-安裝+創建項目+目錄結構介紹

歡迎關注我&#xff01;后續會更新django教程。一周2-3更&#xff0c;歡迎跟進&#xff0c;本周會更新第一個Demo的單獨一個模塊的增刪改查【Django】教程-4-一個增刪改查的Demo【Django】教程-2-前端-目錄結構介紹【Django】教程-3-數據庫相關介紹 1.項目創建 1.1 安裝 Djan…

智能儀表板DevExpress Dashboard v24.2新版亮點:支持.NET 9

使用DevExpress BI Dashboard&#xff0c;再選擇合適的UI元素&#xff08;圖表、數據透視表、數據卡、計量器、地圖和網格&#xff09;&#xff0c;刪除相應參數、值和序列的數據字段&#xff0c;就可以輕松地為執行主管和商業用戶創建有洞察力、信息豐富的、跨平臺和設備的決策…

北斗導航 | 改進最小二乘殘差法的接收機自主完好性監測算法原理,公式,應用,研究綜述,matlab代碼

改進最小二乘殘差法的接收機自主完好性監測算法研究 摘要 本文針對傳統最小二乘殘差RAIM算法在復雜環境下檢測性能不足的問題,提出了一種基于加權抗差估計的改進算法。通過引入IGGⅢ權函數構建抗差最小二乘模型,結合滑動窗口方差估計和自適應閾值調整機制,顯著提升了算法對…

24、web前端開發之CSS3(一)

CSS3詳細講義 目錄 CSS3簡介CSS3核心特性選擇器盒模型背景與邊框文本樣式顏色與透明度過渡與動畫變換彈性盒布局網格布局媒體查詢多列布局字體與排版裝飾與效果性能優化新特性與兼容性CSS3實踐示例總結 一、CSS3簡介 CSS3&#xff08;Cascading Style Sheets, Level 3&#…

【Git “reset“ 命令詳解】

以下是關于 git reset 命令的完整博客文章內容&#xff1a; 本章目錄: 1. 命令簡介主要用途&#xff1a; 2. 命令的基本語法和用法語法格式&#xff1a;使用場景&#xff1a; 3. 命令的常用選項及參數選項示例&#xff1a;1. 使用 --soft 進行軟重置2. 使用 --mixed 進行混合重…

STM32 IIC通信

目錄 IIC簡介硬件電路連接I2C時序基本單元IIC完整數據幀MPU6050封裝硬件IIC內部電路 IIC簡介 IIC&#xff08;Inter-Integrated Circuit&#xff09;是 IIC Bus 簡稱&#xff0c;中文叫集成電路總線。它是一種串行通信總線&#xff0c;使用多主從架構&#xff0c;由飛利浦公司…

深入解析 TypeScript 核心配置文件 tsconfig.json

什么是 tsconfig.json&#xff1f; tsconfig.json 是 TypeScript 項目的中樞神經系統&#xff0c;它是 TypeScript 編譯器的配置文件&#xff0c;決定了整個項目的編譯規則、模塊解析方式和類型檢查策略。這個 JSON 文件通常位于項目根目錄&#xff0c;是 TypeScript 工程化開…

debug 筆記:llama 3.2 部署bug 之cutlassF: no kernel found to launch!

1 問題描述 按照官方的寫法 import torch from transformers import pipeline import os os.environ["HF_TOKEN"] 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 model_id "meta-llama/Llama-3.2-3B"pipe pipeline("text-generation", modelmode…

使用ZYNQ芯片和LVGL框架實現用戶高刷新UI設計系列教程(第五講)

在上一講我們講解了按鍵回調函數的自定義函數的用法&#xff0c;這一講繼續講解回調函數的另一種用法。 首先我們將上一講做好的按鍵名稱以及自定義回調事件中的按鍵名稱修改&#xff0c;改為默認模式為“open”當點擊按鍵時進入回調函數將按鍵名稱改為“close”&#xff0c;具…

Hyperliquid 遇襲「拔網線」、Polymarket 遭治理攻擊「不作為」,從雙平臺危機看去中心化治理的進化陣痛

作者&#xff1a;Techub 熱點速遞 撰文&#xff1a;Glendon&#xff0c;Techub News 繼 3 月 12 日「Hyperliquid 50 倍杠桿巨鯨」引發的 Hyperliquid 清算事件之后&#xff0c;3 月 26 日 晚間&#xff0c;Hyperliquid 再次遭遇了一場針對其流動性和治理模式的「閃電狙擊」。…

交換機與路由器的區別:深入解析

在構建和維護現代計算機網絡的過程中&#xff0c;交換機和路由器無疑是兩種不可或缺的設備。盡管它們都在數據的傳輸和轉發中扮演著重要角色&#xff0c;但各自的工作原理、應用場景和功能特性卻大相徑庭。本文將從多個角度&#xff0c;結合最新的技術發展和實際應用&#xff0…

自頂向下學習K8S--部署Agones

本文在本人博客&#xff0c;原文地址&#xff1a;http://viogami.tech/index.php/blog/346/ 我是gopher&#xff0c;離不開云原生&#xff0c;自然也逃不了理解docker和K8S這倆。今天抽空想玩下agones&#xff0c;進而對K8S有實踐性的理解。 學一個新事物從底層理論學肯定是最…

藍橋杯省模擬賽 階乘求值

問題描述 給定 n&#xff0c;求 n! 除以 1000000007的余數。 其中 n! 表示 n 的階乘&#xff0c;值為從 1 連乘到 n 的積&#xff0c;即 n!123…n。 輸入格式 輸入一行包含一個整數 n。 輸出格式 輸出一行&#xff0c;包含一個整數&#xff0c;表示答案。 樣例輸入 3樣…

如何在Webpack中配置別名路徑?

如何在Webpack中配置別名路徑&#xff1f; 文章目錄 如何在Webpack中配置別名路徑&#xff1f;1. 引言2. 配置別名路徑的基本原理3. 如何配置別名路徑3.1 基本配置3.2 結合Babel與TypeScript3.2.1 Babel配置3.2.2 TypeScript配置 3.3 適用場景與最佳實踐 4. 調試與常見問題4.1 …

協作機械臂需要加安全墻嗎? 安全墻 光柵 干涉區

安全墻是什么 文章目錄 安全墻是什么簡介1. 物理安全墻1.1 定義&#xff1a;1.2 作用機制&#xff1a;1.3 應用場景&#xff1a; 2. 虛擬安全墻2.2 定義&#xff1a;2.3 作用機制&#xff1a;2.3 應用場景&#xff1a; 3. 安全毛毯3.1 工作原理&#xff1a;3.2 特點3.3 應用場景…

Promise怎么使用,以及它解決了什么問題?

什么是 Promise&#xff1f; Promise 是一種用于處理異步操作的 JavaScript 對象&#xff0c;它代表了一個可能還未完成但將來會完成的操作的結果。Promise 的目的是解決回調函數&#xff08;callback&#xff09;帶來的問題&#xff0c;比如回調地獄&#xff08;callback hel…

光譜范圍與顏色感知的關系

光譜范圍與顏色感知是光學、生理學及技術應用交叉的核心課題&#xff0c;兩者通過波長分布、人眼響應及技術處理共同決定人類對色彩的認知。以下是其關系的系統解析&#xff1a; ?1.基礎原理&#xff1a;光譜范圍與可見光? ?光譜范圍定義?&#xff1a; 電磁波譜中能被特定…

如何讓DeepSeek-R1在內網穩定運行并實現隨時隨地遠程在線調用

前言&#xff1a;最近&#xff0c;國產AI圈里的新星——Deepseek&#xff0c;簡直是火到不行。但是&#xff0c;你是不是已經對那些千篇一律的手機APP和網頁版體驗感到膩味了&#xff1f;別急&#xff0c;今天就帶你解鎖一個超炫的操作&#xff1a;在你的Windows電腦上本地部署…