CAT 服务端搭建

article/2025/10/19 4:57:43
  • 目录

前言


  • 觉得没什么好写,这次搭建的过程和之前看到的文档有些不一样,估计以后还会不一样。但依旧记录一下,总结一下,凑凑数吧。
  • CAT 项目github地址:https://github.com/dianping/cat
  • CAT 服务端官方部署介绍:https://github.com/dianping/cat/wiki/readme_server

搭建环境


  • 操作系统:windows 10
  • jdk :1.8 (目前1.6,1.7,1.8都支持,官方推荐1.7)
  • tomact 7
  • maven : 3.2.5
  • 我搭建的是本地模式,没钱,集群模式没能力搭

cat 组件组成

  • CAT主要由以下组件组成(我这边搭建就是cat-home):
    • cat-home: 服务端组件,负责收集监控信息,分析处理生成报告、执行告警
    • cat-client: 客户端组件,负责与服务端进行连接通信,
    • cat-core: 核心处理组件,负责具体的与客户端通信服务,解析数据、输出报告
    • cat-consumer : 消费处理组件,负责实际的监控数据分析,处理工作
    • cat-hadoop : HDFS存储组件

1. 下载项目

  • 从github上clone项目下来
  • 使用idea 加载项目,添加依赖
    在这里插入图片描述
  • 打包项目

clean install -Dmaven.test.skip=true

  • 找到我们要的war包
    在这里插入图片描述

2. 配置cat数据库

  • 在mysql下建cat数据库
  • 编码格式选择utf8mb4(文档要求)
  • 将以下sql文件导入cat数据库执行
    在这里插入图片描述

3. 配置CAT的配置文件目录

  • 配置文件所在目录要和tomact所在的盘符一致,比如我都是F盘

\data\appdatas\cat

\data\applogs\cat

  • 在data\appdatas\cat目录下添加client.xml文件
  • 说明
    • 此配置文件的作用是所有的客户端都需要一个地址指向CAT的服务端
    • 此文件可以通过运维统一进行部署和维护,比如使用puppet等运维工具
    • 不同环境这份文件不一样,比如区分prod环境以及test环境,在美团点评内部一共是2套环境的CAT,一份是生产环境,一份是测试环境
    • 注意:当路由错误,且该文件夹下存在client_cache.xml,请删除client_cache.xml,再重启服务
<?xml version="1.0" encoding="utf-8"?>
<config mode="client"><servers><server ip="127.0.0.1" port="2280" http-port="8080"/></servers>
</config>
  • 在data\appdatas\cat目录下添加datasources.xml文件
