下载安装包
进入安装包页面
https://archive.apache.org/dist/skywalking/7.0.0/
下载sw插件
前提条件
您已完成以下操作:
-
创建阿里云Elasticsearch实例,本文使用7.4.0版本。
具体操作步骤,请参见创建阿里云Elasticsearch实例。
-
准备一台Linux服务器,并在服务器中安装JDK,要求JDK版本为1.8.0及以上版本。
建议您使用阿里云ECS服务器。购买ECS服务器的方法,请参见步骤一:创建ECS实例。
说明 安装JDK的方式,请参见步骤三:安装JDK。如果未正确安装JDK,启动SkyWalking后查看日志,可能会显示Java not found或者java-xxx: No such file or directory报错。
确保Linux服务器的8080、10800、11800、12800端口不被占用。
关闭Linux服务器的防火墙及SELinux。
操作流程
步骤一:下载并安装SkyWalking
-
在Linux服务器中,下载SkyWalking。
建议选择最新的7.0.0版本。由于本文使用的是Elasticsearch 7.4.0版本,因此选择Binary Distribution for ElasticSearch 7二进制包。下载命令如下。
wget https://archive.apache.org/dist/skywalking/7.0.0/apache-skywalking-apm-es7-7.0.0.tar.gz
-
解压。
tar -zxvf apache-skywalking-apm-es7-7.0.0.tar.gz
-
查看解压后的文件。
ll apache-skywalking-apm-bin-es7/
返回结果如下。
total 92 drwxrwxr-x 8 1001 1002 143 Mar 18 23:50 agent drwxr-xr-x 2 root root 241 Apr 10 16:03 bin drwxr-xr-x 2 root root 221 Apr 10 16:03 config -rwxrwxr-x 1 1001 1002 29791 Mar 18 23:37 LICENSE drwxrwxr-x 3 1001 1002 4096 Apr 10 16:03 licenses -rwxrwxr-x 1 1001 1002 32838 Mar 18 23:37 NOTICE drwxrwxr-x 2 1001 1002 12288 Mar 19 00:00 oap-libs -rw-rw-r-- 1 1001 1002 1978 Mar 18 23:37 README.txt drwxr-xr-x 3 root root 30 Apr 10 16:03 tools drwxr-xr-x 2 root root 53 Apr 10 16:03 webapp
步骤二:配置SkyWalking与Elasticsearch连通
-
在config目录下,打开application.yml文件。
cd apache-skywalking-apm-bin-es7/config/ vi application.yml
-
定位到
storage
部分,将默认的H2存储库改为elasticsearch7,并按照以下说明配置。storage: selector: ${SW_STORAGE:elasticsearch7} elasticsearch7: nameSpace: ${SW_NAMESPACE:"skywalking-index"} clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:es-cn-4591kzdzk000i****.public.elasticsearch.aliyuncs.com: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:""} enablePackedDownsampling: ${SW_STORAGE_ENABLE_PACKED_DOWNSAMPLING:true} # Hour and Day metrics will be merged into minute index. dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index. user: ${SW_ES_USER:"elastic"} password: ${SW_ES_PASSWORD:"es_password"}
说明 SkyWalking服务默认使用H2存储,不具有持久存储的特性,所以需要将存储组件修改为elasticsearch。
参数 说明 selector 存储选择器。本文设置为elasticsearch7。 nameSpace 命名空间。Elasticsearch实例中,所有索引的命名会使用此参数值作为前缀。 clusterNodes 指定Elasticsearch实例的访问地址。由于实例与SkyWalking不在同一专有网络VPC(Virtual Private Cloud)下,因此要使用公网访问地址,获取方式请参见查看实例的基本信息。 user Elasticsearch实例的访问用户名,默认为elastic。 password 对应用户的密码。elastic用户的密码在创建实例时指定,如果忘记可重置。重置密码的注意事项和操作步骤,请参见重置实例访问密码。 注意 配置中仅指定用户名和密码即可,请注释trustStorePath和trustStorePass,否则会报错NoSuchFileException:../es_keystore.jks。
-
可选:修改监听的IP地址或端口号。
SkyWalking默认使用12800作为Rest API通信端口,11800为gRPC API端口,可在application.yml文件的core中修改,本文使用默认配置。
core: selector: ${SW_CORE:default} default: # Mixed: Receive agent data, Level 1 aggregate, Level 2 aggregate # Receiver: Receive agent data, Level 1 aggregate # Aggregator: Level 2 aggregate role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator restHost: ${SW_CORE_REST_HOST:0.0.0.0} restPort: ${SW_CORE_REST_PORT:12800} restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/} gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0} gRPCPort: ${SW_CORE_GRPC_PORT:11800}
-
可选:在webapp目录下,修改webapp.yml配置。
本文使用默认配置,您也可以根据具体需求修改。
server: port: 8080 collector: path: /graphql ribbon: ReadTimeout: 10000 # Point to all backend's restHost:restPort, split by , listOfServers: 127.0.0.1:12800
步骤三:验证结果
-
在Linux服务器中,启动SkyWalking。
cd ../bin ./startup.sh
注意
- 在启动SkyWalking前,请确保Elasticsearch实例为正常状态。
- 执行
startup.sh
命令,会同时启动Collector和UI。
启动成功后,返回如下结果。
SkyWalking OAP started successfully! SkyWalking Web Application started successfully!
-
在浏览器中,访问http://<Linux服务器的IP地址>:8080/。
说明 初次使用SkyWalking连接Elasticsearch服务,启动会比较慢。因为SkyWalking需要向Elasticsearch服务创建大量的index,所以在未创建完成之前,访问这个页面会显示空白。此时您可以通过查看日志来判断启动是否完成,日志路径为
<SkyWalking的安装路径>logs/skywalking-oap-server.log
。 -
参见登录Kibana控制台,登录对应Elasticsearch实例的Kibana控制台,执行
GET _cat/indices?v
命令查看索引数据。
探针方式接入服务
-javaagent:E:\learn\apache-skywalking-apm-es7-7.0.0\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=service3 -Dskywalking.collector.backend_service=192.168.200.161:11800
agent.service_name:客户端服务名,在apm系统中显示的服务名称。
collector.backend_service:SW上传的服务地址。