Docker下,pinpoint环境搭建

简介: 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,密码是password
FROM 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 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上,欢迎大家下载,地址是: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.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环境;

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
8月前
|
Linux 测试技术 开发者
【Docker项目实战】使用Docker部署instantbox临时Linux系统环境搭建工具
【6月更文挑战第13天】使用Docker部署instantbox临时Linux系统环境搭建工具
100 3
|
9月前
|
Java Linux 流计算
【极数系列】Flink环境搭建&Docker版本(04)
【极数系列】Flink环境搭建&Docker版本(04)
276 3
|
9月前
|
Ubuntu 开发工具 git
rk3588 镜像构建环境搭建基于docker
构建镜像环境搭建过程
503 1
|
9月前
|
存储 Ubuntu Docker
Docker环境搭建
Docker环境搭建
88 0
|
9月前
|
Ubuntu 网络安全 开发工具
OpenHarmony docker环境搭建
OpenHarmony docker环境搭建
206 0
|
机器学习/深度学习 算法 计算机视觉
3D目标检测框架 MMDetection3D环境搭建 docker篇
本文介绍如何搭建3D目标检测框架,使用docker快速搭建MMDetection3D的开发环境,实现视觉3D目标检测、点云3D目标检测、多模态3D目标检测等等。
804 0
|
存储 分布式计算 Hadoop
基于docker的Hadoop环境搭建与应用实践(脚本部署)
本文介绍了Hadoop环境的搭建与应用实践。对Hadoop的概念和原理进行了简要说明,包括HDFS分布式文件系统和MapReduce计算模型等,主要通过脚本的方式进行快捷部署,在部署完成后对HDFS和mapreduce进行了测试,确保其功能正常。
|
Docker 容器
基于Docker部署GitLab环境搭建
基于Docker部署GitLab环境搭建
445 0
|
Linux 测试技术 Docker
软件测试|使用docker搞定 Python环境搭建
软件测试|使用docker搞定 Python环境搭建
|
存储 Ubuntu Linux
Docker 环境搭建
Docker 环境搭建
202 0