Docker安装SkyWalking并监控Java程序

925 阅读3分钟

安装环境

安装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

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串即为成功

ip:9200

在这里插入图片描述 如果ElasticSearch没有正常启动可能是因为服务器的配置比较低,可以调整一下服务器的配置参数,让服务配置参数达到ElasticSearch要求。

#修改虚拟机配置
vi /etc/security/limits.conf

在最下面增加以下代码

* soft nofile 65536
* hard nofile 65536

修改vi /etc/sysctl.conf,在最下面增加以下代码

vm.max_map_count=655360

刷新配置立即生效

/sbin/sysctl -p

安装Skywalking OAP

使用docker安装skywalking-oap的8.6.0-es7版本,配套我们的ElasticSearch 7.12.1,命令如下

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

在这里插入图片描述 参数说明:

# 存储服务采用ElasticSearch7
-e SW_STORAGE=elasticsearch7
# 存储服务路径(IP+Port)
-e SW_STORAGE_ES_CLUSTER_NODES=10.0.4.14:9200

安装完可以使用以下docker命令核对是否启动成功

docker ps -a 

如下图则两个容器都已经正常启动了 在这里插入图片描述

安装Skywalking UI

Skywalking UI是对Skywalking收集到的数据进行分析展示的控制台服务,需要指定Skywalking OAP服务地址,否则展示不了监控的数据。

使用docker安装启动skywalking-ui:8.6.0,如以下命令

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

在这里插入图片描述 参数说明:

# Skywalking UI映射到外部的端口为8081
-p 8081:8080
# Skywalking OAP的服务地址,也就是第二步的操作
-e SW_OAP_ADDRESS=10.0.4.14:12800

使用docker命令核对三个容器的启动状态 在这里插入图片描述 Skywalking UI安装完成后就可以访问ui页面了,访问如下地址

服务器ip+8081

出现以下页面即搭建完成 在这里插入图片描述

Java接入Skywalking

java项目接入Skywalking需要先下载agent包:apache-skywalking-java-agent 在这里插入图片描述

下载后如上图进行解压,不要把agent的jar包挪移出来,需要同目录的配置文件

1. Idea启动接入

编辑spring boot项目的启动类配置 在这里插入图片描述 在VM option这一行写入以下配置

-javaagent:D:\Jar\skywalking-agent\skywalking-agent.jar
-DSW_AGENT_NAME=yun-tool-app
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800

参数解释:

# 本地的agent包地址
-javaagent:D:\Jar\skywalking-agent\skywalking-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包命令的方式就是如下命令

java -javaagent:/application/app/agent/skywalking-agent.jar -jar /application/app/app-0.0.1-SNAPSHOT.jar

切记不要把skywalking-agent.jar这个包提出到解压的文件外