专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】(下)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】(下)

正文


五. 使用Docker安装部署SkyWalking


5.1 查看官网版本


官网:http://skywalking.apache.org/

下载:http://skywalking.apache.org/downloads/

Github:https://github.com/apache/skywalking/

文档: https://skywalking.apache.org/docs/main/v8.4.0/readme/

中文文档: https://skyapm.github.io/document-cn-translation-of-skywalking/


552.png


从官网可以看出 最新版本已经9.0版本了,但是我们使用es作为存储最好是使用明确存储了方式的版本 8.7.0


5.1 拉取镜像


5.1.1 尝鲜版


docker pull elasticsearch:7.12.0 
默认es存储数据镜像 
docker pull apache/skywalking-oap-server:8.7.0-es7 
webUI界面镜像 
docker pull apache/skywalking-ui:8.7.0 
制作微服项目镜像 
docker pull openjdk:8-alpine3.9


5.1.2 稳定版


docker pull elasticsearch:7.9.0 
默认es存储数据镜像 
docker pull apache/skywalking-oap-server:8.1.0-es7 
webUI界面镜像 
docker pull apache/skywalking-ui:8.1.0 
制作微服项目镜像 
docker pull openjdk:8-alpine3.9


5.1.3 备份镜像


最新版:
docker save apache/skywalking-oap-server:8.7.0-es7 apache/skywalking-ui:8.7.0 elasticsearch:7.12.0 -o skywalking8.7.0.tar 
稳定版:
docker save apache/skywalking-oap-server:8.1.0-es7 apache/skywalking-ui:8.1.0 elasticsearch:7.9.1 -o skywalking8.1.0.tar


5.2 docker-compose 启动SkyWalking


5.2.1 docker-compose的安装


下载v2.2.2版本的docker-compose

curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composeln -s /usr/local/bin/docker-compose /usr/bin/docker-composedocker-compose --version

添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

测试安装是否成功

664.png


5.2.2 编写SkyWalking的docker-compose文件


这里使用最新版本的Skywalking镜像

