Docker下的pinpoint环境搭建

在上一章《

pinpoint-server,材料列表

要搭建pinpoint-server,下面这些材料要准备好:

  1. linux操作系统,推荐centos6.7;

  2. ssh服务,方便后期登录操作;

  3. jdk1.8,例如:jdk1.8.0_144;

  4. hbase,推荐1.2.6;

  5. tomcat,推荐8.0.36,里面的ROOT目录放置了pinpoint-collector包;

  6. tomcat,推荐8.0.36,里面的ROOT目录放置了pinpoint-web包;

  7. hbase初始化脚本;

开始准备pinpoint-server的材料

制作pinpoint-server所需的材料我已经全部上传到git上,欢迎大家下载,地址是:[email protected]:zq2599/pinpoint163-server.git

下面说一下当初是如何准备这些材料的:

关于1、2,有现成的镜像满足我们的要求:kinogmt/centos-ssh:6.7,系统是centos6.7,集成了ssh服务,root账号的密码是password;

关于3,下载好jdk1.8.0_144安装包,制作镜像文件的时候直接本地安装;

关于4,下载好hbase1.2.6安装包,制作镜像文件的时候复制过来即可;

关于5,把tomcat8.0.36的安装包从官网下载下来,解压后,将pinpoint-collector.war解压开,将里面的内容复制到tomcat的webapps/ROOT目录下,另外记得修改tomcat/conf/server.xml中的端口,例如8080改为18080,8009改为18009;

关于6,修改方法和5的一样,解压的是pinpoint-web.war,并且tomcat的端口不要和5的冲突了,我这边是将8080改为28080;

关于7,从pinpoint源码中找到hbase-create.hbase这个文件,制作镜像的时候直接复制过去就行了;

pinpoint-server镜像的Dockerfile

关于镜像文件的Dockerfile,如下所示,关键位置都加了注释,就不多说了:

# Docker image of pinpoint server	
# VERSION 0.0.1	
# Author: bolingcavalry	
#基础镜像使用kinogmt/centos-ssh:6.7,这里面已经装好了ssh,密码是password	
FROM kinogmt/centos-ssh:6.7	
#作者	
MAINTAINER BolingCavalry <[email protected]>	
#定义工作目录	
ENV WORK_PATH /usr/local/work	
#定义jdk1.8的文件夹	
ENV JDK_PACKAGE_FILE jdk1.8.0_144	
#定义jdk1.8的文件名	
ENV JDK_RPM_FILE jdk-8u144-linux-x64.rpm	
#定义hbase文件名	
ENV HBASE_PACKAGE_NAME hbase-1.2.6	
#定义collector文件夹名	
ENV COLLECTOR_PACKAGE_NAME tomcat-collector	
#定义web文件夹名	
ENV WEB_PACKAGE_NAME tomcat-web	
#定义pinpoint的hbase初始化数据脚本名称	
ENV PINPOINT_HBASE_INIT_DATA_NAME hbase-create.hbase	
#yum更新	
#RUN yum -y update	
#把分割过的jdk1.8安装文件复制到工作目录	
COPY ./jdkrpm-* $WORK_PATH/	
#用本地分割过的文件恢复原有的jdk1.8的安装文件	
RUN cat $WORK_PATH/jdkrpm-* > $WORK_PATH/$JDK_RPM_FILE	
#本地安装jdk1.8,如果不加后面的yum clean all,就会报错:Rpmdb checksum is invalid	
RUN yum -y localinstall $WORK_PATH/$JDK_RPM_FILE; yum clean all	
#把hbase文件夹复制到工作目录	
COPY ./$HBASE_PACKAGE_NAME $WORK_PATH/hbase	
#把collector文件夹复制到工作目录	
COPY ./$COLLECTOR_PACKAGE_NAME $WORK_PATH/$COLLECTOR_PACKAGE_NAME	
#把web文件夹复制到工作目录	
COPY ./$WEB_PACKAGE_NAME $WORK_PATH/$WEB_PACKAGE_NAME	
#把pinpoint的初始化数据文件复制到工作目录	
COPY ./$PINPOINT_HBASE_INIT_DATA_NAME $WORK_PATH/	
#删除jdk分割文件	
RUN rm $WORK_PATH/jdkrpm-*	
#删除jdk安装包文件	
RUN rm $WORK_PATH/$JDK_RPM_FILE	
#赋读权限	
RUN chmod a+r $WORK_PATH/hbase/conf/hbase-env.sh	
#赋读权限	
#RUN chmod a+r $WORK_PATH/hbase/conf/hbase-site.xml	
#配置hostname	
RUN echo HOSTNAME=master>>/etc/sysconfig/network	
#定义环境变量	
ENV JAVA_HOME=/usr/java/$JDK_PACKAGE_FILE/	
ENV HBASE_HOME=$WORK_PATH/hbase/	
ENV PATH=$JAVA_HOME/bin:$HBASE_HOME/bin:$PATH	
EXPOSE 60010	
EXPOSE 18080	
EXPOSE 28080

