1、Cat的项目背景java
CAT(Central Application Tracking),是美团点评基于 Java 开发的一套开源的分布式实时监控系统。美团点评基础架构部但愿在基础存储、高性能通讯、大规模在线访问、服务治理、实时监控、容器化及集群智能调度等领域提供业界领先的、统一的解决方案,CAT 目前在美团点评的产品定位是应用层的统一监控组件,在中间件(RPC、数据库、缓存、MQ 等)框架中获得普遍应用,为各业务线提供系统的性能指标、健康情况、实时告警等服务。mysql
Gthub连接:https://github.com/dianping/cat/blob/master/README.mdgit
2、Cat集群部署github
1,需求 web
1.1 服务机器需求:3台。(172.17.16.27,172.17.16.25,172.17.16.19)使用的是内网地址,其中172.17.16.27为主服务端。sql
1.2 服务需求:Centos 7,jdk1.8,Tomcat,Mysql 5.6+。其中Mysql部署一个便可。数据库
1.3 软件包下载:apache
git clone https://github.com/dianping/cat.git浏览器
wget http://unidal.org/nexus/service/local/repositories/releases/content/com/dianping/cat/cat-home/3.0.0/cat-home-3.0.0.war缓存
其中下载下来后,cat-home-3.0.0.war是cat的项目包,cat为配置文件包
2,配置
2.0 配置cat环境变量(红色区域为本身设置区域,根据服务器内存设置,建议生产10G+,其余2G+)
export CAT_HOME=/data/appdatas/cat/
CATALINA_OPTS="$CATALINA_OPTS -server -DCAT_HOME=$CAT_HOME -Djava.awt.headless=true -Xms25G -Xmx25G -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=10144m -XX:MaxNewSize=10144m -XX:SurvivorRatio=10 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=13 -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+ScavengeBeforeFullGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:-ReduceInitialCardMarks -XX:+CMSPermGenSweepingEnabled -XX:CMSInitiatingPermOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrent -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="$CATALINA_HOME\conf\logging.properties" -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -Xloggc:/data/applogs/heap_trace.txt -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/applogs/HeapDumpOnOutOfMemoryError -Djava.util.Arrays.useLegacyMergeSort=true"
2.1 建立/data目录(3台都要)
mkdir /data/{appdatas,applogs} -p
mkdir /data/appdatas/cat -p
其中/data/appdatas/cat为cat项目的配置目录
须要在/data/appdatas/cat目录下建立3个配置文件(服务端配置文件server.xml,客户端配置文件client.xml,数据库配置文件datasources.xml)
【注意:】咱们的3个服务端配置,客户端配置文件和数据库配置文件一致,服务端配置文件不一样
client.xml文件内容:
<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
<servers>
<server ip="172.17.16.109" port="2280" http-port="8080"/>
<server ip="172.17.16.85" port="2280" http-port="8080"/>
<server ip="172.17.16.32" port="2280" http-port="8080"/>
</servers>
</config>
datasources.xml文件内容:
<?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://172.17.16.51:3306/cat]]></url> <!-- 请替换为真实数据库URL及Port -->
<user>xxxxxx</user> <!-- 请替换为真实数据库用户名 -->
<password>xxxxxxxxxxxxxxxxxxxx</password> <!-- 请替换为真实数据库密码 -->
<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
</properties>
</data-source>
</data-sources>
主server的配置文件为:【主要是job-machine和alert-machine的不一样,主为true,其他两个为false便可】
<?xml version="1.0" encoding="utf-8"?>
<!-- Configuration for development environment-->
<config local-mode="false" hdfs-machine="false" job-machine="true" alert-machine="true">
<storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7">
</storage>
<console default-domain="Cat" show-cat-domain="true">
<!--将172.16.90.114修改成部署CAT的内网IP,请不要写127.0.0.1和外网IP -->
<remote-servers>172.17.16.109:8080,172.17.16.85:8080,172.17.16.32:8080</remote-servers>
</console>
</config>
2.2 受权目录(3台都要)
chmod 777 -R /data
2.3 导入sql
将/cat/script/CatApplication.sql导入数据库便可,须要建立cat库
2.4 启动服务
将cat-home-3.0.0.war更名为cat.war,以后移动到tomcat/webapps/下
sh tomcat/bin/startup.sh 启动便可
2.5 访问服务
浏览器输入server.xml中job-machine和alert-machine为true那台服务器的公网即x.x.x.x:8080/cat,用户名密码admin
3,配置路由
3.1 服务端路由配置
3.2 客户端路由配置
3.3 查看状态
4,客户端集成
建立/data/appdatas/cat目录,以后将服务端的client.xml文件放到这个目录底下便可,以后chmod 777 -R /data
【注意:】客户端路由或其余服务端配置文件修改,重启cat