乐趣区

关于监控工具:Rancher2x上部署SkyWalking追踪系统

什么是 SkyWalking?

分布式系统的应用程序性能监督工具,特地是为微服务,云原生和基于容器(Docker,Kubernetes,Mesos)的体系结构而设计。

SkyWalking 是一个可察看性剖析平台和应用程序性能管理系统。
跟踪,指标和日志记录多合一解决方案。
反对 Java,.Net Core,PHP,NodeJS,Golang,LUA,C ++ 代理
反对 Istio + Envoy Service Mesh

上述源自 SkyWalking 官网

链路追踪工具简介比照

1、Zipkin:是 Twitter 开源的调用链分析工具,目前基于 springcloud sleuth 失去了宽泛的应用,特点是轻量,应用部署简略。

2、Jaeger 是 CNCF 云原生我的项目之一,Jaeger 受 Dapper 和 OpenZipkin 的启发,由 Uber 开源的分布式追踪零碎,兼容 Open Tracing API。

3、Pinpoint:是韩国人开源的基于字节码注入的调用链分析,以及利用监控剖析工具。特点是反对多种插件,UI 功能强大,接入端无代码侵入。

4、SkyWalking:是外乡开源的基于字节码注入的调用链分析,以及利用监控剖析工具。特点是反对多种插件,UI 性能较强,接入端无代码侵入。目前已退出 Apache 孵化器。

工具指标比照:

指标 / 组件 Zipkin Jaeger Skywalking Pinpoint
OpenTracing 兼容 反对 反对 反对 不反对
客户端反对语言 Java、C#、Go、PHP 等 Java、C#、Go、PHP 等 Java, .NET Core, NodeJS and PHP Java、PHP
传输协定 Http/MQ UDP/Http gRPC Thrift
Web UI 个别 个别
扩展性 个别
性能损失 个别 个别
实现形式 拦挡申请,侵入 拦挡申请,侵入 字节码注入,无侵入 字节码注入,无侵入
告警 不反对 不反对 反对 反对

小结:Zipkin 与 Jaeger 相差不多且都有代码侵入,性能损耗方面 Skywalking 绝对 Pinpoint 较低,Pinpoint 在 Web UI 上较其余三种较丰盛些

skywalking 部署(本文应用 Rancher2.X)

skywalking-oap-server

存储;elasticsearch 6.x

镜像:apache/skywalking-oap-server:7.0.0-es6

skywalking-ui

镜像:apache/skywalking-ui:8.1.0

不便拜访加个 Ingress 配置个域名如:http://skywalking-ui.com/

skywalking-agent

自建,参考 https://hub.docker.com/r/prop…。

编写一个 Dockerfile:


FROM alpine:3.8
 
LABEL maintainer="123456789@qq.com"
 
ENV SKYWALKING_VERSION=7.0.0
 
ADD http://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/${SKYWALKING_VERSION}/apache-skywalking-apm-${SKYWALKING_VERSION}.tar.gz /
 
RUN tar -zxvf /apache-skywalking-apm-${SKYWALKING_VERSION}.tar.gz && \
    mv apache-skywalking-apm-bin skywalking && \
    mv /skywalking/agent/optional-plugins/apm-trace-ignore-plugin* /skywalking/agent/plugins/ && \
    echo -e "\n# Ignore Path" >> /skywalking/agent/config/agent.config && \
    echo "# see https://github.com/apache/skywalking/blob/v7.0.0/docs/en/setup/service-agent/java-agent/agent-optional-plugins/trace-ignore-plugin.md" >> /skywalking/agent/config/agent.config && \
    echo 'trace.ignore_path=${SW_IGNORE_PATH:/health}' >> /skywalking/agent/config/agent.config

docker build 到镜像仓库,待 docker build 结束后,push 到仓库就能够了

现成的镜像:ccr.ccs.tencentyun.com/haiyang/skywalking-agent:7.0.0

Springboot 我的项目退出探针

Dockerfile 文件 ENTRYPOINT 减少代理 ” 如下:

-javaagent:/opt/skywalking/agent/skywalking-agent.jar","-Dskywalking.collector.backend_service=skywalking-oap-server:11800"

残缺参考:

ENTRYPOINT ["java","-javaagent:/opt/skywalking/agent/skywalking-agent.jar","-Dskywalking.collector.backend_service=skywalking-oap-server:11800","-Djava.security.egd=file:/dev/./urandom","-jar","/opt/app.jar"]

启动我的项目拜访接口,关上 skywalking-ui 拜访地址:http://skywalking-ui.com/

退出移动版