搭建大众点评CAT监控平台

搭建大众点评CAT监控平台

CAT(Central Application Tracking)是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。关于CAT的具体介绍可移步到CAT官网进行查阅。

1. 环境清单

CentOS 7 Java 8 Maven 3.5 MySQL 5.7 CAT 2.0.0 Tomcat 7.0

2. 安装 CAT

下载CAT安装包:

# wget -O cat-home-2.0.0.war http://unidal.org/nexus/service/local/repositories/releases/content/com/dianping/cat/cat-home/2.0.0/cat-home-2.0.0.war

将cat-home-2.0.0.war部署到tomcat并重命名为cat.war:

$ mv cat-home-2.0.0.war tomcat-7.0.90/webapps/cat.war

2.1 配置 CAT
在Linux系统安装时,CAT应用要求对/data/appdatas/cat和/data/applogs/cat路径有读写权限。

# mkdir -p /data/appdatas/cat && mkdir -p /data/applogs/cat

CAT服务端应用会对这两个目录进行读写操作,因此需要首先创建这两个目录。并且应确保启动CAT应用的用户对这两个目录有读写权限。

下载CAT的源码包:

$ wget -O cat-2.0.0.tar.gz https://codeload.github.com/dianping/cat/tar.gz/v2.0.0

解压缩:

# tar zxvf cat-2.0.0.tar.gz

解压缩完成后得到cat-2.0.0目录。其中cat-2.0.0/script目录中存放的是CAT客户端和服务端安装所需的一些配置文件:
搭建大众点评CAT监控平台

将cat-2.0.0/script目录中的client.xml、datasources.xml、server.xml配置文件复制到目录/data/appdatas/cat中:

$ cp client.xml server.xml datasources.xml /data/appdatas/cat/

客户端client.xml的配置内容如下:


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

<config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd">

<servers>

<!-- ip:部署CAT应用的服务器IP
port:CAT服务端接收客户端数据的端口(不允许更改)
http-port:CAT应用部署到的容器的端口(tomcat的端口)
-->

<server ip="10.10.10.121" port="2280" http-port="8080" />

</servers>

</config>

服务端server.xml的配置内容如下:


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

<!-- local-mode:是否为本地开发模式。建议在开发环境以及生产环境都设置为false
hdfs-machine:是否启用HDFS存储
job-machine:是否为报告工作机(开启生成汇总报告和统计报告,只需要一台服务机开启此功能)
alert-machine:是否为报警机(开启各类报警监听, 只需要一台服务机开启此功能)
-->

<config local-mode="false" hdfs-machine="false" job-machine="true" alert-machine="false">

<!-- local-base-dir:本地数据存储目录, 建议不要修改
local-report-storage-time:本地报告文件存放时长, 单位为(天)
local-logivew-storage-time:本地日志文件存放时长, 单位为(天)
-->

<storage local-base-dir="/data/appdatas/cat/bucket/" local-report-storage-time="7" local-logivew-storage-time="7"/>

<console default-domain="Cat" show-cat-domain="true">

<!-- 远程服务端HTTP服务列表, 用于同步更新 -->

<remote-servers>10.10.10.121:8080</remote-servers>

</console>

</config>

数据源datasources.xml的配置内容如下:


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

<data-sources>

<data-source id="cat">

<maximum-pool-size>8</maximum-pool-size>

<connection-timeout>3s</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://10.10.10.121:3306/cat_schema]]></url>

<!-- 用户名 -->

<user>root</user>

<!-- 密码 -->

<password>123654</password>

<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>

</properties>

</data-source>

<data-source id="app">

<maximum-pool-size>8</maximum-pool-size>

<connection-timeout>3s</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://10.10.10.121:3306/cat_schema]]></url>

<!-- 用户名 -->

<user>root</user>

<!-- 密码 -->

<password>123654</password>

<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>

</properties>

</data-source>

</data-sources>

创建cat_schema数据库:


