搭建 Cat 监控平台集群
1、Cat 简介
Cat 是大众点评开源出来的一个监控平台,很多企业都在使用,比如官方提供的下面这些企业:
最近公司在使用 Cat 作为新的监控平台,通过这个机会,我也尝试去搭建 Cat 集群,下面简单介绍一下搭建的过程。
2、下载 Cat 代码
通过全球最大同性交友网站( https://github.com/dianping/cat )下载 Cat 代码,根据官方的介绍文档,在本地很容易搭建完并跑。生成 cat.war ,也可以不下载代码,直接下载 cat.war。
3、搭建集群
用 4 台 CentOS7 机器来搭建整个 Cat 集群。4 台机器分别如下:
192.168.153.128 Cat 服务
192.168.153.129 Cat 服务
192.168.153.130 Cat 服务
192.168.153.131 MySQL 服务
JDK 和 Tomcat 安装以及Cat数据库导入就不多说了,直接讲一下配置
在每台机器的根目录创建 /data 目录,并授读写权
3 台 Cat 服务的 /data/appdatas/cat 目录放如下 3 个文件
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> <server ip="192.168.153.128" port="2280" http-port="8080" /> <server ip="192.168.153.129" port="2280" http-port="8080" /> <server ip="192.168.153.130" port="2280" http-port="8080" /> </servers> </config>
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://192.168.153.131:3306/cat]]></url> <user>root</user> <password></password> <connectionProperties><![CDATA[useUnicode=true&characterEncoding =UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties> </properties> </data-source> <data-source id="app"> <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://192.168.153.131:3306/cat]]></url> <user>root</user> <password></password> <connectionProperties><![CDATA[useUnicode=true&characterEncoding =UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties> </properties> </data-source> </data-sources>
server.xml
<?xml version="1.0" encoding="utf-8"?> <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"></storage> <console default-domain="Cat" show-cat-domain="true"> <remote-servers>192.168.153.128:8080,192.168.153.129:8080, 192.168.153.130:8080</remote-servers> </console> </config>
启动 3 台 Cat 服务,到 Cat 配置界面配置
<?xml version="1.0" encoding="utf-8"?> <router-config backup-server="192.168.153.128" backup-server-port="2280"> <default-server id="192.168.153.128" weight="1.0" port="2280" enable="true"/> <default-server id="192.168.153.129" weight="1.0" port="2280" enable="true"/> <default-server id="192.168.153.130" weight="1.0" port="2280" enable="true"/> </router-config>
这样子集群就搭建完了
4、Cat 客户端验证
这在客户端运行的磁盘上创建 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> <server ip="192.168.153.128" port="2280" http-port="8080" /> <server ip="192.168.153.129" port="2280" http-port="8080" /> <server ip="192.168.153.130" port="2280" http-port="8080" /> </servers> </config>
maven 引入 cat-client
<dependency> <groupId>com.dianping.cat</groupId> <artifactId>cat-client</artifactId> <version>2.0.0</version> </dependency>
如果是 Web 项目,在 web.xml 加上
<filter> <filter-name>cat-filter</filter-name> <filter-class>com.dianping.cat.servlet.CatFilter</filter-class> </filter> <filter-mapping> <filter-name>cat-filter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>
在 META-INF 添加 app.properties 文件,配置应用名
app.name = abc
运行后就可以看到你的应用在图片的红框上
嗯,这样子就搞定啦。。。