在比对了市面上各种开源工具之后,最终选择CAT的一个重要原因是其准备工作要求少,只要一个MySQL就能部署起来,大大降低了学习的曲线。对于我们这种传统型的业务公司非常合适了。
1. 安装MySQL数据库
略,相关的教程网上有已经有了无数,这里就不再赘述。
初期推荐免安装版本。
2. 导入数据库表结构
安装MySQL好数据库后,还需要导入CAT服务端正常运行所需要的一系列表结构。而相关的数据库脚本,CAT也已经帮我们准备好了,位于资源文件script/Cat.sql
中。
# 登录MySQL,创建cat表空间
mysql -uroot
create database cat;
# 执行监控系统源码/source/cat/script/Cat.sql脚本完成表结构的创建
use cat;
source /source/cat/script/Cat.sql
3. 三个配置文件
在确认数据库安装成功,以及相关表结构正确导入后,接下来我们就需要对CAT服务配置相关的三个文件进行修正。
以下三个配置文件修改完毕之后,就可以将其拷贝到服务端将要部署到的Tomcat所在目录的根目录下的data/appdatas/cat
中。
3.1. client.xml
这个文件属于所有客户端和服务端都会使用到的配置文件。因为Cat中server端也是个client端,也是需要被监控的。毕竟,监控者自身的情况也是需要监控的!
<!-- mode : 定义配置模式,固定值为client;- -->
<config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd">
<servers>
<!-- 服务端地址, 端口固定-->
<!-- 如果有多个Server, 就继续增加相应的节点配置 -->
<!-- ip : 配置服务端(cat-home)对外IP地址 -->
<!-- port : 配置服务端(cat-home)对外TCP协议开启端口,固定值为2280; -->
<!-- http-port : 配置服务端(cat-home)对外HTTP协议开启端口, 如:tomcat默认是8080端口,若未指定,默认为8080端口; -->
<server ip="127.0.0.1" port="2280" http-port="8048" />
</servers>
</config>
3.2. datasources.xml
这个配置文件只会被服务端使用,属于服务端的数据库配置。
<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.16.1.29:3309/cat]]></url>
<user>root</user>
<password>rootLQ</password>
<connectionProperties><![CDATA[useUnicode=true&autoReconnect=true]]></connectionProperties>
</properties>
</data-source>
...
</data-sources>
3.3. 服务端的server.xml
这个配置文件也只会被服务端使用,属于服务端的服务配置。
<!--
local-mode : 定义服务是否为本地模式(开发模式),设置为false,启动远程监听模式。
hdfs-machine : 定义是否启用HDFS存储方式,默认为 false;
job-machine : 定义当前服务是否为报告工作机(开启生成汇总报告和统计报告的任务,只需要一台服务机开启此功能)
alert-machine : 定义当前服务是否为报警机(开启各类报警监听,只需要一台服务机开启此功能)
-->
<config local-mode="false" hdfs-machine="false" job-machine="false" alert-machine="false">
<!--
storage : 定义数据存储配置信息
local-report-storage-time : 定义本地报告存放时长,单位为(天)
local-logivew-storage-time : 定义本地日志存放时长,单位为(天)
local-base-dir : 定义本地数据存储目录
-->
<!-- 时间单位为 DAY -->
<-- 如果不启用HDFS, CAT服务端将把收集到的日志存放在指定的本地磁盘 -->
<storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7">
<!--
hdfs : 定义HDFS配置信息,便于直接登录系统
server-uri : 定义HDFS服务地址
-->
<!--
<hdfs id="logview" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="logview"/>
<hdfs id="dump" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="dump"/>
<hdfs id="remote" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="remote"/>
-->
</storage>
<!--
console : 定义服务控制台信息
remote-servers : 定义HTTP服务列表,(远程监听端同步更新服务端信息即取此值)
-->
<console default-domain="Cat" show-cat-domain="true">
<!--这里使用 , 分割多个服务端地址 -->
<remote-servers>192.168.0.1:2281,192.168.0.2:2281</remote-servers>
</console>
</config>
4. 启动
在上一步将配置文件拷贝到相应的目录后,我们就可以启动CAT了。注意此刻我们还有一项配置需要在启动后的CAT Server控制台进行修改。所以如果进行集群部署,此时还不是将所有服务启动的时机。
# 将使用MAVEN命令生成的war包放到Tomcat下,并进行改名
mv cat-alpha-2.0.0.war cat.war
# 启动Tomcat
cd bin
./startup.bat
注意这里 官方文档里给出了Tomcat的启动参数参考
-Xms20288m -Xmx20288m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=10144m -XX:MaxNewSize=10144m -XX:SurvivorRatio=10
5. 访问cat服务端
6. 修改路由配置
现在开始进行最后一步的修改 >>> 修改路由配置。
选择 配置【位于右上角】–>全局警告配置【位于左下角】–>客户端路由 ; 打开客户端路由配置界面。
<?xml version="1.0" encoding="utf-8"?>
<!--
1. backup-server 提供内部访问; 一般是当前服务器地址,端口固定2280
2. Default-server 定义可跳转的路由地址
3. 把backup-server设置为当前服务器对外IP地址,端口固定为2280;
-->
<router-config backup-server="127.0.0.1" backup-server-port="2280">
<!-- 处理全部监控请求,如果后续需要扩容,可以直接添加default-server的节点。 -->
<!-- default-server的id属性配置可路由的cat-home服务IP地址,端口固定为2280;若需要禁用路由地址,可把enable设置为false。 -->
<default-server id="127.0.0.1" weight="1.0" port="2280" enable="true"/>
</router-config>
6. 集群
如果有集群的需要, 还只需要少量的工作。
- 将上面的三个配置文件(即
/data/appdatas/cat/
目录下的client.xml
,datasource.xml
,server.xml
)复制到其他集群中。 - 修改
server.xml
配置中的job-machine
和alert-machine
属性,都设置为false,禁用生成报告和报警功能,只开启监听功能 - 启动各自的Tomcat。
7. Links
- 部署文档 - 官方
- 部署文档 - GitHub 这份更详细