Docker运行skywalking参考命令:
安装oap-server:
docker run --name oap --restart always -d \
-e TZ=Asia/Shanghai \
-p 12800:12800 \
-p 11800:11800 \
--link es7:es7 \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=es7:9200 \
apache/skywalking-oap-server:6.6.0-es7
安装UI
docker run -d --name skywalking-ui \
-e TZ=Asia/Shanghai \
-p 8080:8080 \
--link oap:oap \
-e SW_OAP_ADDRESS=oap:12800 \
apache/skywalking-ui:6.6.0
skywalking-agent部署
简要说明下部署步骤:
解压apache-skywalking-apm-6.6.0.tar.gz,把该文件夹(主要是agent目录文件)放入jdk8,或者有jdk8的linux环境中,并制作成基础镜像
在java -jar xxx.jar启动命令中加入agent
java -javaagent:/apache-skywalking-apm-6.6.0/agent/skywalking-agent.jar -Dskywalking.agent.service_name=xxxtest -Dskywalking.collector.backend_service=xxx.xx.x.x:11800 -Dserver.port=xxxx -jar app.jar
3.登录页面127.0.0.1:8080
因为机制为懒加载,所以当只有你调用该java接口时,页面上才有显示
Rancher中搭建注意要点
镜像准备
修改时区为Asia/ShangHai
因为监控本身需要按照时间点去取数据,时区异常会导致数据空白
- 制作ui镜像
FROM apache/skywalking-ui:7.0.0
# 时区修改为东八区
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk add --no-cache tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& apk del tzdata
docker build -t xxxx/skywalking-ui-cst:7.0.0 .
#xxx修改为自己私有仓库地址
docker push xxxx/skywalking-ui-cst:7.0.0 .
- 制作oap-server镜像
FROM apache/skywalking-oap-server:7.0.0-es7
# 时区修改为东八区
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk add --no-cache tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& apk del tzdata
docker build -t xxxx/skywalking-oap-server-cst:7.0.0-es7 .
#xxx修改为自己私有仓库地址
#cst代表东八区,代表该镜像为修改过时区的镜像
docker push xxxx/skywalking-oap-server-cst:7.0.0-es7 .
rancher ui中部署/k8s-yaml文件部署同理
env-oap-server设置环境变量
SW_STORAGE_ES_CLUSTER_NODES = xxxx:9200 #es地址,多个地址使用,分开
SW_STORAGE = elasticsearch7 #声明存储类型为elasticsearch7
env-oap-ui设置环境变量
SW_OAP_ADDRESS = skywalking-oap:12800 #skywalking-oap为oap-server在部署时填入的名称,12800为http端口
微服务中的部署agent
微服务的Dockerfile内容:
FROM hub.*****.com/base/openjdk8-alpine-cst-oap
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT exec java $JAVA_OPTS -jar /app.jar
注意:
1.openjdk8-alpine-cst-oap的基础镜像中需要将agent探针添加进容器。
2.${JAR_FILE}为MAVEN打包好的jar文件。
3.微服务暴露的端口是8080。
4.ENTRYPOINT执行服务启动命令,$JAVA_OPTS中的参数在k8s文件中可以获取到。
K8s.yaml中注意添加启动参数JAVA_OPTS,设置好探针路径,服务名称和集群中oap的连接地址。
env:
- name: JAVA_OPTS
value: -javaagent:/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=${project_name}
-Dskywalking.collector.backend_service=skywalking-oap.oap:11800