mac部署CAT监控服务

news2025/4/1 19:11:08

在 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.coloradmin.cn/o/2324765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

el-radio-group 中 el-radio-button value未能绑定上数值数据

这样绑定到admin后不会随着admin的值显示 在value加上 : 后成功显示

JSP(实验):带验证码的用户登录

[实验目的] 1&#xff0e;掌握应用request对象获取表单提交的数据。 2&#xff0e;掌握解决获取表单提交数据产生中文乱码的问题。 3&#xff0e;掌握使用response对象进行定时跳转功能。 4&#xff0e;掌握使用session对象完成登录和注销功能。 [实验要求] 设计带验证码…

集多功能为一体的软件,支持批量操作。

今天我给大家分享一个超实用的小工具&#xff0c;真的是太好用了&#xff01;这个软件是吾爱大神无知灰灰制作的&#xff0c;它能直接一键把webp格式的图片转换成png格式。 webp转为png 一键操作&#xff0c;支持压缩 其实&#xff0c;作者最近在工作中经常遇到webp格式的图片…

linux压缩指令

今天我们来了解一下linux压缩指令,压缩是我们文件传输的一种重要手段,对此,我们是必须学习压缩指令的,那么话不多说,来看. 1.grep过滤查找&#xff0c;管道符&#xff0c;“&#xff5c;”&#xff0c;表示将前一个命令的处理结果输出传递给后面的命令处理。 基本语法&#x…

污水处理厂人员定位方案-UWB免布线高精度定位

1. 方案概述 本方案采用免布线UWB基站与北斗卫星定位融合技术&#xff0c;结合UWBGNSS双模定位工卡&#xff0c;实现污水处理厂室内外人员高精度定位&#xff08;亚米级&#xff09;。系统通过低功耗4G传输数据&#xff0c;支持实时位置监控、电子围栏、聚集预警、轨迹回放等功…

Elasticsearch 高级

Elasticsearch 高级 建议阅读顺序&#xff1a; Elasticsearch 入门Elasticsearch 搜索Elasticsearch 搜索高级Elasticsearch高级&#xff08;本文&#xff09; 1. nested 类型 1.1 介绍 Elasticsearch 中的 nested 类型允许你在文档内存储复杂的数据结构&#xff0c;比如一个…

C语言笔记数据结构(链表)

希望文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正,一起交流学习! 目录 1.链表 1.1 链表概念和组成 1.2 链表的分类 1.3 顺序表和链表 2.单链表&#xff08;无头单向不循环链表&#xff09; 2.1 结点的创建 2.2 创建新的结点 2.3 单链表的打印 2.4 尾…

Leetcode 两数相除

✅ LeetCode 29. 两数相除 — 思路总览 &#x1f9e9; 题目要求 给定两个整数 dividend 和 divisor&#xff0c;实现 整数除法&#xff0c;不能使用乘法 *、除法 / 和取余 % 运算符。 要求返回的结果应为 向零截断的整数商&#xff0c;即&#xff1a; 正数向下取整&#xf…

人工智能图像识别Scala介绍

Scala 一.Scala 简介 Scala即Scalable Language&#xff08;可伸缩的语言&#xff09;&#xff0c;Scala 语言是由 Martin Odersky 等人在 2003 年开发的&#xff0c;并于 2004 年首次发布。意味着这种语言设计上支持大规模软件开发&#xff0c;是一门多范式的编程语言。 Sc…

C++中使用CopyFromRecordset将记录集拷贝到excel中时,如果记录集为0个,函数崩溃,是什么原因

文章目录 原因分析解决方案1. 检查记录集是否为空2. 安全调用COM方法3.进行异常捕获4. 替代方案&#xff1a;手动处理空数据 总结 在C中使用CopyFromRecordset将空记录集&#xff08;0条记录&#xff09;复制到Excel时崩溃的原因及解决方法如下&#xff1a; 原因分析 空记录集…

