在单机上部署CAT,只是在做实验,在生产环境则不可能只用单台服务器监控多个应用。
下面简单介绍一下双服务器的部署,各位有更多硬件资源作为监控服务端的朋友,如果对CAT集群有兴趣,可以参看这篇拙作。
资源准备:
服务器2台:
10.113.130.111
10.113.130.112
数据库1台:
10.113.130.115,安装MySQL 5.7
1. 安装MySQL好数据库后,登录mysql,创建cat表空间
mysql> create database cat;
执行监控系统源码/source/cat/script/Cat.sql脚本完成表结构的创建
mysql> use cat; mysql> source /root/cat-master/script/Cat.sql;
# 事后证明不需要手动创建表结构,当执行自动安装CAT的mvn install:cat命令时,会要求咱们输入数据库连接配置信息,并创建表结构。只需要执行创建数据库和用户即可。
创建catadmin数据库及用户,登录root用户执行下面语句:
mysql> CREATE USER catadmin@'%' IDENTIFIED BY 'catadmin-1234'; mysql> GRANT ALL PRIVILEGES ON *.* TO catadmin@'%'; mysql> FLUSH PRIVILEGES;
mysql> quit;
2. MVN编译安装CAT
首先在10.113.130.111上进行解压和编译的过程,请参看前一篇,此处不赘述。
配置CAT的环境,填写数据库地址、用户名、密码:
# mvn cat:install Please input jdbc url: [jdbc:mysql://127.0.0.1:3306] jdbc:mysql://10.113.130.115:3306 Please input username: catadmin Please input password:[] catadmin-1234
耐心等待安装完成。
3. 修改配置文件
修改/data/appdatas/cat/目录下的配置文件,稍后拷贝文件到10.113.130.112上,两台服务器的配置文件要完全一样。
- Server.xml
<config local-mode="false" hdfs-machine="false" job-machine="true" alert-machine="false"> <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7"> <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 default-domain="Cat" show-cat-domain="true"> <remote-servers>10.113.130.111:8080,10.113.130.112:8080</remote-servers> </console> <ldap ldapUrl="ldap://10.113.130.111:389/DC=dianpingoa,DC=com"/> </config>
注意几处:
1)local-mode="false":表示运行在多节点服务器环境。
2)hdfs-machine="false":没有开启HDFS存储,下方HDFS的配置内容不会生效 、于是我没有修改;CAT将收集到的信息保存在本地文件的系统。各位根据实际情况来配置。
- Client.xml
<config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd"> <servers> <!-- Local mode for development --> <!-- <server ip="127.0.0.1" port="2280" http-port="8080" /> --> <!-- If under production environment, put actual server address as list. --> <server ip="10.113.130.111" port="2280" http-port="8080" />
<server ip="10.113.130.112" port="2280" />
</servers>
</config>
这里将多台服务器的地址添加到列表,如果不需要从浏览器访问,则不用配置http-port。
像本案的配置,理论上只能通过http://10.113.130.111:8080/cat/来访问,另一台服务器的地址无法显示。
4. 部署到Tomcat
如同前一篇的操作,需要完成:
- 将cat-alpha-1.4.0.war文件拷贝到Tomcat的对应目录下;
确认配置文件无误,即可启动Tomcat,从浏览器上访问集群。
而在第二台Server上完成CAT部署到Tomcat的操作,是完全一致的。
而且在第二台服务器上,并不需要重新下载、编译,只需要完成:
- 复制第一台服务器上的cat-alpha-1.4.0.war到tomcat/webapps/目录、并更名为cat.war;
- 复制第一台服务器上的/data/目录下所有的配置文件、上传到一致的路径下,即可。
在应用服务器上部署CAT:
可能有的初学者要问了,部署完了CAT的监控中心,需要监控的应用端应该如何操作呢?
其实很简单,步骤就和第二台服务器上的操作完全一致,唯一需要修改的是server.xml中的:
job-machine="false"
保存配置文件后,重启应用服务器上的Tomcat。CAT运行之后,会自动连接Server列表中的服务器。
写在最后:
在完成搭建之前,参阅了网上很多篇安装部署的文章,很感谢,但同时对比较旧的信息有一些遗憾。
经过几天的折腾,分别使用了以下的组件进行部署:
- CAT:1.4.0
- JDK:1.7_80,1.8_131_x64,1.8_131_x86
- Tomcat:7,8,8.5,9
并没有遇到需要更换JDK到1.7才能编译、执行的错误。
而且在JDK 1.8_131_x64环境编译的cat.war,拷贝到JDK 1.7_60、Tomcat 7的应用服务器上,同样能在CAT的页面上正常显示系统信息。