• SkyWalking 分布式追踪系统


    SkyWalking 分布式追踪系统

    随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个调用链的稳定性就会受到影响,所以会深深的感受到银弹这个词是不存在的,每种架构都有其优缺点 。

     

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

    目前主要的一些 APM 工具有: CatZipkinPinpointSkyWalking,这里主要介绍 SkyWalking ,它是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。

    下面是 SkyWalking 6.x 的架构图:

    说明: SkyWalking 的核心是数据分析和度量结果的存储平台,通过 HTTP gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 ElasticsearchH2MySQLTiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。Skywalking 支持从多个来源和多种格式收集数据:多种语言的 Skywalking Agent Zipkin v1/v2 Istio 勘测、Envoy 度量等数据格式。

    整体架构看似模块有点多,但在实际上还是比较清晰的,主要就是通过收集各种格式的数据进行存储,然后展示。所以搭建 Skywalking 服务我们需要关注的是 SkyWalking CollecterSkyWalking UI 和 存储设备,SkyWalking CollecterSkyWalking UI 官方下载安装包内已包含,最终我们只需考虑存储设备即可。

    环境要求

     JDK8+

     Elasticsearch 7.x 集群

     8080,10800,11800,12800 端口不被占用

    Elasticsearch下载安装 参考官方教程, 下载解压后对config/elasticsearch.yml 做如下修改:

    vim config/elasticsearch.yml

    cluster.name: es-cluster

    #node.name: node-1 其他两节点

    #node.name: node-2

    node.name: node-1

    path.data: /home/es/data

    path.logs: /home/es/logs

    network.host: 192.168.177.202    //本机IP

    http.port: 9200

    transport.tcp.port: 9300

    http.cors.enabled: true

    http.cors.allow-origin: "*"

    discovery.zen.ping.unicast.hosts: ["192.168.177.200", "192.168.177.201", "192.168.177.202"]

    cluster.initial_master_nodes: ["192.168.177.200:9300", "192.168.177.201:9300", "192.168.177.202:9300"]

    bin/elasticsearch 前台启动,后台启动 -d

    复制解压修改后的整个目录结构到其他节点,然后启动即可

    查看集群状态:

    http://192.168.177.201:9200/_cluster/health/

    下载 SkyWalking

    需要Java环境

    SkyWalking 个人建议直接下载官方编译好(tar.az)的,下载地址

    config/application.yml 的默认数据存储开启是的 h2(可以先默认H2),稍后需要修改数据存储为 Elasticsearch -7在启动 SkyWalking 之前,确保 Elasticsearch 已启动

    主要是这两点,其他打开注释部分即可。

    nameSpace: ${SW_NAMESPACE:"elastic"}

    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:172.16.45.6:9200,172.16.45.7:9200,172.16.45.8:9200}

     

     启动SkyWalking

    bin/startup.sh

    默认端口为8080

    这是来自官网的图示

    Java 项目接入

    参考 部署 skywalking javaagentskywalking-agent.jar 位于下载包的 agent 目录下

    修改config/agent.config 对应的skywalking-server IP

    # Backend service addresses.

    collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:172.16.45.10:11800}

    java -jar xxx.jar 命令添加 相关启动参数即可,启动后可查看logs 相关信息

    查看skywalking-server 的图示

     

    这是公司的实际项目链路

    当你的才化撑不起野心时,还是安静下来学习吧!
  • 相关阅读:
    作业练习
    作业练习
    作业
    作业
    作业
    作业
    作业
    作业
    作业
    作业
  • 原文地址:https://www.cnblogs.com/carl007/p/12981497.html
Copyright © 2020-2023  润新知