|  
     CAT(Central Application Tracking)是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。关于CAT的具体介绍可移步到 CAT官网 进行查阅。  |  
  
 CentOS 7 Java 8 Maven 3.5 MySQL 5.7 CAT 2.0.0 Tomcat 7.0 
 下载 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
 在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"?>
<configmode="client"xmlns:xsi="http://www.w3.org/2001/XMLSchema"xsi:noNamespaceSchemaLocation="config.xsd">
    <servers>
        <!-- ip:部署CAT应用的服务器IP
             port:CAT服务端接收客户端数据的端口(不允许更改)
             http-port:CAT应用部署到的容器的端口(tomcat的端口)
        -->
        <serverip="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:是否为报警机(开启各类报警监听, 只需要一台服务机开启此功能)
-->
<configlocal-mode="false"hdfs-machine="false"job-machine="true"alert-machine="false">
    <!-- local-base-dir:本地数据存储目录, 建议不要修改
         local-report-storage-time:本地报告文件存放时长, 单位为(天)
         local-logivew-storage-time:本地日志文件存放时长, 单位为(天)
    -->
    <storagelocal-base-dir="/data/appdatas/cat/bucket/"local-report-storage-time="7"local-logivew-storage-time="7"/>
    <consoledefault-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-sourceid="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-sourceid="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" 。如下: 
<Connectorport="8080"protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           URIEncoding="utf-8" />
 
  启动 tomcat : 
$ ./tomcat-7.0.90/bin/startup.sh
访问: http://10.10.10.121:8080/cat
 
 
 配置操作需要用户登入系统,每次的登录账户名和密码保持一致即可。如 catadmin/catadmin 。 
 依次打开 配置 --> 全局告警配置 --> 客户端路由 修改 id 为 CAT 部署的服务器 ip : 
 
 
 上面介绍的是 CAT 应用的单点模式部署。接下来介绍 CAT 的集群模式搭建方式。 
| 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 。接下来做集群配置。 
 10.10.10.121 、 10.10.10.122 、 10.10.10.123 的 client.xml 配置一样,具体如下: 
<?xml version="1.0" encoding="utf-8"?>
<configmode="client"xmlns:xsi="http://www.w3.org/2001/XMLSchema"xsi:noNamespaceSchemaLocation="config.xsd">
    <servers>
        <!-- ip:部署CAT应用的服务器IP
             port:CAT服务端接收客户端数据的端口(不允许更改)
             http-port:CAT应用部署到的容器的端口(tomcat的端口)
        -->
        <serverip="10.10.10.121"port="2280"http-port="8080"/>
        <serverip="10.10.10.122"port="2280"http-port="8080"/>
        <serverip="10.10.10.123"port="2280"http-port="8080"/>
    </servers>
</config>
 
  10.10.10.121 的 server.xml 配置,具体如下: 
<?xml version="1.0" encoding="utf-8"?>
<!-- local-mode:是否为本地开发模式。建议在开发环境以及生产环境都设置为false
     hdfs-machine:是否启用HDFS存储
     job-machine:是否为报告工作机(开启生成汇总报告和统计报告,只需要一台服务机开启此功能)
     alert-machine:是否为报警机(开启各类报警监听, 只需要一台服务机开启此功能)
-->
<configlocal-mode="false"hdfs-machine="false"job-machine="true"alert-machine="true">
    <!-- local-base-dir:本地数据存储目录, 建议不要修改
         local-report-storage-time:本地报告文件存放时长, 单位为(天)
         local-logivew-storage-time:本地日志文件存放时长, 单位为(天)
    -->
    <storagelocal-base-dir="/data/appdatas/cat/bucket/"local-report-storage-time="7"local-logivew-storage-time="7"/>
    <consoledefault-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:是否为报警机(开启各类报警监听, 只需要一台服务机开启此功能)
-->
<configlocal-mode="false"hdfs-machine="false"job-machine="false"alert-machine="false">
    <!-- local-base-dir:本地数据存储目录, 建议不要修改
         local-report-storage-time:本地报告文件存放时长, 单位为(天)
         local-logivew-storage-time:本地日志文件存放时长, 单位为(天)
    -->
    <storagelocal-base-dir="/data/appdatas/cat/bucket/"local-report-storage-time="7"local-logivew-storage-time="7"/>
    <consoledefault-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.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 
 
 
 10.10.10.121 作为控制台服务,只需配置这台即可。 
 依次打开 配置 --> 全局告警配置 --> 客户端路由 修改 id 为 CAT 部署的服务器 ip :