简述

这里引用skywalking官方网站上简介:分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

环境准备

skywalking有多种安装方式,这里我通过docker-compose进行安装,因为skywalking官方提供了自己的docker镜像,通过docker-compose进行安装省时又省力。skywalking官方地址:http://skywalking.apache.org/zh/

1、下载sky安装包,这里我使用的是skywalking6.4.0版本

https://www.apache.org/dyn/closer.cgi/skywalking/6.4.0/apache-skywalking-apm-6.4.0.tar.gz

2、解压安装包,解压后安装包中提供了skywalking的所有版本

进入到6.4这个目录后,你会发现有多个目录,包含“base”基础镜像目录、“compose”docker-compose安装目录、oap和ui分别为skywalking的后台服务安装镜像和前端服务安装镜像,这里我选用通过compose来进行skywalking的容器化部署。

3、通过docker-compose.yml进行容器化部署

进入compose目录,打开docker-compose.yml文件

docker-compose.yml中的内容如下所示, 文件中部署了elasticsearch、oap、ui三个容器化服务,elasticsearch作为oap的数据源头(当然skywalking也提供其他类型的数据源如:h2、mysql),oap为后台服务主要提供收据收集日志搜索等服务具体详见官网,ui为前端服务包含UI界面,如果不需要其他特殊配置可以直接该compose文件进行容器化部署,比如有自己的elasticsearch服务就可以从该文件中将elasticsearch容器相关的内容去掉。

version: '3.3'

services:

  elasticsearch:

    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.1

    container_name: elasticsearch

    restart: always

    ports:

      - 9200:9200

      - 9300:9300

    environment:

      - discovery.type=single-node

      - bootstrap.memory_lock=true

      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"

    ulimits:

      memlock:

        soft: -1

        hard: -1

  oap:

    image: apache/skywalking-oap-server:6.4.0

    container_name: oap

    depends_on:

      - elasticsearch

    links:

      - elasticsearch

    restart: always

    ports:

      - 11800:11800

      - 12800:12800

    environment:

      SW_STORAGE: elasticsearch

      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200

  ui:

    image: apache/skywalking-ui:6.4.0

    container_name: ui

    depends_on:

      - oap

    links:

      - oap

    restart: always

    ports:

      - 8080:8080

    environment:

      SW_OAP_ADDRESS: oap:12800

 

 4、部署容器的相关命令,前提是本地已经安装好了docker相关的环境

在compose目录下执行以下命令

 docker-compose -f docker-compose.yml up -d

下图说明docker已经开始部署,因为我本地并非第一次部署所以如下图所示显示的过程比较简单,如果是第一次部署会进行docker镜像的下载时间会长些 

 执行“docker ps”命令,查看docker 是否部署成功(我这里使用我本地自己安装的elasticsearch,所以我没有进行elasticearch的容器部署)

 在本地浏览器中访问:localhost:8080,打开skywalking的管理界面

5、这里我为了修改方便将oap的配置文件挂载到了宿主机的相关目录下

该步骤需要在docker-compose.yml文件中做如下修改

volumes:  

    - /home/skywalking/config:/skywalking/config 

skywalking的相关配置文件如下,其中application.yml可配置数据源、skywalking的系统参数等(具体请参考官方文档说明),alarm-setting.yml可以配置一些告警规则:

 6、将服务的相关数据接入到skywalking中,因为我们的服务都是通过java语言开发的spring boot微服务,所有需要将skywalking提供的agent包整个拷贝到项目目录下

进入agent目录进行相关配置,具体如:找到agent/config/目录下的agent.config

# The agent namespace

# agent.namespace=${SW_AGENT_NAMESPACE:default-namespace}

 

# The service name in UI,这里是在skywalking界面上显示的服务名称,我的服务叫“TEST”

agent.service_name=${SW_AGENT_NAME:TEST}

 

# The number of sampled traces per 3 seconds

# Negative number means sample traces as many as possible, most likely 100%

# agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1}

 

# Authentication active is based on backend setting, see application.yml for more details.

# agent.authentication = ${SW_AGENT_AUTHENTICATION:xxxx}

 

# The max amount of spans in a single segment.

# Through this config item, skywalking keep your application memory cost estimated.

# agent.span_limit_per_segment=${SW_AGENT_SPAN_LIMIT:300}

 

# Ignore the segments if their operation names end with these suffix.

# agent.ignore_suffix=${SW_AGENT_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg}

 

# If true, skywalking agent will save all instrumented classes files in `/debugging` folder.

# Skywalking team may ask for these files in order to resolve compatible problem.

# agent.is_open_debugging_class = ${SW_AGENT_OPEN_DEBUG:true}

 

# The operationName max length

# agent.operation_name_threshold=${SW_AGENT_OPERATION_NAME_THRESHOLD:500}

 

# Backend service addresses.这里是oap服务所在的服务器地址

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

 

# Logging file_name

logging.file_name=${SW_LOGGING_FILE_NAME:skywalking-api.log}

 

# Logging level

logging.level=${SW_LOGGING_LEVEL:DEBUG}

 

# Logging dir

# logging.dir=${SW_LOGGING_DIR:""}

 

# Logging max_file_size, default: 300 * 1024 * 1024 = 314572800

# logging.max_file_size=${SW_LOGGING_MAX_FILE_SIZE:314572800}

 

# mysql plugin configuration

# plugin.mysql.trace_sql_parameters=${SW_MYSQL_TRACE_SQL_PARAMETERS:false}

配置完成后通过以下命令启动项目,在启动命令中加“-javaagent:/home/agent/skywalking-agent.jar”参数:

java -jar -javaagent:/home/agent/skywalking-agent.jar test.jar 

这里整个skywalking已经搭建完成。 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