CREATE DATABASE IF NOT EXISTS cat_schema DEFAULT CHARSET utf8 COLLATE utf8_general_ci

选择数据库cat_schema:

USE cat_schema

导入Cat.sql到cat_schema数据库:

SOURCE /home/fanlychie/cat-2.0.0/script/Cat.sql

编辑tomcat配置文件:

$ vim tomcat-7.0.90/conf/server.xml

找到Connector的配置行,添加URIEncoding=”utf-8″。如下:

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="utf-8" />

2.2 启动 CAT
启动tomcat:

$ ./tomcat-7.0.90/bin/startup.sh

访问:http://10.10.10.121:8080/cat

配置操作需要用户登入系统,每次的登录账户名和密码保持一致即可。如catadmin/catadmin。

2.3 客户端路由设置
依次打开配置 –> 全局告警配置 –> 客户端路由修改id为CAT部署的服务器ip:

  1. 集群搭建
    上面介绍的是CAT应用的单点模式部署。接下来介绍CAT的集群模式搭建方式。

3.1 部署概览
搭建大众点评CAT监控平台

10.10.10.121作为前端控制台,如果使用了域名,只需将域名解析到此IP地址。

按以上搭建单点模式的方式,分别在10.10.10.121、10.10.10.122、10.10.10.123部署CAT。部署完成后,先不要启动tomcat。接下来做集群配置。

3.2 客户端client.xml配置
10.10.10.121、10.10.10.122、10.10.10.123的client.xml配置一样,具体如下:

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

<config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd">

<servers>

<!-- ip:部署CAT应用的服务器IP
port:CAT服务端接收客户端数据的端口(不允许更改)
http-port:CAT应用部署到的容器的端口(tomcat的端口)
-->

<server ip="10.10.10.121" port="2280" http-port="8080" />

<server ip="10.10.10.122" port="2280" http-port="8080" />

<server ip="10.10.10.123" port="2280" http-port="8080" />

</servers>

</config>

3.3 服务端server.xml配置
10.10.10.121的server.xml配置,具体如下:


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

<!-- local-mode:是否为本地开发模式。建议在开发环境以及生产环境都设置为false
hdfs-machine:是否启用HDFS存储
job-machine:是否为报告工作机(开启生成汇总报告和统计报告,只需要一台服务机开启此功能)
alert-machine:是否为报警机(开启各类报警监听, 只需要一台服务机开启此功能)
-->

<config local-mode="false" hdfs-machine="false" job-machine="true" alert-machine="true">

<!-- local-base-dir:本地数据存储目录, 建议不要修改
local-report-storage-time:本地报告文件存放时长, 单位为(天)
local-logivew-storage-time:本地日志文件存放时长, 单位为(天)
-->

<storage local-base-dir="/data/appdatas/cat/bucket/" local-report-storage-time="7" local-logivew-storage-time="7"/>

<console default-domain="Cat" show-cat-domain="true">

<!-- 远程服务端HTTP服务列表, 用于同步更新 -->

<remote-servers>10.10.10.121:8080,10.10.10.122:8080,10.10.10.123:8080</remote-servers>

</console>

</config>

10.10.10.122、10.10.10.123的server.xml配置一样,具体如下:

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

<!-- local-mode:是否为本地开发模式。建议在开发环境以及生产环境都设置为false
hdfs-machine:是否启用HDFS存储
job-machine:是否为报告工作机(开启生成汇总报告和统计报告,只需要一台服务机开启此功能)
alert-machine:是否为报警机(开启各类报警监听, 只需要一台服务机开启此功能)
-->

<config local-mode="false" hdfs-machine="false" job-machine="false" alert-machine="false">

<!-- local-base-dir:本地数据存储目录, 建议不要修改
local-report-storage-time:本地报告文件存放时长, 单位为(天)
local-logivew-storage-time:本地日志文件存放时长, 单位为(天)
-->

