下载官方示例
安装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的架构。
所以,我们接下来很清楚的知道要做的事情,没错,就是部署es和skywalking OAP服务器。
安装es7
这里我们部署的是elasticsearch7.1.1版本,而且是从docker仓库安装。 安装方式请参考我的另外一篇:macOS 码农使用问题杂记
安装skywalking oap和UI界面
这里选择:Binary Distribution for ElasticSearch 7 (Linux) 版本
下载并解压:
解释下目录:
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服务
启动之后,记得看下日志文件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-agent配置
虽然skywalking的UI界面正常启动了,但是我们的链路追踪目标,也就是我们的服务还没有启动,这里的服务就是consumer和provider。在启动服务的时候需要配置一些VM Options和Environment Variables.这里先说下关于skywalking-agent.jar的配置。
这里由于是在自己的mac上搭建的环境,所以consumer和provider用的是同一个agent,但是我们仍然可以复制多年一份agent.config为consumer和provider单独进行配置。
这里我们只在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界面观察一下.
- 提示:UI界面注意下时区,这里为UTC+8.
参考资料:
使用 Apache Skywalking 做分布式跟踪Skywalking 极简入门