CAT(Central Application Tracking)是基於Java開發的實時應用監控平臺,包括實時應用監控,業務監控。關於CAT的具體介紹可移步到CAT官網進行查閱。html
CentOS 7 Java 8 Maven 3.5 MySQL 5.7 CAT 2.0.0 Tomcat 7.0前端
下載CAT安裝包:mysql
# 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:git
$ mv cat-home-2.0.0.war tomcat-7.0.90/webapps/cat.war
2.1 配置 CAT
在Linux系統安裝時,CAT應用要求對/data/appdatas/cat和/data/applogs/cat路徑有讀寫權限。github
# mkdir -p /data/appdatas/cat && mkdir -p /data/applogs/cat
CAT服務端應用會對這兩個目錄進行讀寫操做,所以須要首先建立這兩個目錄。而且應確保啓動CAT應用的用戶對這兩個目錄有讀寫權限。web
下載CAT的源碼包:sql
$ 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客戶端和服務端安裝所需的一些配置文件:vim
將cat-2.0.0/script目錄中的client.xml、datasources.xml、server.xml配置文件複製到目錄/data/appdatas/cat中:tomcat
$ cp client.xml server.xml datasources.xml /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> <!-- ip:部署CAT應用的服務器IP port:CAT服務端接收客戶端數據的端口(不容許更改) http-port:CAT應用部署到的容器的端口(tomcat的端口) --> <server ip="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:是否爲報警機(開啓各種報警監聽, 只須要一臺服務機開啓此功能) --> <config local-mode="false" hdfs-machine="false" job-machine="true" alert-machine="false"> <!-- local-base-dir:本地數據存儲目錄, 建議不要修改 local-report-storage-time:本地報告文件存放時長, 單位爲(天) local-logivew-storage-time:本地日誌文件存放時長, 單位爲(天) --> <storage local-base-dir="/data/appdatas/cat/bucket/" local-report-storage-time="7" local-logivew-storage-time="7"/> <console default-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-source id="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-source id="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"。以下:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" />
2.2 啓動 CAT
啓動tomcat:
$ ./tomcat-7.0.90/bin/startup.sh
訪問:http://10.10.10.121:8080/cat
配置操做須要用戶登入系統,每次的登陸帳戶名和密碼保持一致便可。如catadmin/catadmin。
2.3 客戶端路由設置
依次打開配置 --> 全局告警配置 --> 客戶端路由修改id爲CAT部署的服務器ip:
3.1 部署概覽
10.10.10.121做爲前端控制檯,若是使用了域名,只需將域名解析到此IP地址。
按以上搭建單點模式的方式,分別在10.10.10.12一、10.10.10.12二、10.10.10.123部署CAT。部署完成後,先不要啓動tomcat。接下來作集羣配置。
3.2 客戶端client.xml配置
10.10.10.12一、10.10.10.12二、10.10.10.123的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> <!-- ip:部署CAT應用的服務器IP port:CAT服務端接收客戶端數據的端口(不容許更改) http-port:CAT應用部署到的容器的端口(tomcat的端口) --> <server ip="10.10.10.121" port="2280" http-port="8080" /> <server ip="10.10.10.122" port="2280" http-port="8080" /> <server ip="10.10.10.123" port="2280" http-port="8080" /> </servers> </config>
3.3 服務端server.xml配置
10.10.10.121的server.xml配置,具體以下:
<?xml version="1.0" encoding="utf-8"?> <!-- local-mode:是否爲本地開發模式。建議在開發環境以及生產環境都設置爲false hdfs-machine:是否啓用HDFS存儲 job-machine:是否爲報告工做機(開啓生成彙總報告和統計報告,只須要一臺服務機開啓此功能) alert-machine:是否爲報警機(開啓各種報警監聽, 只須要一臺服務機開啓此功能) --> <config local-mode="false" hdfs-machine="false" job-machine="true" alert-machine="true"> <!-- local-base-dir:本地數據存儲目錄, 建議不要修改 local-report-storage-time:本地報告文件存放時長, 單位爲(天) local-logivew-storage-time:本地日誌文件存放時長, 單位爲(天) --> <storage local-base-dir="/data/appdatas/cat/bucket/" local-report-storage-time="7" local-logivew-storage-time="7"/> <console default-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.12二、10.10.10.123的server.xml配置同樣,具體以下:
<?xml version="1.0" encoding="utf-8"?> <!-- local-mode:是否爲本地開發模式。建議在開發環境以及生產環境都設置爲false hdfs-machine:是否啓用HDFS存儲 job-machine:是否爲報告工做機(開啓生成彙總報告和統計報告,只須要一臺服務機開啓此功能) alert-machine:是否爲報警機(開啓各種報警監聽, 只須要一臺服務機開啓此功能) --> <config local-mode="false" hdfs-machine="false" job-machine="false" alert-machine="false"> <!-- local-base-dir:本地數據存儲目錄, 建議不要修改 local-report-storage-time:本地報告文件存放時長, 單位爲(天) local-logivew-storage-time:本地日誌文件存放時長, 單位爲(天) --> <storage local-base-dir="/data/appdatas/cat/bucket/" local-report-storage-time="7" local-logivew-storage-time="7"/> <console default-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>
服務端server.xml的配置主要是job-machine和alert-machine屬性值配置的不一樣。
3.4 啓動 CAT
分別啓動10.10.10.12一、10.10.10.12二、10.10.10.123的tomcat:
$ ./tomcat-7.0.90/bin/startup.sh
10.10.10.121做爲控制檯服務,只需訪問:http://10.10.10.121:8080/cat
3.5 客戶端路由設置
10.10.10.121做爲控制檯服務,只需配置這臺便可。
依次打開配置 --> 全局告警配置 --> 客戶端路由修改id爲CAT部署的服務器ip:
其中10.10.10.121做爲備份,正常狀況下不做爲消費機(即不起消費數據的做用),僅當CAT集羣中的其它節點(如這裏的10.10.10.12二、10.10.10.123節點)都掛掉以後纔會對數據進行消費。
該配置會自動同步到CAT集羣中的其它節點(如這裏的10.10.10.12二、10.10.10.123節點)。
配置完成後,重啓10.10.10.121服務器的CAT應用容器(即重啓tomcat)。
來源:github----Hits