文章目录

下载官方示例

安装es7

安装skywalking oap和UI界面

  • OAP server搭建
  • 启动 SkyWalking OAP 和UI服务
  • skywalking-agent配置
  • 启动consumer和provider
  • consumer的VM Options
  • provider的VM Options
  • 测试链路追踪
  • 参考资料:

下载官方示例

首先,将官方demo从github上下载下来,在idea中打开。

官方demo地址:https://github.com/SkyAPMTest/dubbo-trace-example 然后呢?不着急,先看下skywalking的架构。

SkyWalking 监控哪些指标_ide

所以,我们接下来很清楚的知道要做的事情,没错,就是部署es和skywalking OAP服务器。

安装es7

这里我们部署的是elasticsearch7.1.1版本,而且是从docker仓库安装。 安装方式请参考我的另外一篇:macOS 码农使用问题杂记

安装skywalking oap和UI界面

这里选择:Binary Distribution for ElasticSearch 7 (Linux) 版本

下载并解压:

SkyWalking 监控哪些指标_SkyWalking 监控哪些指标_02

解释下目录:

4 drwxr-xr-x 8 root root  4096 Sep  9 15:09 agent # SkyWalking Agent
 4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 bin # 执行脚本
 4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 config # SkyWalking OAP Server 配置文件
32 -rwxr-xr-x 1 root root 28903 Sep  9 14:32 LICENSE
 4 drwxr-xr-x 3 root root  4096 Sep  9 15:44 licenses
32 -rwxr-xr-x 1 root root 31850 Sep  9 14:32 NOTICE
16 drwxr-xr-x 2 root root 16384 Sep  9 15:22 oap-libs # SkyWalking OAP Server
 4 -rw-r--r-- 1 root root  1978 Sep  9 14:32 README.txt
 4 drwxr-xr-x 2 root root  4096 Sep  9 15:44 webapp # SkyWalking UI

接着就是启动oap server

OAP server搭建

修改oap server的配置文件:config/application.yml,这里只关注storage节点下的内容:

storage:
  elasticsearch7:
    nameSpace: ${SW_NAMESPACE:"elasticsearch"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
#    trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
#    trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
    user: ${SW_ES_USER:""}
    password: ${SW_ES_PASSWORD:""}
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
#    # Those data TTL settings will override the same settings in core module.
    recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day
    otherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day
    monthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month
#    # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
    bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests
    flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
    concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
    resultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}
    metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
    segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}

也就是说,这里我们使用storage.elasticsearch7 配置项,设置使用 Elasticsearch 7.X 版本作为存储器。

启动 SkyWalking OAP 和UI服务

SkyWalking 监控哪些指标_UI_03

启动之后,记得看下日志文件logs/skywalking-oap-server.log是否报错。OAPserver启动成功的标识是:

2020-01-02 18:22:53,635 - org.eclipse.jetty.server.Server - 444 [main] INFO  [] - Started @35249ms

UI服务也是一样,启动只有看下logs/webapp.log是否报错。

然后打开:http://localhost:8080/查看下skywalking的web界面。

SkyWalking 监控哪些指标_ide_04

skywalking-agent配置

虽然skywalking的UI界面正常启动了,但是我们的链路追踪目标,也就是我们的服务还没有启动,这里的服务就是consumer和provider。在启动服务的时候需要配置一些VM Options和Environment Variables.这里先说下关于skywalking-agent.jar的配置。

这里由于是在自己的mac上搭建的环境,所以consumer和provider用的是同一个agent,但是我们仍然可以复制多年一份agent.config为consumer和provider单独进行配置。

SkyWalking 监控哪些指标_ide_05

这里我们只在agent-xx.config中配置下服务名,以provider为例:

# The service name in UI
agent.service_name=${SW_AGENT_NAME:dubbo-provider}

启动consumer和provider

每个服务都有单独的agent-xx.config.

consumer的VM Options

-javaagent:/Users/shengqianfeng/Downloads/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar
-Dskywalking.agent.application_code=dubbo-consumer
-Dskywalking.agent.service_name=dubbo-consumer
-Dskywalking_config=/Users/shengqianfeng/Downloads/skywalking/apache-skywalking-apm-bin-es7/agent/config/agent-consumer.config

还有在Environment variables配置:

SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800

provider的VM Options

-javaagent:/Users/shengqianfeng/Downloads/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar
-Dskywalking.agent.application_code=dubbo-provider
-Dskywalking.agent.service_name=dubbo-provider
-Dskywalking_config=/Users/shengqianfeng/Downloads/skywalking/apache-skywalking-apm-bin-es7/agent/config/agent-provider.config

还有在Environment variables配置:

SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800

然后,启动consumer和provider。

测试链路追踪

调用接口http://localhost:8070/sayHello/test,到skywalking的UI界面观察一下.

SkyWalking 监控哪些指标_UI_06

SkyWalking 监控哪些指标_调用链追踪_07

  • 提示:UI界面注意下时区,这里为UTC+8.

参考资料:

使用 Apache Skywalking 做分布式跟踪Skywalking 极简入门