目录
1.搭建ES
2.搭建Skywalking
1.安装java
2.解压skywalking压缩包
3.修改配置文件 application.yml
4.修改配置文件 webapp/webapp.yml
5.支持springcloud gateway :
6.启动Skywalking OAP:
7.启动Skywalking UI服务:
3.微服务使用skywalking
参考文章:
1.搭建ES
在本文中,我们需要将skywalking采集到的数据导入到ES中,所以需要首先安装ES,我们用的是ES集群。
2.搭建Skywalking
有了ES之后,我们开始搭建Skywalking。
1.安装java
jdk压缩包解压(自己去下载):
tar zxvf jdk1.8.0_181.tar
配置环境变量:
修改/etc/profile文件,在文件最后加上:
export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使配置生效:
source /etc/profile
查看java版本:
[root@ecs-dev-0003 ~]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
[root@ecs-dev-0003 ~]# javac -version
javac 1.8.0_181
[root@ecs-dev-0003 ~]#
2.解压skywalking压缩包
tar zxvf apache-skywalking-apm-bin-es7.tar.gz
3.修改配置文件 application.yml
修改配置文件config/application.yml
将其中的storage -> selector改为 “elasticsearch7”,本文中用到的就是ES7.8.1
storage:
selector: ${SW_STORAGE:elasticsearch7}
参数说明:
参数 | 说明 |
selector | 存储选择器。本文选在ES7 |
nameSpace | 命名空间。Elasticsearch实例中,所有索引的命名会使用此参数值作为前缀。本人查了查资料,这里设置了ES集群的名字 |
clusterNodes | 指定Elasticsearch实例的访问地址。由于实例与SkyWalking不在同一专有网络VPC(Virtual Private Cloud)下,因此要使用公网访问地址,获取方式请参见查看实例的基本信息。由于是测试环境,本人直接设置了本机的ES节点。 |
user | Elasticsearch实例的访问用户名,默认为elastic。 |
password | 对应用户的密码。elastic用户的密码在创建实例时指定,如果忘记可重置。重置密码的注意事项和操作步骤,请参见重置实例访问密码。 |
Note: skywalking启动后,会启动两个服务,一个是skywalking-oap-server,另外一个是skywalking-web-ui:8080。 skywalking-oap-server服务启动后会暴露两个端口11800 和12800,分别为收集监控数据的端口11800和接受前端请求的端口12800,修改端口可以修改config/application.yml
4.修改配置文件 webapp/webapp.yml
Skywalking默认使用8080端口,如果该端口被占用,则可以修改webapp/webapp.yml文件,修改Skywalking的端口。
还有12800也是Skywalking使用的端口。
5.支持springcloud gateway :
skywalking默认不采集sping cloud gateway的数据,怎么办呢?
将optional-plugins目录下的最新版本的jar包 apm-spring-cloud-gateway-3.x-plugin-8.7.0.jar 拷贝到plugins目录下,然后重启skywalking
6.启动Skywalking OAP:
./bin/./oapService.sh
7.启动Skywalking UI服务:
./bin/webappService.sh
Note: skywalking启动后,会启动两个服务,一个是skywalking-oap-server,另外一个是skywalking-web-ui:8080。 skywalking-oap-server服务启动后会暴露两个端口11800 和12800,分别为收集监控数据的端口11800和接受前端请求的端口12800,修改端口可以修改config/application.yml
3.微服务使用skywalking
skywalking对微服务的代码是无侵入的,只需要在项目启动的时候,加入一些启动参数就可以了
- -javaagent: 需要指定skywalking-agent.jar,作为client的数据收集器
- -Dskywalking.agent.service_name:是指注册到skywalking的微服务名称
- -Dskywalking.collector.backend_service:指的是skywalking接收agent(微服务端)发送采集数据的服务及端口
# JAVA_OPTS=.......
# appName=.......
# skywalkingIpAdress=........
# java $JAVA_OPTS -javaagent:/opt/agent/skywalking-agent.jar -Dskywalking.agent.service_name=$appName-${SPRING_PROFILES_ACTIVE:-default} -Dskywalking.collector.backend_service=${skywalkingIpAdress:-10.***.***.101:11800} -jar tmp/$appName.jar
使用效果:
可以看到微服务都在skywalking中显示出来。