CAT 服务端搭建

我会带着你远行 2022-02-28 04:26 442阅读 0赞
  • 目录

前言


  • 觉得没什么好写,这次搭建的过程和之前看到的文档有些不一样,估计以后还会不一样。但依旧记录一下,总结一下,凑凑数吧。
  • 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”?>





  • 在data\appdatas\cat目录下添加datasources.xml文件

    <?xml version=”1.0” encoding=”utf-8”?>

    1. <data-source id="cat">
    2. <maximum-pool-size>3</maximum-pool-size>
    3. <connection-timeout>1s</connection-timeout>
    4. <idle-timeout>10m</idle-timeout>
    5. <statement-cache-size>1000</statement-cache-size>
    6. <properties>
    7. <driver>com.mysql.jdbc.Driver</driver>
    8. <url><![CDATA[jdbc:mysql://127.0.0.1:3306/cat]]></url> <!-- 请替换为真实数据库URL及Port -->
    9. <user>root</user> <!-- 请替换为真实数据库用户名 -->
    10. <password></password> <!-- 请替换为真实数据库密码 -->
    11. <connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
    12. </properties>
    13. </data-source>

  • 在之前看的文档里说有三个xml文件,都在之前的script文件夹里面,但是我在clone的项目里面并没有看到。。。而且新的官方文档里面好像也只要添加如上这两个文件,并都是手动添加的,没有模板,可能是被删除了吧。

4. tomact配置

  • 在tomact 的webapps目录下新增cat目录,并将war包拷至该目录,改名字为cat.war

    • 我启动时候不知道为什么不能识别,我自己解压出来就可以了
  • 在tomact的server.xml配置文件下添加contextPath
    在这里插入图片描述* 修改中文乱码问题

  • 官方文档里说还要调整启动参数,修改 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”?>

    1. <properties>
    2. <property name="local-mode" value="false"/>
    3. <property name="job-machine" value="false"/>
    4. <property name="send-machine" value="false"/>
    5. <property name="alarm-machine" value="false"/>
    6. <property name="hdfs-enabled" value="false"/>
    7. <property name="remote-servers" value="127.0.0.1:8080"/>
    8. </properties>
    9. <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7">
    10. <hdfs id="logview" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="logview"/>
    11. <hdfs id="dump" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="dump"/>
    12. <hdfs id="remote" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="remote"/>
    13. </storage>
    14. <consumer>
    15. <long-config default-url-threshold="1000" default-sql-threshold="100" default-service-threshold="50">
    16. <domain name="cat" url-threshold="500" sql-threshold="500"/>
    17. <domain name="OpenPlatformWeb" url-threshold="100" sql-threshold="500"/>
    18. </long-config>
    19. </consumer>


    1. <properties>
    2. <property name="job-machine" value="true"/>
    3. <property name="alarm-machine" value="true"/>
    4. <property name="send-machine" value="true"/>
    5. </properties>


在这里插入图片描述

结束

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

发表评论

表情:
评论列表 (有 0 条评论,442人围观)

还没有评论,来说两句吧...

相关阅读

    相关 17. FTP服务

    熟悉FTP的读者可能会觉得这个太简单了,直接在网上下载软件安装运行就可以了,客户端和服务器都有,但是只能满足一些简单的工作需求。如果我们通过写Python代码搭建FTP服务器和