version: '3'
services:
   es7:
    image: elasticsearch:7.12.1
    container_name: es7
    environment:
      - "cluster.name=elasticsearch" #设置集群名称为elasticsearch
      - "discovery.type=single-node" #以单一节点模式启动
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小
    volumes:
      - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
      - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
    ports:
      - 9200:9200
      - 9300:9300
   oap:
    image: apache/skywalking-oap-server:8.7.0-es7
    container_name: oap
    depends_on: 
      - es7
    links:
      - es7
    ports:
      - "11800:11800"
      - "12800:12800"
    healthcheck:
      test: [ "CMD-SHELL", "/skywalking/bin/swctl ch" ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    environment:
      SW_STORAGE: elasticsearch7
      SW_STORAGE_ES_CLUSTER_NODES: es7:9200
      SW_HEALTH_CHECKER: default
      TZ: Asia/Shanghai
      SW_TELEMETRY: prometheus
      JAVA_OPTS: "-Xms2048m -Xmx2048m"
   ui:
    image: apache/skywalking-ui:8.7.0
    container_name: ui
    depends_on: 
      - oap
    links:
      - oap
    ports:
      - "8088:8080"  #为了防止8080端口冲突 这里用8088端口映射
    environment:
      SW_OAP_ADDRESS: http://oap:12800
      TZ: Asia/Shanghai

启动服务

docker-compose up -d


查看启动

docker-compose ps

665.png


5.2.3 测试SkyWalking的UI界面


在浏览器输入 服务器地址:8088

例如:http://192.168.198.120:8088

666.png


六 总结


skywalking就介绍到这里,本章节仅仅只是入门,简单使用skywalking,实际上里面还有很多功能没有介绍,有兴趣的同学可以按照上面的教程安装部署,然后自己探索一下。在现在微服务架构比较流行的环境下,如果没有一个调用链追踪框架,会导致很难排查线上服务调用的问题。skywalking是目前发展势头最快的技术框架的技术框架,因为对代码是无侵入性的,所以目前很多公司都采用skywalking。


以上是根据《官方文档》、观看《图灵架构师课堂》时做的笔记、自己私下练习并成功应用到公司测试环境中。


667.png667.png

667.png

相关实践学习
分布式链路追踪Skywalking
Skywalking是一个基于分布式跟踪的应用程序性能监控系统,用于从服务和云原生等基础设施中收集、分析、聚合以及可视化数据,提供了一种简便的方式来清晰地观测分布式系统,具有分布式追踪、性能指标分析、应用和服务依赖分析等功能。 分布式追踪系统发展很快,种类繁多,给我们带来很大的方便。但在数据采集过程中,有时需要侵入用户代码,并且不同系统的 API 并不兼容,这就导致了如果希望切换追踪系统,往往会带来较大改动。OpenTracing为了解决不同的分布式追踪系统 API 不兼容的问题,诞生了 OpenTracing 规范。OpenTracing 是一个轻量级的标准化层,它位于应用程序/类库和追踪或日志分析程序之间。Skywalking基于OpenTracing规范开发,具有性能好,支持多语言探针,无侵入性等优势,可以帮助我们准确快速的定位到线上故障和性能瓶颈。 在本套课程中,我们将全面的讲解Skywalking相关的知识。从APM系统、分布式调用链等基础概念的学习加深对Skywalking的理解,从0开始搭建一套完整的Skywalking环境,学会对各类应用进行监控,学习Skywalking常用插件。Skywalking原理章节中,将会对Skywalking使用的agent探针技术进行深度剖析,除此之外还会对OpenTracing规范作整体上的介绍。通过对本套课程的学习,不止能学会如何使用Skywalking,还将对其底层原理和分布式架构有更深的理解。本课程由黑马程序员提供。
相关文章
|
20小时前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第18天】 随着现代软件开发的复杂性日益增长,传统的单体应用架构已难以满足快速迭代和灵活部署的需求。本文聚焦于一种新兴的解决方案——微服务架构,探讨其如何为后端开发带来革命性的改变。我们将深入分析微服务的核心概念、优势与挑战,并通过具体案例来阐述如何在实际项目中实施微服务架构。文章旨在为开发者提供一种系统化的方法,帮助他们理解并应用微服务架构,以提升系统的可维护性、扩展性和技术敏捷性。
8 2
|
20小时前
|
测试技术 持续交付 API
构建高效的微服务架构:后端开发的现代实践
【5月更文挑战第18天】在数字化转型的浪潮中,微服务架构已成为企业追求敏捷、可扩展和容错能力的关键解决方案。本文将深入探讨微服务的核心概念,包括其设计原则、技术栈选择以及实施过程中的挑战与对策。通过对微服务架构实践的详细剖析,旨在为后端开发人员提供一套构建和维护高效微服务系统的实用指南。
|
20小时前
|
缓存 算法 Apache
微服务架构下的服务发现与注册机制
【5月更文挑战第18天】 随着现代软件系统向着分布式和微服务架构演进,服务发现与注册成为确保系统弹性和可伸缩性的关键因素。本文将探讨在微服务环境下实现服务发现与注册的模式,分析其必要性,并深入讨论常见的解决方案以及面临的挑战。文中不仅介绍了服务发现的基本原理和流程,还对流行的服务发现工具如Consul、Etcd和Zookeeper进行了比较,最后提出了一套优化策略以增强系统的鲁棒性和性能。
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第17天】 随着企业加速其数字化转型的步伐,云原生架构已经成为推动创新和实现敏捷运营的重要技术基石。本文将深入探讨云原生技术如何通过提供灵活、可扩展的解决方案,帮助企业快速响应市场变化,同时确保系统的稳定性和安全性。我们将分析微服务、容器化、持续集成/持续部署(CI/CD)以及DevOps文化等关键技术的实践应用,并讨论它们如何共同促进企业的技术生态系统进化。
|
1天前
|
Kubernetes API 数据库
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第17天】 随着云计算的普及和容器化技术的成熟,微服务架构已成为企业软件开发的首选模式。该架构通过将大型应用程序拆分为一系列小型、自治的服务来提供灵活性和可扩展性。本文将探讨微服务架构的关键概念,包括服务的细粒度划分、独立部署、以及如何通过容器编排实现高可用性。同时,我们将讨论微服务实施的最佳实践和面临的挑战,为后端开发者提供构建和维护微服务系统的实用指南。
|
1天前
|
消息中间件 安全 数据库
构建高性能微服务架构的实践指南
【5月更文挑战第17天】 随着现代软件开发的复杂性增加,微服务架构已成为众多企业和开发团队的首选模式。本文旨在探讨如何构建一个高性能的微服务系统,涵盖从设计原则、技术选型到性能优化的关键步骤。我们将通过实际案例和最佳实践,展示如何在保证系统可扩展性、灵活性的同时,确保系统的响应速度和稳定性。
|
1天前
|
Kubernetes 持续交付 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
【5月更文挑战第17天】在当今云计算和微服务架构的大潮中,Docker容器化技术和Kubernetes容器编排系统成为了后端开发领域的热门技术栈。本文将探讨如何通过Docker和Kubernetes的结合使用来构建一个高效、可扩展且易于管理的微服务环境。我们将从基础概念出发,深入到实际操作层面,最后讨论这种组合对持续集成和持续部署(CI/CD)流程的影响,旨在为开发者和企业提供一种可靠的后端服务解决方案。
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第17天】 随着企业不断探索在高度竞争的市场中保持敏捷和创新的方法,云原生技术已逐渐成为支持快速迭代、可扩展性和操作效率的关键因素。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps文化,并分析这些技术如何共同促进企业的数字化演变。通过采用云原生实践,组织能够更有效地管理复杂性,优化资源使用,并加速产品和服务的上市时间。
|
1天前
|
XML 负载均衡 数据库
构建高性能微服务架构:挑战与策略
【5月更文挑战第17天】 在当今的软件开发领域,微服务架构已成为实现系统模块化和解耦的重要手段。它允许开发团队独立地开发、部署和扩展应用的各个部分,从而提高了整体系统的灵活性和可维护性。然而,随着服务的增多和分布式环境的复杂性提升,确保这些微服务高效运作面临着不少挑战。本文将探讨在构建高性能微服务架构时常见的问题,并提出一系列解决策略,以帮助开发者优化其系统性能和稳定性。
|
1天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构的演变与实践
【5月更文挑战第17天】 在数字化转型的浪潮中,企业正迅速采用云原生技术来构建和部署应用程序。本文将深入探讨云原生架构的核心概念、发展历程以及如何在现代IT环境中实现敏捷、可扩展和高效的服务。通过对容器化、微服务、持续集成和持续部署(CI/CD)等关键技术的分析,我们将揭示如何利用云原生方法论来优化资源利用、加快产品上市速度,并提高系统的可靠性。
11 3