Docker安装SkyWalking并监控Java程序

2022-11-02 16:17:33 浏览数 (1)

安装环境

安装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这个包提出到解压的文件外

0 人点赞