2017年3月16日星期四

OpenShift_066:使用 Hawkular APM 监控容器中的 Java Web 应用(Dockerfile 方式)

环境:OCP 3.4

1. 拷贝 .war 和 hawkluar apm jar 文件到 Master 机器上 (在 MAC 机器上操作)
scp example.war root@master.example.com:/opt/
scp hawkular-apm-agent-opentracing.jar hawkular-apm-agent.jar root@master.example.com:/opt/

2. 编写 Dockerfile在 Master 机器上操作)
cd /opt
mkdir example
cd example
mv /opt/example.war .
mv /opt/hawkular-apm-agent-opentracing.jar .
mv /opt/hawkular-apm-agent.jar .

vim Dockerfile
内容如下:
FROM registry.example.com:5000/jboss-webserver-3/webserver30-tomcat8-openshift:latest
USER root
COPY example.war $JWS_HOME/webapps/ROOT.war
COPY hawkular-apm-agent.jar $HOME
COPY hawkular-apm-agent-opentracing.jar $HOME
#ENV JAVA_OPTS -javaagent:$HOME/hawkular-apm-agent.jar=boot:$HOME/hawkular-apm-agent.jar -Djboss.modules.system.pkgs=org.jboss.byteman,org.hawkular.apm.instrumenter,org.hawkular.apm.client.collector
ENV JAVA_OPTS -javaagent:$HOME/hawkular-apm-agent-opentracing.jar=boot:$HOME/hawkular-apm-agent-opentracing.jar -Djboss.modules.system.pkgs=org.jboss.byteman,org.hawkular.apm.agent.opentracing,io.opentracing,org.hawkular.apm.client.opentracing
ENV HAWKULAR_APM_URI=http://hawkular-apm-hawkular.apps.example.com:80
ENV HAWKULAR_APM_USERNAME=admin
ENV HAWKULAR_APM_PASSWORD=password

注意,这里使用 jboss-webserver-3/webserver30-tomcat8-openshift 作为 Base Image,因此请先确认该基础镜像部署成功。
如需帮助,请参考《使用 binary 方式部署 .war 到 Tomcat 8 》 。

3. 部署 example 应用
cd .. 退到 example 上一级目录
oc login -u admin -p admin

创建应用
oc new-app example --name=example --insecure-registry=true
输出略。

开始 build
oc start-build example --from-dir=example
输出略。

查看日志,确认 build 成功。
oc logs example-1-build
输出略。

5. 创建 route
oc expose svc example


如果有错,执行以下命令清理:
oc delete bc/example is/example dc/example svc/example routes/example is/webserver30-tomcat8-openshift

6. 访问 http://example.apps.example.com/index.jsp


7. 查看 https://hawkular-apm-hawkular.apps.example.com

参考文献:
1.  https://hawkular.gitbooks.io/hawkular-apm-user-guide/content/instrumentation/jvmagent.html

没有评论: