安装环境
安装Skywalking可以采用H2存储数据或者ElasticSearch存储,这里采用ElasticSearch存储,采用OAP处理数据,并基于Skywalking UI展示数据。因为安装ElasticSearch的要求比较高建议内存在2G以上
配置列表
- 硬件
- 虚拟机配置:2C4G
- 操作系统:CentOS 7.6 64bit
- docker版本: 20.10.5
- 软件
- ElasticSearch 7.12.1
- Skywalking-OAP 8.6.0-es7
- Skywalking UI 8.6.0
安装ElasticSearch7
Skywalking可以选择H2存储,也就是内存存储,但是做demo可以,在正式使用时还是使用elasticsearch,本篇选择安装ElasticSearch7。
使用docker安装启动elasticsearch
代码语言:javascript复制docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms84m -Xmx512m" -d elasticsearch:7.12.1
安装完成访问服务器ip 端口查看是否成功,上面命令映射的9200端口就直接访问,如下图出现json串即为成功
代码语言:javascript复制ip:9200
如果ElasticSearch没有正常启动可能是因为服务器的配置比较低,可以调整一下服务器的配置参数,让服务配置参数达到ElasticSearch要求。
代码语言:javascript复制#修改虚拟机配置
vi /etc/security/limits.conf
在最下面增加以下代码
代码语言:javascript复制* soft nofile 65536
* hard nofile 65536
修改vi /etc/sysctl.conf,在最下面增加以下代码
代码语言:javascript复制vm.max_map_count=655360
刷新配置立即生效
代码语言:javascript复制/sbin/sysctl -p
安装Skywalking OAP
使用docker安装skywalking-oap的8.6.0-es7版本,配套我们的ElasticSearch 7.12.1,命令如下
代码语言:javascript复制docker run
--name skywalking-oap
--restart always
-p 11800:11800
-p 12800:12800 -d
--privileged=true
-e TZ=Asia/Shanghai
-e SW_STORAGE=elasticsearch7
-e SW_STORAGE_ES_CLUSTER_NODES=10.0.4.14:9200
-v /etc/localtime:/etc/localtime:ro
apache/skywalking-oap-server:8.6.0-es7
参数说明:
代码语言:javascript复制# 存储服务采用ElasticSearch7
-e SW_STORAGE=elasticsearch7
# 存储服务路径(IP Port)
-e SW_STORAGE_ES_CLUSTER_NODES=10.0.4.14:9200
安装完可以使用以下docker命令核对是否启动成功
代码语言:javascript复制docker ps -a
如下图则两个容器都已经正常启动了
安装Skywalking UI
Skywalking UI是对Skywalking收集到的数据进行分析展示的控制台服务,需要指定Skywalking OAP服务地址,否则展示不了监控的数据。
使用docker安装启动skywalking-ui:8.6.0,如以下命令
代码语言:javascript复制docker run
--name skywalking-ui
--restart always
-p 8081:8080 -d
--privileged=true
--link skywalking-oap:skywalking-oap
-e TZ=Asia/Shanghai
-e SW_OAP_ADDRESS=10.0.4.14:12800
-v /etc/localtime:/etc/localtime:ro
apache/skywalking-ui:8.6.0
参数说明:
代码语言:javascript复制# Skywalking UI映射到外部的端口为8081
-p 8081:8080
# Skywalking OAP的服务地址,也就是第二步的操作
-e SW_OAP_ADDRESS=10.0.4.14:12800
使用docker命令核对三个容器的启动状态
Skywalking UI安装完成后就可以访问ui页面了,访问如下地址
代码语言:javascript复制服务器ip 8081
出现以下页面即搭建完成
Java接入Skywalking
java项目接入Skywalking需要先下载agent包:apache-skywalking-java-agent
下载后如上图进行解压,不要把agent的jar包挪移出来,需要同目录的配置文件
1. Idea启动接入
编辑spring boot项目的启动类配置
在VM option这一行写入以下配置
代码语言:javascript复制-javaagent:D:Jarskywalking-agentskywalking-agent.jar
-DSW_AGENT_NAME=yun-tool-app
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
参数解释:
代码语言:javascript复制# 本地的agent包地址
-javaagent:D:Jarskywalking-agentskywalking-agent.jar
# 这个是统计到skywalking的名称
-DSW_AGENT_NAME=app
# 后面是skywaking-oap的地址
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
skywalking追踪信息收集器有两个,一个是 gRPC的用于后端服务,一个是Http 收集客户端浏览器的采集信息 ,
Http默认端口 12800,gRPC默认端口 11800。
2. jar包接入
如果使用jar包命令的方式就是如下命令
代码语言:javascript复制java -javaagent:/application/app/agent/skywalking-agent.jar -jar /application/app/app-0.0.1-SNAPSHOT.jar
切记不要把skywalking-agent.jar这个包提出到解压的文件外