欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

分布式监控CAT服务端部署、客户端SpringBoot集成

程序员文章站 2022-06-16 13:07:30
一:CAT简介:CAT(Central Application Tracking)是基于Java开发的实时监控平台,主要包括移动端监控、应用侧监控、核心网络层监控等。CAT是一个给提供实时架空告警、应用性能分析诊断的工具。二:部署环境Ubuntu16CAT3.0Java8Tomcat8Mave3MySQL5.7内网IP:192.168.1.120三、开始部署1.下载CAT源码git clone https://github.com/dianping/cat.git2.创建数据...

服务端

客户端集成文章链接:
https://blog.csdn.net/Victor_An/article/details/109647976

一:

CAT简介:

CAT(Central Application Tracking)是基于Java开发的实时监控平台,主要包括移动端监控、应用侧监控、核心网络层监控等。
CAT在基础存储、高性能通信、大规模在线访问、服务治理、实时监控、容器化及集群智能调度等领域提供业界领先的、统一的解决方案。CAT 目前在美团
的产品定位是应用层的统一监控组件,基本接入了美团所有核心应用,在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系
统的性能指标、健康状况、实时告警等。

CAT优点:

  • 减少线上问题的发现时间
  • 减少问题故障的定位时间
  • 辅助应用程序的优化工具

二:部署环境

  • Ubuntu16
  • CAT3.0
  • Java8
  • Tomcat8
  • Mave3
  • MySQL5.7
  • 内网IP:192.168.1.120

三、开始部署

1.下载CAT源码

git clone https://github.com/dianping/cat.git

2.创建数据和表

执行script/Cat.sql中的sql语句
创建/data/appdatas/cat文件夹,然后创建/data/appdatas/cat/client.xml文件并写入(linux下需赋予读写权限):

<?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://192.168.1.120:3306/cat]]></url>  <!-- 替换为自己的数据库URL及Port  -->
			<user>root</user>  <!-- 替换为真实数据库用户名  -->
			<password>root</password>  <!-- 替换为真实数据库密码  -->
			<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
		</properties>
	</data-source>
</data-sources>

4.war包部署

使用Maven:
mvn clean install -DskipTests
成功后把cat-home/target/cat-alpha-3.0.0.war重命名为cat.war,复制到tomcat webapp下,启动tomcat。

5.修改路由配置

访问http://192.168.1.120:8080/cat/s/config?op=routerConfigUpdate,默认用户名密码:admin,admin。提交以下内容:

<?xml version="1.0" encoding="utf-8"?>
<router-config backup-server="192.168.1.120" backup-server-port="2280">
   <default-server id="192.168.1.120" weight="1.0" port="2280" enable="true"/>
   <network-policy id="default" title="默认" block="false" server-group="default_group">
   </network-policy>
   <server-group id="default_group" title="default-group">
      <group-server id="192.168.1.120"/>
   </server-group>
   <domain id="cat">
      <group id="default">
         <server id="192.168.1.120" port="2280" weight="1.0"/>
      </group>
   </domain>
</router-config>

配置说明:

  • backup-server属性:设置为当前服务器对外IP地址,端口固定为2280
  • default-server属性:定义可跳转的路由地址,可以设置多个。default-server的id属性配置可路由的cat-home服务IP地址,端口固定为2280;若需要禁用路由地址,可把enable设置为false
  • network-policy 这边可以配置多个不同网段,表示这个网段使用server-- group的cat节点,这里面的作用主要是当多机房部署cat的时候,可以将cat分为多个多个子集群,然后多个子集群处理不同的客户端,避免跨专线访问
  • domain id=cat 这部分主要是定制路由,当发现一些项目数据量特别大,或者其他场景,可以将这些domain的监控请求单独隔离处理

6.修改服务端配置

访问http://192.168.1.111:8080/cat/s/config?op=serverConfigUpdate,提交如下配置:

<?xml version="1.0" encoding="utf-8"?>
<server-config>
   <server id="default">
      <properties>
         <property name="local-mode" value="false"/>
         <property name="job-machine" value="true"/>
         <property name="send-machine" value="false"/>
         <property name="alarm-machine" value="true"/>
         <property name="hdfs-enabled" value="false"/>
         <property name="remote-servers" value="192.168.1.120:8080"/>
      </properties>
      <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="2" local-logivew-storage-time="1" har-mode="true" upload-thread="5">
         <hdfs id="dump" max-size="128M" server-uri="hdfs://127.0.0.1/" base-dir="/user/cat/dump"/>
         <harfs id="dump" max-size="128M" server-uri="har://127.0.0.1/" base-dir="/user/cat/dump"/>
         <properties>
            <property name="hadoop.security.authentication" value="false"/>
            <property name="dfs.namenode.kerberos.principal" value="hadoop/dev80.hadoop@testserver.com"/>
            <property name="dfs.cat.kerberos.principal" value="cat@testserver.com"/>
            <property name="dfs.cat.keytab.file" value="/data/appdatas/cat/cat.keytab"/>
            <property name="java.security.krb5.realm" value="value1"/>
            <property name="java.security.krb5.kdc" value="value2"/>
         </properties>
      </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="192.168.1.120">
      <properties>
         <property name="job-machine" value="true"/>
         <property name="send-machine" value="false"/>
         <property name="alarm-machine" value="true"/>
      </properties>
   </server>
</server-config>

配置说明:
server节点:代表一台机器的配置。如果id为default,代表默认配置;如果id为ip,代表该台服务器的配置

  • local-mode : 定义服务是否为本地模式(开发模式),在生产环境时,设置为false,启动远程监听模式。默认为 false;
  • hdfs-machine : 定义是否启用HDFS存储方式,默认为 false;
  • job-machine : 定义当前服务是否为报告工作机(开启生成汇总报告和统计报告的任务,只需要一台服务机开启此功能),默认为 false;
  • alarm-machine : 定义当前服务是否为报警机(开启各类报警监听,只需要一台服务机开启此功能),默认为 false;
  • send-machine : 定义当前服务告警是否发送(当时为了解决测试环境开启告警线程,但是最后告警不通知,此配置后续会逐步去除,建议alarm-machine开启为true的时候,这个同步为true)

storage节点: 定义数据存储配置信息

  • local-report-storage-time : 定义本地报告存放时长,单位为(天)
  • local-logivew-storage-time : 定义本地日志存放时长,单位为(天)
  • local-base-dir : 定义本地数据存储目录
  • hdfs : 定义HDFS配置信息,便于直接登录系统
  • server-uri : 定义HDFS服务地址
  • console : 定义服务控制台信息
  • remote-servers : 定义HTTP服务列表,(远程监听端同步更新服务端信息即取此值)
  • ldap : 定义LDAP配置信息(这个可以忽略)
  • ldapUrl : 定义LDAP服务地址(这个可以忽略)
    重新启动Tomcat。

以上即是服务端的部署

客户端集成文章链接:
https://blog.csdn.net/Victor_An/article/details/109647976

本文地址:https://blog.csdn.net/Victor_An/article/details/109646085