搭建大众点评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
的源码包:
$ 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
客户端和服务端安装所需的一些配置文件:
文件 | 说明 |
---|---|
client.xml | 所有的CAT客户端都需要配置这个配置文件。它用于配置CAT部署的服务端信息。只有客户端配置了这个配置文件,客户端才能正确连接到CAT服务器端。该文件的部署路径是/data/appdatas/cat(该部署路径不能更改,并且启动客户端的程序的用户需要对此目录有读写权限)。 特殊的,部署CAT应用的服务端同时也是一个客户端,也需要配置该配置文件。 |
server.xml | CAT服务端的配置文件。即安装CAT应用的服务器才需要配置。该文件的部署路径是/data/appdatas/cat(该部署路径不能更改,并且启动CAT应用的用户需要对此目录有读写权限)。 |
datasources.xml | CAT服务端的配置文件。即安装CAT应用的服务器才需要配置。该配置文件用于配置CAT链接MySQL数据库的信息。该文件的部署路径是/data/appdatas/cat(该部署路径不能更改)。 |
Cat.sql | CAT应用所需的MySQL数据库脚本。需将此脚本导入MySQL数据库中。 |
将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
:
3. 集群搭建
上面介绍的是CAT
应用的单点模式部署。接下来介绍CAT
的集群模式搭建方式。
3.1 部署概览
IP | 角色 |
---|---|
10.10.10.121 | 控制台、告警端、任务机 |
10.10.10.122 | 消费机 |
10.10.10.123 | 消费机 |
![]() |
|
按以上搭建单点模式的方式,分别在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>
![]() |
服务端 |
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
更多干货可关注公众号后获取
搭建大众点评CAT监控平台的更多相关文章
- 大众点评cat监控平台搭建
参考官方文档:https://github.com/dianping/cat/wiki/readme_server 1.数据库相关 (1)创建数据库cat,并执行以下sql创建相关表: CREATE ...
- 美团点评CAT监控平台研究
1. 美团点评CAT监控平台研究 1.1. 前言 此文根据我对官方文档阅读并记录整理所得,中间可能会穿插一些自己的思考和遇坑 1.2. 简介 CAT 是基于 Java 开发的实时应用监控平台,为美团点 ...
- cat监控平台环境搭建
项目地址:https://github.com/dianping/cat 编译步骤: 这个项目比较另类,把编译需要的jar包,单独放在git分支mvn-repo里了,而且官方文档里给了一个错误的命令提 ...
- cat监控平台环境搭建 专题
项目地址:https://github.com/dianping/cat 编译步骤: 这个项目比较另类,把编译需要的jar包,单独放在git分支mvn-repo里了,而且官方文档里给了一个错误的命令提 ...
- 大众点评实时监控系统CAT的那些坑
首先,感谢大众点评开源监控系统CAT.CAT是一款非常使用的功能建全的监控系统.作为一个知名的开源软件,真的是太差了. 想把CAT用起来,没有多年的Java经验是不行的.先吐槽一下,再写一篇如何用的文 ...
- Centos 7部署大众点评CAT(一)——单服务器部署
前一篇拙作上传的时间已经过去2个月了,中间并不是闲着...主要是忙着学习各种组件的安装,写了几篇安装心得存在硬盘里. 最近尝试了点评开源的CAT监控平台的安装,并且希望能够引入到工作中.在部署实践的过 ...
- 大众点评CAT开源监控系统剖析
参考文档: 大众点评的实时监控系统分析(一) CAT_source_analyze 透过CAT,来看分布式实时监控系统的设计与实现 深度剖析开源分布式监控CAT [分布式监控CAT] Client端源 ...
- 【转】大众点评CAT开源监控系统剖析
https://www.cnblogs.com/yeahwell/p/cat.html 参考文档: 大众点评的实时监控系统分析(一) CAT_source_analyze 透过CAT,来看分布式实时监 ...
- 大众点评cat实时监控简介及部署
简介 背景 CAT(Central Application Tracking)是由吴其敏(前大众点评首席架构师,现携程架构负责人)主导设计基于Java开发打造的实时应用监控平台,为大众点评网提供了全面 ...
随机推荐
- 2019.03.21 读书笔记 枚举ENUM
其实没必要为枚举显式赋值,如果赋值了,就一定要全部赋值,否则默认在上一个元素的基础上+1,如果不给枚举变量赋值,就算枚举中没有0元素,也会显示为0,而超出枚举范围的整型数据,也会显示值本身,而不是异常 ...
- PlayMaker Destroy Self 和 Destroy Object 和 Set Visibility
1. 这个销毁是销毁状态机所在的游戏物体,不能销毁父物体. 2. 这个销毁只要把想销毁的游戏物体拖进去就可以. 3. 这个其实不是真正的销毁游戏对象,只是把它的 MeshRenderer 组件关上了, ...
- 分布式任务框架elastic-job 学习笔记
官方资料:https://github.com/dangdangdotcom/elastic-job ------------------------------------------------- ...
- swing线程机制
在介绍swing线程机制之前,先介绍一些背景概念. 背景概念 同步与异步: 同步是指程序在发起请求后开始处理事件并等待处理的结果或等待请求执行完毕,在此之前程序被阻塞(block)直到请求完成 ...
- [转]Asp.net Core中使用Session
本文转自:http://www.cnblogs.com/sword-successful/p/6243841.html 前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. ...
- intellijidea课程 intellijidea神器使用技巧 3-1 列操作
Ctrl shift 右箭头 ==> 选中右边单词 ctrl shift alt L ==> 选中所有相同的字符 Ctrl alt L ==> 格式化
- 粗看ES6之面向对象写法
标签: es6 在es6以前,js没有类的概念,虽然有构造函数原型的方式用来做面向对向开发,但是对于书法并不是十分友好,而且对于继承实现也不是十分友好. es6引入class constructor ...
- js数组Array方法
1. indexOf indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1. var fruits = ["Banana", "Orange& ...
- Android Studio 小技巧(1):如何导入AAR文件
1. 导入AAR.JAR文件 File- > New -> New Module 这样子AAR文件就导入了,然后在app中的build.gradle中做如下添加 dependencies ...
- SAP R/3 IDES 4.71 编译前后硬盘空间大小比较
使用SGEN编译前 使用SGEN编译后