基于 SkyWalking 的分布式跟踪系统 - 环境搭建

本贴最后更新于 1853 天前,其中的信息可能已经时移俗易

前面的几篇文章我们聊了基于 Metrics 的监控 Prometheus,利用 Prometheus 和 Grafana 可以全方位监控你的服务器及应用的性能指标,在出现异常时利用 Alertmanager 告警及时通知运维处理。今天我们聊聊基于 Trace 的分布式跟踪系统 - SkyWalking

初识 SkyWalking

应用场景

随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个调用链的稳定性就会受到影响,如果没有及时处理很有可能会造成整个系统崩溃。
image.png

面对以上情况,我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。

架构

image.png

SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面。

  • 探针
    主要负责从客户端收集数据,将数据转换成 SkyWalking 适用的格式,探针对客户端程序没有任何代码侵入,使用起来简单方便,使用如下命令即可完成对应用的监控
    java -javaagent:/path/skywalking-agent.jar -jar youApp.jar

  • 平台后端(OAP Server)
    主要用于数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。通过 gRPC/Http 收集客户端 Agent 的采集信息 ,Http 默认端口 12800,gRPC 默认端口 11800。

  • 存储
    SkyWalking 支持很多存储:H2(用作演示环境)、MySQL(当数据量大时检索性能下降很厉害)、ES(主流生产级别的存储)

  • 用户界面
    炫酷的界面,调用请求监控一目了然。

安装配置

安装

直接从官网下载最新的安装包,并上传到服务器解压。解压后的文件如下:
image.png

(需要提前准备好 JAVA(1.8)和 ES(6.x)的环境。)

关注一下几个重要的目录:

  • agent:代理模块(探针)
  • bin:启动脚本(包括 UI 和 OAP SERVER)
  • config:后端相关配置
  • webapp:UI 界面

配置

  • 存储相关配置
    打开 application.yml,修改 storage 相关配置。关闭 H2,打开 ES,然后启动 ./bin/startup.sh
storage:
  elasticsearch:
    nameSpace: ${SW_NAMESPACE:"elk-online"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.136.129:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
  • agent 配置
    agent 文件夹从服务器上拷贝出来,放在客户端服务器。打开 agent\config\agent.config 作如下修改

    • agent.service_name 修改成你应用名称:blog
    • collector.backend_service 修改成 OAP Server 地址:192.168.136.129:11800
  • IDEA 配置(可选)
    image.png

配置完成后启动你的客户端应用。

效果

image.png
image.png
image.png

环境搭建好了,下一步就是全面监控你的应用了,咱们下期有缘再见。

  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    149 引用 • 257 回帖
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • SkyWalking
    17 引用 • 10 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...