c#的.Net Framework 的console 项目找不到System.Window.Forms 引用

首先确保是建立的.Net Framework 的console 项目,然后天健reference 应用找不到System.Windows.Forms 引用 打开对应的csproj 文件 在第一个PropertyGroup下添加 <UseWindowsForms>true</UseWindowsForms> 然后在第一个ItemGroup 下添加 <Reference Incl…

蓝桥杯嵌入式学习笔记

用博客来记录一下参加蓝桥杯嵌入式第十六届省赛的学习经历 工具环境准备cubemx配置外部高速时钟使能设置串口时钟配置项目配置 keil配置烧录方式注意代码规范头文件配置 模块ledcubemx配置keil代码实现点亮一只灯实现具体操作的灯&#xff0c;以及点亮还是熄灭 按键cubemx配置k…

Blender多摄像机怎么指定相机渲染图像

如题目所说&#xff0c;当blender的场景里面有摄像机的时候&#xff0c;按F12可以预览渲染结果&#xff0c;但是当有多个摄像机的时候就不知道使用哪个进行渲染了。 之前在网上没有找到方法&#xff0c;就用笨方法&#xff0c;把所有的摄像机删除&#xff0c;然后设置自己需要…

从 MySQL 到时序数据库 TDengine:Zendure 如何实现高效储能数据管理?

小T导读&#xff1a;TDengine 助力广州疆海科技有限公司高效完成储能业务的数据分析任务&#xff0c;轻松应对海量功率、电能及输入输出数据的实时统计与分析&#xff0c;并以接近 1 : 20 的数据文件压缩率大幅降低存储成本。此外&#xff0c;taosX 强大的 transform 功能帮助用…

观察者模式:解耦对象间的依赖关系

观察者模式&#xff1a;解耦对象间的依赖关系 JDK 中曾直接提供对观察者模式的支持&#xff0c;但因其设计局限性&#xff0c;现已被标记为“过时”&#xff08;Deprecated&#xff09;。不过&#xff0c;观察者模式的思想在 JDK 的事件处理、spring框架等仍有广泛应用。下面我…

windows第二十章 单文档应用程序

文章目录 单文档定义新建一个单文档应用程序单文档应用程序组成&#xff1a;APP应用程序类框架类&#xff08;窗口类&#xff09;视图类&#xff08;窗口类&#xff0c;属于框架的子窗口&#xff09;文档类&#xff08;对数据进行保存读取操作&#xff09; 直接用向导创建单文档…

通信协议之串口

文章目录 简介电平标准串口参数及时序USART与UART过程引脚配置 简介 点对点&#xff0c;只能两设备通信只需单向的数据传输时&#xff0c;可以只接一根通信线当电平标准不一致时&#xff0c;需要加电平转换芯片&#xff08;一般从控制器出来的是信号是TTL电平&#xff09;地位…

Java入门知识总结——章节(二)

ps&#xff1a;本章主要讲数组、二维数组、变量 一、数组 数组是一个数据容器&#xff0c;可用来存储一批同类型的数据 &#x1f511;&#xff1a;注意 类也可以是一个类的数组 public class Main {public static class Student {String name;int age; // 移除 unsignedint…

Verilog 中寄存器类型(reg)与线网类型(wire)的区别

目录 一、前言 二、基本概念与分类 1.寄存器类型 2.线网类型 三、六大核心区别对比 四、使用场景深度解析 1.寄存器类型的典型应用 2. 线网类型的典型应用 五、常见误区与注意事项 1. 寄存器≠物理寄存器 2.未初始化值陷阱 3.SystemVerilog的改进 六、总结 …

【Linux加餐-验证UDP:TCP】-windows作为client访问Linux

一、验证UDP-windows作为client访问Linux UDP client样例代码 #include <iostream> #include <cstdio> #include <thread> #include <string> #include <cstdlib> #include <WinSock2.h> #include <Windows.h>#pragma warning(dis…