Skywalking8+elasticsearch7链路追踪平台搭建
环境
Java:JDK11.0.10
skywalking:8.1.0
elasticsearch:7.12.0
安装包下载(所有安装包都包含):链接:https://pan.baidu.com/s/1E7n7HAy_GtH3eou1mxIn7g
提取码:oczp
安装包名:
jdk-11.0.10_linux-x64_bin.tar.gz
elasticsearch-7.12.0-linux-x86_64.tar.gz
apache-skywalking-apm-es7-8.1.0.tar.gz
搭建步骤单个服务为例
第一步,搭建一个 Elasticsearch 服务(默认端口9200)。
第二步,下载SkyWalking 软件包。
第三步,启动SkyWalking OAP 服务(默认端口12800、11800)和SkyWalking UI 服务(默认端口18080)。
第四步,启动系统服务,并配置 SkyWalking Agent。
用户级别环境变量配置
- 在linux服务器上新建一个账号,非root账号,配置号用户名密码,把jdk-10.10_linux-x64_bin.tar.gz放到该用户下,进行解压tar -zxvf jdk-10.10_linux-x64_bin.tar.gz,进入目录,使用pwd抓取到当前jdk工作目录
- 配置用户级别jdk环境,输入命令vim ~/.bashrc,编辑环境文件,在文件中加入以下命令,保存退出后,使用命令source ~/.bashrc使配置环境变量生效
export JAVA_HOME=/home/skywalking/jdk-11.0.10
export JRE_HOME=${JAVA_HOME}/jre
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
- 使用java -version查看jdk环境是否配置生效
elasticsearch7服务环境搭建
- 下载elasticsearch-7.12.0-linux-x86_64.tar.gz到skywalking用户目录下,进行解压;创建data目录
tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz //解压压缩包
cd elasticsearch-7.2.0 //进入目录
mkdir data //创建data文件夹,保存数据
- 修改config/elasticsearch.yml,文件中加上一下命令
cluster.name: apm-application
node.name: node-1
#下面目录为elasticsearch应用目录,后带上logs以及新创建的data目录
path.data: /home/skywalking/elasticsearch-7.12.0/data
path.logs: /home/skywalking/elasticsearch-7.12.0/logs
# ES监听的ip地址
network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1"]
# 需要开启跨域才能给elasticsearch-head,kibana等连接
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
- Elasticsearch初始启动会出现报错问题,需要使用root账号登录,进行一些配置项修改;
- 针对以下问题,bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
- 使用root用户执行命令sysctl -w vm.max_map_count=262144
- 针对以下问题,bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
使用root账号登录,vim /etc/security/limits.conf,在文件末尾加上以下命令
skywalking soft nofile 65536
skywalking hard nofile 65536
- 在xshell中重新进行客户端链接(切换到其他用户,在切换回来,或者重新打开一个链接窗口)
- 使用./bin/elasticsearch -d命令启动elasticsearch,然后访问当前服务器ip:9200查看是否部署成功
SkyWalking安装部署
- 下载SkyWalking安装包,放到服务器当前用户(skywalking)下,使用tar -zxvf apache-skywalking-apm-es7-8.0.0.tar.gz进行解压,cd apache-skywalking-apm-es7-8.0.0进入目录
- 使用vim config/application.yml进行配置编辑,修改storage配置,如下:
selector: ${SW_STORAGE:elasticsearch7}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
- 启动OAP
$ bin/oapService.sh
SkyWalking OAP started successfully!
- 启动SkyWalking UI,因为SkyWalking UI默认使用端口为8080,所以一般需要进行端口修改配置;修改方式如下:vim webapp/webapp.yml,修改port端口为其他端口如18081
- # 修改webapp/webapp.yml
- server:
- port: 18081
- 使用bin/webappService.sh命令启动SkyWalking UI
$ bin/webappService.sh
SkyWalking Web Application started successfully!
- 使用ip:18081进行访问UI,如下:
SkyWalking Agent探针添加(以我们springboot服务为例)
- 把skywalking目录下的agent探针打包复制到微服务上(以综治采集为例),使用以下命令:
tar -zxvf agent.tar.gz ./agent/ (使用tar命令对整个agent文件夹进行打包成agent.tar.gz包)
scp agent.tar.gz 3080@192.168.1.172:/home/3080/(用此命令把agent.tar.gz传输到综治采集的目录下)
- 使用tar -zxvf agent.tar.gz进行解压,cd agent进入工作目录
- 修改探针默认配置,config/agent.config,修改一下两个参数配置
agent.service_name=gridcenter // gridcenter为微服务名称,在微服务启动时需要加上参数,供skywalkingUI界面上识别
collector.backend_service=192.168.1.137:11800//ip地址为部署skywalking服务器的ip地址,默认端口是11800,不用修改
- 使用命令启动微服务,如下:
nohup java -javaagent:/home/3080/agent/skywalking-agent.jar -Dskywalking.agent.application_code=gridcenter -jar gridcloud-springboot-gridcenter.jar --spring.profiles.active=test --server.port=3080 --gridcloud.nacos.address=192.168.1.174:8848(此为加上参数后的命令,对比下面没加参数之前的命令)
nohup java -jar gridcloud-springboot-gridcenter.jar --spring.profiles.active=test --server.port=3080 --gridcloud.nacos.address=192.168.1.174:8848
在启动命令上,添加了探针jar包,以及微服务加上了服务名,加上参数如下:
-javaagent:/home/3080/agent/skywalking-agent.jar -Dskywalking.agent.application_code=gridcenter
- 整套系统部署完成,以下是界面展示,在追踪界面可以看到每个请求的链路响应时间,方便定位到性能问题