• 10-4 Skywalking介绍,二进制与docker部署Skywalking,Skywalking收集Java博客案例,Skywalking面板介绍



    简介

    Skywalking是一个国产的开源框架,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java, .Net, Node.js, go, python等探针,数据存储支持Mysql, Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。

    Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker, K8S, Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。



    Skywalking介绍

    分布式链路追踪

    链路追踪解决的问题:客户端的一次请求到结束的背后究竟调用了哪些应用以及哪些模块并经过了哪些节点,且每个模块的调用先后顺序是怎样的、每个模块的处理相应性能如何?

    Dapper是google公司在2008年就开始内部使用经过生产环境验证的链路追踪系统。随着时代的发展,大型web集群采用分布式架构和微服务环境。应运而生了分布式链路追踪系统,Skywalking是其中的佼佼者,可以在整个分布式系统中跟踪一个用户请求的完整过程。


    APM系统

    APM 系统(Application Performance Monitor,即应用性能监控)它实现了分布式链路追踪。常见的APM系统有CAT, Zipkin, Jaeger, Pinpoint, Skywalking。

    Skywalking拥有诸多特点:信息记录完整,多语言自动探针,内置服务网格可观察性,模块化架构,支持告警,可视化美观。


    Skywalking组件

    Skywalking主要由4大组件构成:探针,主平台,存储,UI。

    在这里插入图片描述

    Skywalking 架构图


    组件 作用
    探针 基于无侵入式的收集,并通过HTTP或者gRPC方式发送数据到OAP Server。
    OAP Observability Analysis Platform 可观测性分析平台,它是一个高度组件化的轻量级分析程序,由兼容各种探针Receiver、流式分析内核和查询内核三部分构成。
    存储实现 Storage Implementors,支持多种存储实现并且提供了标准接口,可支持不同的存储后端,常用Elasticsearch做数据库存储。
    UI模块 通过标准的GraphQL(Facebook在2012年开源)协议进行统计数据查询和展示 。

    Skywalking部署

    根据上述的4大组件,对Skywalking进行部署,相关服务与端口如下:

    服务 端口 作用
    agent N/A 收集应用信息,与oap 11800端口连接
    skywalking-oap 11800, 12800 11800为gRPC数据,连接agent。
    12800为http数据,连接skywalking-ui
    elasticsearch7 9200 数据存储读写端口
    skywalking-ui 8080 前端页面,用于查询

    二进制部署

    安装Elasticsearch

    需要部署elasticsearch 3个节点的集群请参考 6-4 搭建ELK及Kafka日志收集环境 。为简化实验,这里部署单机版。

    wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/7.12.1/elasticsearch-7.12.1-x86_64.rpm
    
    rpm -ivh elasticsearch-7.12.1-x86_64.rpm
    
    • 1
    • 2
    • 3

    修改配置文件,下列选项全部取消注释,IP均为本机地址,根据实际情况修改设置:

    vim /etc/elasticsearch/elasticsearch.yml
    
    17 cluster.name: skywalking-es-cluster
    23 node.name: es7
    33 path.data: /var/lib/elasticsearch
    37 path.logs: /var/log/elasticsearch
    56 network.host: 192.168.100.202
    61 http.port: 9200
    70 discovery.seed_hosts: ["192.168.100.202"]
    74 cluster.initial_master_nodes: ["192.168.100.202"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    启动elasticsearch服务,默认开启端口为9200和9300:

    
                    
  • 相关阅读:
    Java高并发编程卷二(二) 锁
    给文件添加可读可写可执行权限
    通过案例学 python
    《Effective C++》笔记
    如何解决:navicat中Redis(本地主机:6379):连接被拒绝
    github连接失败Host key verification failed.解决方案
    nacos集群搭建
    C++模板编程(14)---名称查询(Looking Up Names)
    Redis源码与设计剖析 -- 12.集合对象
    UED Landing 页 - 定时抓取掘金文章
  • 原文地址:https://blog.csdn.net/m0_60244783/article/details/127705793