docker 安装cat
1.下载cat
cat 地址:https://github.com/dianping/cat
进入opt 创建cat文件夹
cd /opt/
mkdir cat
cd cat
下载cat
git clone https://github.com/dianping/cat.git
2.安装
2.1.安装docker-compose
wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64
rename docker-compose-Linux-x86_64 docker-compose docker-compose-Linux-x86_64
chmod +x /usr/local/bin/docker-compose
再通过docker-compose version命令进行查看
2.2 Docker快速部署
说明
- 支持本机模式快速部署。
- docker/Dockerfile包含CAT依赖的环境,可以作为源码部署的参考。
- 默认的运行方式是集成了一个mysql镜像,可以修改为自己的mysql的详细配置。默认运行的mysql服务,将mysql数据挂载到了
docker/mysql/volume
中。
容器构建
cd docker
修改Dockerfile,由于tomcat和maven下载地址变了,需要修改版本号和下载地址
vi Dockerfile 替换原来的内容为下面内容
ENV TOMCAT_MAJOR_VERSION 7
ENV TOMCAT_MINOR_VERSION 7.0.94
RUN wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz && \
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 6.1
RUN wget http://mirror.bit.edu.cn/apache/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
同步docker时区
vi docker-compose.yml
cat 和cat_mysql volumes 节点下添加
- "/etc/localtime:/etc/localtime"
修改client.xml
vi client.xml
<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
<servers>
<server ip="192.168.1.206" port="2280" http-port="8080"/>
</servers>
</config>
ip为宿主机ip
执行 docker-compose up
第一次运行以后,数据库中没有表结构,需要通过下面的命令创建表:
docker exec cat-mysql bash -c "mysql -uroot -Dcat < /init.sql"
说明:<container_id>需要替换为容器的真实id。通过 docker ps 可以查看到mysql容器id
依赖配置说明
- datasources.xml
- CAT数据库配置,默认配置是mysql镜像,可以按需替换
- docker-compose.yml
- 通过docker-compose启动的编排文件,文件中包含cat和mysql。可以屏蔽掉mysql的部分,并且修改cat的环境变量,改为真实的mysql连接信息。
- client.xml
- CAT 初始化默认的路由列表,配置此文件可以将客户端数据上报指向到不同环境。
- datasources.sh
- 辅助脚本,脚本作用时修改
datasources.xml
,使用环境变量中制定的mysql连接信息。(通过sed命令替换)
- 辅助脚本,脚本作用时修改
3.设置开机启动
docker update --restart=always cat
docker update --restart=always cat-mysql
4.开启端口
firewall-cmd --zone=public --permanent --add-port=2280/tcp
firewall-cmd --zone=public --permanent --add-port=8080/tcp
5.访问
6.配置cat
config 默认用户名:admin 密码:adin
配置服务器
配置路由
7.问题及解决
1、问题总揽
在部署cat的过程中遇到若干个坑,在此记录一下。参考github上的部署说明。在部署完成后,打开cat页面,有问题的cat服务器会显示“**有问题的cat服务器[ip:127.0.0.1]”**等若干式样。下图所示为正常的cat监控。
不正常的cat服务器会在上图划横线的地方显示“有问题的cat服务器ip[]”等关键滋字样。
2、问题原因
出现这个字样的原因是client.xml,server.xml以及开启服务后,客户端路由,服务端配置的ip地址有误所导致的。(注:在github上的配置说明中没有提到server.xml的配置。有若干坑。)
3、解决方法
配置单机版cat时,以上提到的ip地址全部换成服务端内网ip地址即可。
A、打开终端,找出内网IP地址。
使用ifconfig命令查看本机内网地址。如下所示。
找到en0下的inet部分的ip地址即为服务端的内网地址。
B、修改CLIENT.XML等文件中IP地址。
client.xml文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
<servers>
<server ip="192.168.43.238" port="2280" http-port="8080"/>
</servers>
</config>
其中中的ip地址为对应的内网地址。
server.xml文件。
<?xml version="1.0" encoding="utf-8"?>
<!-- Configuration for development environment-->
<config local-mode="false" hdfs-machine="false" job-machine="true" alert-machine="true">
<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">
<!--将172.16.90.114修改为部署CAT的内网IP,请不要写127.0.0.1和外网IP -->
<remote-servers>192.168.43.238:8080</remote-servers>
</console>
</config>
修改完上述两个文件后,启动tomcat服务器。
这时还是会显示有问题的cat服务器。
C、修改客户端路由配置
如下图所示。
修改完成后,点击提交和重算路由
D、修改服务端配置
在图中3出,修改为内网ip。修改完后,点击提交。
最后就得到了正常的cat服务器。摘自:http://www.freesion.com/article/589046467/
docker 安装cat的更多相关文章
- docker 安装
Docker使用了一种叫AUFS的文件系统,这种文件系统可以让你一层一层地叠加修改你的文件,最底下的文件系统是只读的,如果需要修改文件,AUFS会增加一个可写的层(Layer),这样有很多好处,例如不 ...
- Docker安装及基本使用方法
Docker安装 CentOS6上安装Docker # yum -y install epel-release # yum -y install docker-io CentOS7上安装Docker ...
- Docker安装目录
操作系统为 # cat /etc/redhat-release CentOS Linux release (Core) docker安装 # yum install -y docker docker安 ...
- docker安装hadoop集群
docker安装hadoop集群?图啥呢?不图啥,就是图好玩.本篇博客主要是来教大家如何搭建一个docker的hadoop集群.不要问 为什么我要做这么无聊的事情,答案你也许知道,因为没有女票.... ...
- Docker安装和卸载
一:卸载旧版本 老版本的Docker被称为docker或docker-engine.如果安装了这些,请卸载它们以及相关的依赖项. $ sudo yum remove docker \ docker-c ...
- Docker安装入门 -- 中间件镜像
Docker安装入门 -- 中间件镜像 php-fpm 1.docker build -t csphere/php-fpm:5.4 . //在当前目录下创建镜像 2.docker run -d - ...
- Docker安装Nginx1.11.10+php7+MySQL
Docker安装php-fpm 1.编辑Dockerfile FROM php:7.1.3-fpm ADD sources.list /etc/apt/sources.list RUN cp /usr ...
- 使用Docker安装Jenkins
Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 环境准备 腾讯云 硬件配置: ...
- Docker安装步骤
在学习springcloud的消息总线时,需要安装rabbitmq,因为rabbitmq是用erlang开发的,所以安装rabbitmq又需要先安装erlang,总之安装过程中遇到各种坑,然而最终还是 ...
随机推荐
- DNS域名系统,简述工作原理
DNS工作原理: 当DNS客户端需要在程序中使用名称时,它会查询DNS服务器来解析该名称.客户端发送的每条查询信息包括三条信息:指定的DNS域名,指定的查询类型,DNS域名的指定类别.基于UDP服务, ...
- 解释ARP协议和RARP协议
解释ARP(地址解析协议) 首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系. 当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主 ...
- 六、实现一个小功能 todolist
1.创建一个新的Compnent 如果是通过 cli 创建的会自动加入,如果是手动创建的,需要自己加入. 2.实现添加效果 3.实现删除按钮 4.优化,把点击 添加 改为 回车 添加 5.优化,分成“ ...
- wait与sleep区别?
wait与sleep区别? 对于sleep()方法,该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线 ...
- 【加密】RSA验签及加密
通过OpenSSL生成公私钥文件(如果没有OpenSSL工具建议下载Cmder工具自带OpenSSL指令) 1.生成RSA密钥的方法 genrsa -out private-rsa.key 2048 ...
- 【Java】定义Logger为什么要用static和final?
private static final Logger logger= LoggerFactory.getLogger(ShiroConfig.class); (1)出于资源利用的考虑,Logger的 ...
- delphi 加入超链接
delphi 加入超链接//在uses中加入ShellAPI//通过该lpFile参数可以实现链接到主页或ftp站点 ShellExecute(handle,nil,pchar('http://www ...
- 51nod 1518 稳定多米诺覆盖(容斥+二项式反演+状压dp)
[传送门[(http://www.51nod.com/Challenge/Problem.html#!#problemId=1518) 解题思路 直接算不好算,考虑容斥,但并不能把行和列一起加进去容斥 ...
- (转)JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
转:https://my.oschina.net/feichexia/blog/196575?p=3 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不 ...
- PHP缓存技术OB系统函数(总结)
PHP缓存技术OB系统函数(总结) 一.总结 一句话总结: ob相比于php普通的文件操作多了缓存机制,所以适合做php的页面静态缓存 1.为什么php使用ob做静态文件缓存? 解决header()报 ...