<?xml version="1.0" encoding="utf-8"?><data-sources><data-source id="cat"><maximum-pool-size>3</maximum-pool-size><connection-timeout>1s</connection-timeout><idle-timeout>10m</idle-timeout><statement-cache-size>1000</statement-cache-size><properties><driver>com.mysql.jdbc.Driver</driver><url><![CDATA[jdbc:mysql://127.0.0.1:3306/cat]]></url>  <!-- 请替换为真实数据库URL及Port  --><user>root</user>  <!-- 请替换为真实数据库用户名  --><password></password>  <!-- 请替换为真实数据库密码  --><connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties></properties></data-source>
</data-sources>
  • 在之前看的文档里说有三个xml文件,都在之前的script文件夹里面,但是我在clone的项目里面并没有看到。。。而且新的官方文档里面好像也只要添加如上这两个文件,并都是手动添加的,没有模板,可能是被删除了吧。

4. tomact配置

  • 在tomact 的webapps目录下新增cat目录,并将war包拷至该目录,改名字为cat.war
    • 我启动时候不知道为什么不能识别,我自己解压出来就可以了
  • 在tomact的server.xml配置文件下添加contextPath
    在这里插入图片描述* 修改中文乱码问题
<Connector port="8080" protocol="HTTP/1.1"URIEncoding="utf-8"    connectionTimeout="20000"redirectPort="8443" />
  • 官方文档里说还要调整启动参数,修改 catalina.sh文件,我也没弄

5. 启动项目

  • 打开控制台的URL,http://127.0.0.1:8080/cat/s/config?op=routerConfigUpdate

    • 默认用户名:admin 默认密码:admin。CAT本身无登录和权限校验功能,请按需定制
  • 本机路由
    在这里插入图片描述

  • 服务端配置 (http://127.0.0.1:8080/cat/s/config?op=serverConfigUpdate)

  • 说明:这个只需要更新一次,配置是保存在mysql的数据库里面。

  • CAT节点的不同职责(抄的,暂时也不是很清楚)

    • 控制台 - 提供给业务人员进行数据查看【默认所有的cat节点都可以作为控制台,不可配置】
    • 消费机 - 实时接收业务数据,实时处理,提供实时分析报表【默认所有的cat节点都可以作为消费机,不可配置】
    • 告警端 - 启动告警线程,进行规则匹配,发送告警(目前仅支持单点部署)【可以配置】
    • 任务机 - 做一些离线的任务,合并天、周、月等报表 【可以配置】
  • 如下的直接抄进去就好了

<?xml version="1.0" encoding="utf-8"?>
<server-config><server id="default"><properties><property name="local-mode" value="false"/><property name="job-machine" value="false"/><property name="send-machine" value="false"/><property name="alarm-machine" value="false"/><property name="hdfs-enabled" value="false"/><property name="remote-servers" value="127.0.0.1:8080"/></properties><storage  local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7"><hdfs id="logview" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="logview"/><hdfs id="dump" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="dump"/><hdfs id="remote" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="remote"/></storage><consumer><long-config default-url-threshold="1000" default-sql-threshold="100" default-service-threshold="50"><domain name="cat" url-threshold="500" sql-threshold="500"/><domain name="OpenPlatformWeb" url-threshold="100" sql-threshold="500"/></long-config></consumer></server><server id="127.0.0.1"> <!-- 本机模式这个IP替换为cat拿到的内网IP,此IP是看transaction报表下cat的自己上报的IP,用127.0.0.1是没用的。 --><properties><property name="job-machine" value="true"/><property name="alarm-machine" value="true"/><property name="send-machine" value="true"/></properties></server>
</server-config>

在这里插入图片描述

结束

  • 简单的搭起来了服务端,怎么用还是一脸懵逼,先到这里权当记录

http://chatgpt.dhexx.cn/article/6YBqQKIC.shtml

相关文章

linux cat命令缩写,linux下cat命令详解

cat 能够一同显现多个文件的内容,比方咱们能够在一个cat指令上一同显现两个文件的内容;那么你知道linux下cat命令详解么?接下来是小编为大家收集的linux下cat命令详解,欢迎大家阅读: linux下cat命令详解 1.命令格式: cat [选项] [文件]... 2.命令功能: cat主要有三大功能…

Cat8八类网线是什么?与Cat5、Cat6、Cat7网线的区别?

若您身处于网络通信行业&#xff0c;相信您应该了解一些以太网线缆&#xff0c;比如说超五类网线、六类网线和七类网线等等。但是您知道Cat8八类网线 是什么吗&#xff1f;它与五类网线、六类/超六类网线及七类/超七类网线有着怎么样的区别呢&#xff1f;下面就由飞速(FS)带您认…

Cat8 八类网线是什么?与Cat5、Cat6、Cat7网线的区别?

若您身处于网络通信行业&#xff0c;相信您应该了解一些以太网线缆&#xff0c;比如说超五类网线、六类网线和七类网线等等。但是您知道Cat8 八类网线 是什么吗&#xff1f;它与五类网线、六类/超六类网线及七类/超七类网线有着怎么样的区别呢&#xff1f;下面就由FS带您认识新…

CAT3、CAT4、CAT5、CAT5E、CAT6、CAT6A、CAT7和CAT8网线的介绍

目录 1. CAT3网线(10Mbps) 2. CAT4网线已淘汰 3. CAT5 网线(100MHz,100Mbps) 4. CAT5E网线 (100MHz,1000Mbps) 5. CAT6网线 (250MHz, 1000Mbps) 6. CAT6A 网线(500MHz,10Gbps) 7. CAT7网线 (600MHz, 1Gbps) 8. CAT8网线 (2GHz, 40Gbps) 1. CAT3网线(10Mbps) 图1 CAT3网…

[4G+5G专题-132]: 传输层 - 以太网电缆的类型(Cat5,Cat5e,Cat6,Cat6a)

作者主页(文火冰糖的硅基工坊)&#xff1a;文火冰糖&#xff08;王文兵&#xff09;的博客_文火冰糖的硅基工坊_CSDN博客 本文网址&#xff1a;https://blog.csdn.net/HiWangWenBing/article/details/121552941 目录 1. 主要的技术指标差异 2. 物理外形的差异 3. 屏蔽&…

cat5和cat5e的区别_具有功能以及CAT5与CAT6的CAT5电缆标准是什么?

cat5和cat5e的区别 CAT5 or Category 5 is a copper cable used in computer networks and cable TV. It is popularly used in Computer Network start Ethernet which is very popular in LAN computer networks. Cable standards like CAT5 are defined by the Electronic I…

Cat5e、Cat6、Cat6a和Cat7网线有什么区别?哪个更好?

在信息爆炸的时代&#xff0c;几乎每个人都需要访问互联网&#xff0c;几乎每个地方都装有网络和网线&#xff0c;但是您可能不知道网线虽然看起来是一样的&#xff0c;实际上有不同的类别。在这里&#xff0c;这篇文章将对比市场上应用比较广泛的Cat5e&#xff08;超五类&…

Cat5e、Cat6、Cat6a和Cat7有什么区别?

目录 1.Cat5eVS Cat6 2.Cat6 VS Cat6a VS Cat7 在信息爆炸的时代&#xff0c;几乎每个人都需要访问互联网&#xff0c;几乎每个地方都装有网络和网线&#xff0c;但是您可能不知道网线虽然看起来是一样的&#xff0c;实际上有不同的类别。市场上应用比较广泛的有Cat5e&#x…

纤亿通教你如何选择合适的 Cat6 网线

虽然最近Cat8网线在市场上引起了越来越多的关注&#xff0c;但前几代网线&#xff08;如Cat6&#xff09;仍然在有线网络中发挥着重要作用。目前&#xff0c;Cat6网线可按屏蔽类型、导体类型、阻燃等级、成本、长度、颜色等进行分类。它广泛用于家庭&#xff0c;SMB应用和数据中…

Python常用的ORM/orm框架

使用Python做web开发过程中我们肯定会使用到数据库&#xff0c;有人可能使用原生sql进行操作&#xff0c;但大多数都会选择使用ORM方式操作数据库&#xff0c;如果你不知道什么是ORM的话请自行百度。今天唐丁给大家介绍几个常用的ORM库&#xff0c;并列出其中常用的操作数据库的…

【ORM框架】Python ORM框架——peewee(详细)

文章目录 前言一、peewee的安装和入门1.字段类型表&Meta类型表&类型属性表字段类型表Meta类型表类型属性表 2.设计表结构防止连接丢失 二、表的设计&操作0.继承1.添加生成表原生SQL添加 2.查询3.更新4.删除5.约束6.复合主键 三、详细操作1.like&排序&dict2…

Java之手写实现ORM框架

借鉴Mybatis框架手写一个ORM框架。mybatis整体架构中的整体思路是&#xff0c;首先解析一下配置文件&#xff0c;一个是框架的全局配置文件&#xff0c;一个是mapper配置文件&#xff0c;定义格式如下 <configuration> </configuration><mapper> </mappe…

ORM框架设计及实现

文章目录 一 对象记录映射二 效率和性能三 数据访问描述信息四 字段类型转换五 数据访问基类六 统一异常处理七 数据访问框架八 数据源创建工厂九 SQL指令解析十 补充DAO接口实现十一 测试十二 其他问题 一 对象记录映射 本质上来说&#xff0c;ORM框架需要处理的就是如何将JAV…

SpringBoot 构建ORM框架

目前常用的ORM框架有 Mybatis&#xff08;batis&#xff09;、MybatisPlus&#xff0c;Hibernate、Jpa等几个框架&#xff0c;今天就简单介绍一下搭建Mybatisplus框架的流程。 1.增加依赖 <dependencies><!-- 第一步&#xff1a;选择ORM框架&#xff0c;使用…

DjangoORM框架

DjangoORM框架 文章目录 DjangoORM框架一、ORM框架1.ORM简介2.使用django进行数据库开发的步骤如下&#xff1a;3.定义模型类4.迁移5.数据操作5.对象的关联操作6.ORM框架的功能 二、后台管理1.简介2.使用步骤3.管理界面本地化4.创建管理员5.注册模型类6.自定义管理页面 模型设计…

mybatis —— ORM框架

一、什么是框架 框架是一种经过校验、具有一定功能的半成品软件品&#xff0c;已经对基础的代码进行了封装并提供相应的API&#xff0c;开发者在使用框架是直接调用封装好的api可以省去很多代码编写&#xff0c;从而提高工作效率和开发速度。 二、什么是ORM ORM&#…

ORM框架——SqlSugar

目录 一、ORM框架 二、SqlSugar现状 三、SqlSugar的优点 四、SqlSugar的使用 五、主要函数 六、传参 五、读写分离 一、ORM框架 常用的ORM框架有Dapper、EF/EF Core、FreeSql、Dos.ORM、SqlSugar等&#xff0c;SqlSugar是国产的 二、SqlSugar现状 SqlSugar ORM 5.X 官…

很多小伙伴不太了解ORM框架的底层原理,这不,冰河带你10分钟手撸一个极简版ORM框架(赶快收藏吧)

大家好&#xff0c;我是冰河~~ 最近很多小伙伴对ORM框架的实现很感兴趣&#xff0c;不少读者在冰河的微信上问&#xff1a;冰河&#xff0c;你知道ORM框架是如何实现的吗&#xff1f;比如像MyBatis和Hibernate这种ORM框架&#xff0c;它们是如何实现的呢&#xff1f; 为了能够…

.Net Core ORM 框架

我的.net core orm 框架 一个简单的orm框架支持的数据库版本新的版本项目地址使用方式实现方式高级特性扩展函数性能bug 一个简单的orm框架 作者在使用很多orm框架的时候觉得查询语句写法似乎不是很好用&#xff0c;例如sqlSugar,EF,sqlSugar呢链接的时候必须注意表的别称&…

SQLAlchemy ORM框架

ORM简介 ORM 全称 Object Relational Mapping, 叫对象关系映射。简单的说&#xff0c;ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系。这样&#xff0c;我们要操作数据库&#xff0c;数据库中的表或者表中的一条记录就可以直接通过操作类或者类实例来完成。 对于…