搭建大众点评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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 利用python建立股票量化交易系统(一)——小市值选股票模型[通俗易懂]

    利用python建立股票量化交易系统(一)——小市值选股票模型[通俗易懂]从今天开始正式开启我的博客之旅,博客内容全部是我自己的量化心得,主要还是为自己将来中工作之中遇到相似问题,可以方便的找到答案,如果能帮到有相似问题的其他同学,我也很开心,如果帮不到的话,不喜勿喷,如果文章中有什么不对的地方,欢迎批评指正。建立第一个简单的量化模型——小市值选股票模型。思路:在A股市场之中,在每个月月底的时候,按照市值排名,选择最小市值的10只股票买入,持有到下个月月底…

    2022年6月26日
    84
  • java 股票历史数据_获取股票的历史数据

    java 股票历史数据_获取股票的历史数据packagecom.xiaole.stock;importjava.util.ArrayList;importjava.util.List;importorg.jsoup.Jsoup;importorg.jsoup.nodes.Document;importorg.jsoup.nodes.Element;importorg.jsoup.select.Elements;publicclassGe…

    2022年6月24日
    46
  • 持久层(数据层,Dao层) MyBatis框架「建议收藏」

    持久层(数据层,Dao层) MyBatis框架「建议收藏」所谓的持久层就是把数据可以永久保持的存储到设备中,不像放到内存中那样断电就消失,一般来说,持久层为直接的理解就是对数据库的各种操作,如CRUD(增加,删除,修改,查询),更新等操作持久层,就是把持久

    2022年7月2日
    43
  • 几款永久免费内网穿透,好用且简单_内网穿透平台

    几款永久免费内网穿透,好用且简单_内网穿透平台第一款:Sunny-Ngrok提供免费内网穿透服务,免费服务器支持绑定自定义域名管理内网服务器,内网web进行演示快速开发微信程序和第三方支付平台调试本地WEB外网访问、本地开发微信、TCP端口转发新增FRP服务器,基于FRP实现https、udp转发无需任何配置,下载客户端之后直接一条命令让外网访问您的内网不再是距离官网地址:https://www.ngrok.cc/第二款:蜻蜓映射蜻蜓映射是一款免费的内网穿透软件。适用于远程桌面、远程服务器、远程办公、游戏联机、开发调试

    2022年4月19日
    1.6K
  • iocp是什么_acception

    iocp是什么_acception接受连接请求服务器要做的最普通的事情之一就是接受来自客户端的连接请求。在套接字上使用重叠I/O接受连接的惟一API就是AcceptEx()函数。有趣的是,通常的同步接受函数accept()的返回值是一个新的套接字,而AcceptEx()函数则需要另外一个套接字作为它的参数之一。这是因为AcceptEx()是一个重叠操作,所以你需要事先创建一个套接字(但不要绑定或连接它…

    2022年9月29日
    3
  • Python多线程通信_python socket多线程

    Python多线程通信_python socket多线程作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处创建线程线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每个线程并行执行不同的任务。由于线程是操作系统直接支持的执行单元,因此,高级语言(如Python、Java等)通常都内置多线程的支持。Python的标准库提供了两个模块:_thread和threading,_thread

    2022年8月31日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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