Rancher2.x上部署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/
公共redis工具类提取
踮脚被吹跑阅读 1.2k
Grafana部署方案
iM唐小龙阅读 786
揭秘网页性能监控|如何从多个角度分析监控结果
云智慧技术社区阅读 705
【云原生 • 监控】国产监控之光-夜莺监控(Nightingale)
Reactor2020赞 1阅读 559
一种通用的业务监控触发方案设计 | 京东云技术团队
京东云开发者赞 1阅读 216
深入浅出玩转监控宝|网站监控之管理网站监控任务
云智慧技术社区阅读 323
提升用户体验与搜索引擎排名|网页性能监控实操详解
云智慧技术社区阅读 266
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。