<storage local-base-dir="/data/appdatas/cat/bucket/" local-report-storage-time="7" local-logivew-storage-time="7"/>

<console default-domain="Cat" show-cat-domain="true">

<!-- 远程服务端HTTP服务列表, 用于同步更新 -->

<remote-servers>10.10.10.121:8080,10.10.10.122:8080,10.10.10.123:8080</remote-servers>

</console>

</config>

服务端server.xml的配置主要是job-machine和alert-machine属性值配置的不同。

3.4 启动 CAT
分别启动10.10.10.121、10.10.10.122、10.10.10.123的tomcat:

$ ./tomcat-7.0.90/bin/startup.sh

10.10.10.121作为控制台服务,只需访问:http://10.10.10.121:8080/cat

3.5 客户端路由设置
10.10.10.121作为控制台服务,只需配置这台即可。

依次打开配置 –> 全局告警配置 –> 客户端路由修改id为CAT部署的服务器ip:

其中10.10.10.121作为备份,正常情况下不作为消费机(即不起消费数据的作用),仅当CAT集群中的其它节点(如这里的10.10.10.122、10.10.10.123节点)都挂掉之后才会对数据进行消费。

该配置会自动同步到CAT集群中的其它节点(如这里的10.10.10.122、10.10.10.123节点)。

配置完成后,重启10.10.10.121服务器的CAT应用容器(即重启tomcat)。

来源:github—-Hits

链接:https://fanlychie.github.io/post/cat-setup.html

转载于:https://blog.51cto.com/13672582/2300955

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101365.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 递归和迭代

    递归和迭代一.递归(Recursion)1.递归:以相似的方式重复自身的过程2.递归在程序中表现为:在函数的定义中直接或间接调用函数自身3.递归和循环:(1)递归是有去(递去)有回(归来),因为存在终止

  • ansys随机振动分析_workbench扫频振动仿真

    ansys随机振动分析_workbench扫频振动仿真随机振动(PSD)分析步骤PSD分析包括如下六个步骤:1.建造模型;2.求得模态解;3.扩展模态;4.获得谱解;5.合并模态;6.观察结果。以上六步中,前两步跟单点响应谱分析一样,后四步将在下面作详细讲解。Ansys/Professional产品中不能进展随机振动分析。如果选用GUI交互方法进展分析,模态分析选择对话框〔MODOPT命令〕中包含有是否进展模态扩展选项〔MXPAND命令〕,将其设置为YES就可以进展下面的:扩展模态。这样,第二步〔求得模态解〕和第三步〔扩展模态〕就合并到一个步

    2022年10月10日
  • SpringBoot 使用 @Transactional 注解配置事务[通俗易懂]

    SpringBoot项目中需要配置事务管理,所以在这里系统地整理下关于@Transactional注解相关的知识!1、详细介绍事务管理是应用系统开发中必不可少的一部分。Spring为事务管理提供了丰富的功能支持。Spring事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代…

  • vdbench使用

    vdbench使用简介vdbench是一个I/O工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。可以使用vdbench测试磁盘和文件系统的读写性能。名词解释vdbench中常用的一些名词解释:HD主机定义SD存储定义WD工作负载定义RD运行定义FSD文件系统存储定义FWD文件工作负载定义安装和配置linux下配置vdbench(1)下载Vdbench…

  • UDP协议 sendto 和 recvfrom 浅析与示例

    UDP协议 sendto 和 recvfrom 浅析与示例UDP(userdatagramprotocol)用户数据报协议,属于传输层。UDP是面向非连接的协议,它不与对方建立连接,而是直接把数据报发给对方。UDP无需建立类如三次握手的连接,使得通信效

  • Java是什么意思-给想要了解Java的朋友介绍Java

    Java是什么意思-给想要了解Java的朋友介绍Java许多人会比较好奇,Java是什么意思?或许听说过Java是一种编程语言,但也会不禁思考Java是干什么用的?今天我来给没有接触过计算机行业的同学们简单介绍一下Java。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号