簡介
CAT 是基於 Java 開發的實時應用監控平台,為美團點評提供了全面的實時監控告警服務。
已經在美團點評的基礎架構中間件框架(MVC框架,RPC框架,數據庫框架,緩存框架等,消息隊列,配置系統等)深度集成,為美團點評各業務線提供系統豐富的性能指標、健康狀況、實時告警等。
開源地址:https://github.com/dianping/cat/
Docker 部署CAT
一、環境
已安裝服務
- 服務1:docker-compose Version 1.25.0-rc2
- 服務2:Docker Version: 19.03.4
- 服務3:Mysql 5.7
- 服務4:git 1.8.3.1
二、通過Docker安裝
1、創建CAT目錄、進入到該目錄下
mkdir -p /opt/cat/
cd /opt/cat
2、下載cat
git clone https://github.com/dianping/cat.git
3、進入到Docker目錄
/cat/docker
4、創建Dockerfile文件
vim Dockerfile

FROM centos:centos6 USER root #UTILITIES RUN yum install -y wget RUN yum install -y tar #JAVA (OPENJDK 7) ENV JAVA_VERSION 1.7.0 RUN yum install -y java-1.7.0-openjdk java-1.7.0-openjdk-devel ENV JAVA_HOME /usr/lib/jvm/java #TOMCAT 7 ENV CATALINA_HOME /usr/local/tomcat ENV PATH $CATALINA_HOME/bin:$PATH RUN mkdir -p "$CATALINA_HOME" WORKDIR $CATALINA_HOME ENV TOMCAT_MAJOR_VERSION 7 ENV TOMCAT_MINOR_VERSION 7.0.79 RUN wget -q https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz && \ wget -qO- https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz.md5 | md5sum -c - && \ tar zxf apache-tomcat-*.tar.gz && \ mv apache-tomcat-${TOMCAT_MINOR_VERSION}/* . && \ rm -rf apache-tomcat-* #MAVEN ENV MAVEN_VERSION_MAJOR 3 ENV MAVEN_VERSION_MINOR 5.2 RUN wget http://archive.apache.org/dist/maven/maven-${MAVEN_VERSION_MAJOR}/${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR}/binaries/apache-maven-${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR}-bin.tar.gz RUN tar xvf apache-maven-${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR}-bin.tar.gz RUN rm apache-maven-${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR}-bin.tar.gz RUN mv apache-maven-${MAVEN_VERSION_MAJOR}.${MAVEN_VERSION_MINOR} /usr/local/apache-maven ENV M2_HOME=/usr/local/apache-maven ENV M2=$M2_HOME/bin ENV PATH=$M2:$PATH CMD java -version && mvn -version COPY . /root/workspace/cat WORKDIR /root/workspace/cat RUN set -ex && mvn clean install -DskipTests RUN cp cat-home/target/*.war $CATALINA_HOME/webapps/cat.war ADD docker/datasources.xml /data/appdatas/cat/datasources.xml ADD docker/datasources.sh /datasources.sh RUN sed -i "s/port=\"8080\"/port=\"8080\"\ URIEncoding=\"utf-8\"/g" $CATALINA_HOME/conf/server.xml EXPOSE 8080
5、創建docker-compose文件
vim docker-compose.yaml

version: '2.2' services: cat: container_name: cat ######## build from Dockerfile ########### build: context: ../ dockerfile: ./docker/Dockerfile ######## End -> build from Dockerfile ########### environment: # if you have your own mysql, config it here, and disable the 'mysql' config blow - MYSQL_URL=192.168.0.197 # links will maintain /etc/hosts, just use 'container_name' - MYSQL_PORT=3306 - MYSQL_USERNAME=cat - MYSQL_PASSWD=cat123 - MYSQL_SCHEMA=cat working_dir: /app volumes: # 默認127.0.0.1,可以修改為自己真實的服務器集群地址 - "./client.xml:/data/appdatas/cat/client.xml" # 默認使用環境變量設置。可以啟用本注解,並修改為自己的配置 - "./datasources.xml:/data/appdatas/cat/datasources.xml" - "/etc/localtime:/etc/localtime" #command: /bin/sh -c 'chmod +x /datasources.sh && /datasources.sh && catalina.sh run' command: /bin/sh -c 'catalina.sh run' ports: - "8080:8080" - "2280:2280" network_mode: "host"
6、修改datasources.xml配置文件鏈接數據庫使用
vim datasources.xml

<?xml version="1.0" encoding="utf-8"?> <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.0.9:3306/cat]]></url> <user>cat</user> <password>xxxxxxx</password> <connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties> </properties> </data-source> </data-sources>
7、修改client.xml配置文件用於指定監控端
vim client.xml

<?xml version="1.0" encoding="utf-8"?> <config mode="client"> <servers> <server ip="192.168.0.9" port="2280" http-port="8080"/> </servers> </config>
8、將cat數據庫導入sql文件
數據庫位置:/cat/script/CatApplication.sql
9、執行命令構建啟動服務
docker-compose up
10、設置開機自啟動
docker update --restart=always cat
11、開啟防火牆端口
firewall-cmd --zone=public --permanent --add-port=2280/tcp
firewall-cmd --zone=public --permanent --add-port=8080/tcp
12、測試訪問
http://ip:8080/cat
13、配置cat
config 默認用戶名:admin 密碼:admin

<?xml version="1.0" encoding="utf-8"?> <router-config backup-server="192.168.0.9" backup-server-port="2280"> <default-server id="192.168.0.9" weight="1.0" port="2280" enable="true"/> <network-policy id="default" title="默認" block="false" server-group="default_group"> </network-policy> <server-group id="default_group" title="default-group"> <group-server id="192.168.0.9"/> </server-group> <domain id="cat"> <group id="default"> <server id="192.168.0.9" port="2280" weight="1.0"/> </group> </domain> </router-config>
參考文章:https://www.cnblogs.com/provence666/p/11029329.html
參考文章:https://article.itxueyuan.com/BJ2KdG
參考文章:https://zhuanlan.zhihu.com/p/46399761
參考文章:https://www.cnblogs.com/softidea/p/5719331.html