在Dockerfile所在目录下执行以下命令可以构建本地镜像,上述所有材料也要放在这个目录:

docker build -t bolingcavalry/centos67-hbase126-pinpoint163-server:0.0.1

pinpoint-agent,材料列表

  1. linux操作系统,无特殊要求;

  2. tomcat,例如:7.0.77;

  3. jdk1.8;

  4. 修改tomcat-users.xml的配置,添加账号信息,使tomcat支持在线部署应用;

  5. pinpoint-agent包;

  6. tomcat的catalina.sh修改,添加pinpoint相关参数;

开始准备pinpoint-agent的材料

制作pinpoint-agent所需的材料我已经全部上传到git上,欢迎大家下载,地址是:[email protected]:zq2599/pinpoint163-agent.git

下面说一下当初是如何准备这些材料的:

关于1、2,tomcat的官方镜像就满足我们的要求:tomcat:7.0.77-jre8;关于3,下载好jdk1.8.0_144安装包,制作镜像文件的时候直接本地安装;关于4,准备一个修改好的tomcat-user.xml文件,制作镜像的时候用力来覆盖掉原本tomcat/conf目录下的同名文件即可;关于5,将编译好的pinpoint-agent文件夹准备好,制作镜像的时候复制过去即可,注意pinpoint.config文件的内容要修改,profiler.collector.ip对应的值是pinpoint-server对应的link参数的alias;关于6,准备一个修改好的catalina.sh文件,制作镜像的时候用力来覆盖掉原本tomcat/bin目录下的同名文件即可,和原有的catalina.sh相比,增加了以下内容:

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/work/pinpoint-agent-1.6.3/pinpoint-bootstrap-1.6.3-SNAPSHOT.jar"	
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=$PINPOINT_AGENT_ID"	
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=$PINPOINT_APPLICATION_NAME"

pinpoint-agent镜像的Dockerfile

关于镜像文件的Dockerfile,如下所示,关键位置都加了注释,就不多说了:

# docker image for pinpoint agent	
# VERSION 0.0.1	
# Author: bolingcavalry	
#基础镜像	
FROM tomcat:7.0.77-jre8	
#作者	
MAINTAINER BolingCavalry <[email protected]>	
#定义工作目录	
ENV WORK_PATH /usr/local/tomcat/conf	
#定义catalina.sh文件目录	
ENV CATALINA_PATH /usr/local/tomcat/bin	
#定义agent工作目录	
ENV AGENT_WORK_PATH /usr/local/work	
#定义agent文件夹名称	
ENV AGENT_PACKAGE_NAME pinpoint-agent-1.6.3	
#定义要替换的文件名	
ENV USER_CONF_FILE_NAME tomcat-users.xml	
#定义要替换的server.xml文件名	
ENV SERVER_CONF_FILE_NAME server.xml	
#定义要替换的catalina.sh文件名	
ENV CATALINA_FILE_NAME catalina.sh	
#删除原文件tomcat-users.xml	
RUN rm $WORK_PATH/$USER_CONF_FILE_NAME	
#复制文件tomcat-users.xml	
COPY  ./$USER_CONF_FILE_NAME $WORK_PATH/	
#删除原文件server.xml	
RUN rm $WORK_PATH/$SERVER_CONF_FILE_NAME	
#复制文件server.xml	
COPY  ./$SERVER_CONF_FILE_NAME $WORK_PATH/	
#删除原文件catalina.sh	
RUN rm $CATALINA_PATH/$CATALINA_FILE_NAME	
#复制文件catalina.sh	
COPY  ./$CATALINA_FILE_NAME $CATALINA_PATH/	
#创建agent文件所在目录	
RUN mkdir $AGENT_WORK_PATH	
#把collector文件夹复制到工作目录	
COPY ./$AGENT_PACKAGE_NAME $AGENT_WORK_PATH/$AGENT_PACKAGE_NAME

在Dockerfile所在目录下执行以下命令可以构建本地镜像,上述所有材料也要放在这个目录:

docker build -t bolingcavalry/centos67-pinpoint163-agent:0.0.1

以上就是制作pinpoint-sever和pinpoint-agent镜像的过程,用这样的镜像,结合上一章《Docker下,极速体验pinpoint1.6.3》的配置和启动,就能轻松构建一个完整的pinpoint环境;

欢迎关注我的公众号:程序员欣宸

发布了328 篇原创文章 · 获赞 946 · 访问量 117万+

猜你喜欢

转载自blog.csdn.net/boling_cavalry/article/details/101369300