写点什么

Docker 下,pinpoint 环境搭建

作者:程序员欣宸
  • 2022 年 4 月 28 日
  • 本文字数:3176 字

    阅读完需:约 10 分钟

Docker下,pinpoint环境搭建

欢迎访问我的 GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos


本篇概览

  • 在上一章《Docker下,极速体验pinpoint1.6.3》中,我们快速体验了 pinpoint 的监控和调用链跟踪的服务,本章我们一起来了解 pinpoint 环境的搭建过程,实战制作 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 上,欢迎大家下载,地址是:git@github.com: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,密码是passwordFROM kinogmt/centos-ssh:6.7
#作者MAINTAINER BolingCavalry <zq2599@gmail.com>
#定义工作目录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 invalidRUN 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
#配置hostnameRUN 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 60010EXPOSE 18080EXPOSE 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 上,欢迎大家下载,地址是:git@github.com: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 <zq2599@gmail.com>
#定义工作目录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.xmlRUN rm $WORK_PATH/$USER_CONF_FILE_NAME
#复制文件tomcat-users.xmlCOPY ./$USER_CONF_FILE_NAME $WORK_PATH/
#删除原文件server.xmlRUN rm $WORK_PATH/$SERVER_CONF_FILE_NAME
#复制文件server.xmlCOPY ./$SERVER_CONF_FILE_NAME $WORK_PATH/
#删除原文件catalina.shRUN rm $CATALINA_PATH/$CATALINA_FILE_NAME
#复制文件catalina.shCOPY ./$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 环境;

欢迎关注 InfoQ:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

发布于: 2022 年 04 月 28 日阅读数: 27
用户头像

搜索"程序员欣宸",一起畅游Java宇宙 2018.04.19 加入

前腾讯、前阿里员工,从事Java后台工作,对Docker和Kubernetes充满热爱,所有文章均为作者原创,个人Github:https://github.com/zq2599/blog_demos

评论 (1 条评论)

发布
用户头像
skywalking 不香吗?
31 分钟前
回复
没有更多了
Docker下,pinpoint环境搭建_Java_程序员欣宸_InfoQ写作社区