官网地址
1 下载源码
1
| git clone https://github.com/dianping/cat.git
|
3.0版本的提交还停留在6年前,4.0的版本是2年前,部署文档还是老版本,我简单尝试了4.0版本的部署发现启动都存在问题,所以针对3.1版本进行部署
1
| git checkout -b docker-deploy-v3.0.0 origin/v3.0.0
|
2 初始化数据库
cat V3.1只支持mysql v5.7版本,不支持v8.0。在mysql中创建好cat库,然后建立下面的表
sql脚本
3 配置文件
docker目录下xxx.xml是配置文件
- 服务端使用
- datasources.sh 根据docker镜像的环境参数动态替换datasources.xml
- datasources.xml cat-server服务端启动要连接的mysql数据库信息 xml标签
- 客户端使用
- client.xml cat-client接入服务端时要指定连接信息
4 构建镜像
进入到源码根目录
1
| cp ./docker/Dockerfile ./
|
根据自己的需求编写调整Dockerfile,本地编译代码一直有问题,修改了maven仓库地址也拉不到包,如果一直不成功就直接下载官网下载链接,我下载的是v3.1.0版本wget -P ~/MyDev/code/java/cat https://github.com/dianping/cat/releases/download/3.1.0/cat-home.war
Dockerfile文件如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
FROM tomcat:8.5.84-jre8 ENV TZ=Asia/Shanghai
COPY cat-home.war /usr/local/tomcat/webapps/cat.war
COPY docker/datasources.xml /data/appdatas/cat/datasources.xml COPY docker/datasources.sh datasources.sh
RUN sed -i "s/port=\"8080\"/port=\"8085\"\ URIEncoding=\"utf-8\"/g" $CATALINA_HOME/conf/server.xml && chmod +x datasources.sh
EXPOSE 8085 2280
RUN mkdir -p /data/appdatas/cat RUN mkdir -p /data/applogs/cat RUN chmod 777 /data/appdatas/cat RUN chmod 777 /data/applogs/cat
CMD ["/bin/sh", "-c", "./datasources.sh && catalina.sh run"]
|
构建镜像
1
| docker build -f Dockerfile -t my-cat:v1 .
|
5 启动容器
1 2 3 4 5 6 7 8 9 10 11 12
| docker run \ -p 8085:8085 \ -p 2280:2280 \ -v /Users/dingrui/MyDev/code/java/cat/docker:/data/appdatas/cat/ \ -e MYSQL_URL=host.docker.internal \ -e MYSQL_PORT=3306 \ -e MYSQL_USERNAME=dingrui \ -e MYSQL_PASSWD=19920308 \ -e MYSQL_SCHEMA=cat \ -d \ --name my-cat \ my-cat:v1
|
5 后台页面
6 修改服务端配置
http://127.0.0.1:8085/cat/s/config?op=serverConfigUpdate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <?xml version="1.0" encoding="utf-8"?> <server-config> <server id="default"> <properties> <property name="local-mode" value="false"/> <property name="job-machine" value="true"/> <property name="send-machine" value="true"/> <property name="alarm-machine" value="true"/> <property name="hdfs-enabled" value="false"/> <property name="remote-servers" value="127.0.0.1:8085"/> </properties> <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="2" local-logivew-storage-time="1" har-mode="true" upload-thread="5"> <hdfs id="dump" max-size="128M" server-uri="hdfs://127.0.0.1/" base-dir="/user/cat/dump"/> <harfs id="dump" max-size="128M" server-uri="har://127.0.0.1/" base-dir="/user/cat/dump"/> <properties> <property name="hadoop.security.authentication" value="false"/> <property name="dfs.namenode.kerberos.principal" value="hadoop/dev80.hadoop@testserver.com"/> <property name="dfs.cat.kerberos.principal" value="cat@testserver.com"/> <property name="dfs.cat.keytab.file" value="/data/appdatas/cat/cat.keytab"/> <property name="java.security.krb5.realm" value="value1"/> <property name="java.security.krb5.kdc" value="value2"/> </properties> </storage> <consumer> <long-config default-url-threshold="1000" default-sql-threshold="100" default-service-threshold="50"> <domain name="cat" url-threshold="500" sql-threshold="500"/> <domain name="OpenPlatformWeb" url-threshold="100" sql-threshold="500"/> </long-config> </consumer> </server> <server id="127.0.0.1"> <properties> <property name="job-machine" value="true"/> <property name="send-machine" value="true"/> <property name="alarm-machine" value="true"/> </properties> </server> </server-config>
|
配置好后重启容器
7 客户端路由配置
http://127.0.0.1:8085/cat/s/config?op=routerConfigUpdate
客户端路配置有两个注意点
- 要接入的cat-client
- 要连接的服务端ip不要写127.0.0.1,要写本机真实的ip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?xml version="1.0" encoding="utf-8"?> <router-config backup-server="10.181.137.245" backup-server-port="2280"> <default-server id="10.181.137.245" 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="10.181.137.245"/> </server-group> <domain id="cat"> <group id="default"> <server id="10.181.137.245" port="2280" weight="1.0"/> </group> </domain> <domain id="msb"> <group id="default"> <server id="10.181.137.245" port="2280" weight="1.0"/> </group> </domain> </router-config>
|
8 应用接入cat-client
8.1 AppName
/resources/META-INF/app.properties
8.2 client.xml
/resources/META-INF/cat/client.xml
1 2 3 4 5 6 7 8 9
| <?xml version="1.0" encoding="utf-8"?> <config mode="client"> <servers> # cat-client要连接的服务端 <server ip="127.0.0.1" port="2280" http-port="8085"/> </servers> # 客户端配置 <domain id="msb" enabled="true" /> </config>
|
8.3 日志看板