Docker安装SkyWalking并监控Java程序
安装环境
安装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这个包提出到解压的文件外
相关文章
- Elasticsearch 中文分词、全文搜索、分布式集群搭建和java客户端操作
- java helloworld源代码_Java Hello World源代码剖析
- java pfx_如何在Java中读取.pfx文件的内容?
- Java 设计模式最佳实践:一、从面向对象到函数式编程
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java resourcebundle_Java – Properties和ResourceBundle类学习「建议收藏」
- java dom4j生成xml格式化_Java DOM4J方式生成XML的方法「建议收藏」
- 详解 Java 内部类
- java 拉姆达表达式_一看就懂之java8新特性函数式编程:我是拉姆达表达式lambda…
- Java 近闻:JDK 20、新的 JEP 草案、JobRunr 6.0、GraalVM 22.3.1
- 开心档之Java 为 I/O
- 【愚公系列】2023年03月 Java教学课程 096-Servlet服务器的JSTL
- IntelliJ IDEA 2023 for Mac 完美兼容版:最智能的 Java 集成开发环境
- 如何实现Java程序发送邮件详解程序员
- Java ConcurrentHashMap (Java代码实战-005)详解编程语言
- 如何使用Java连接MySQL数据库(java怎么连接mysql数据库)
- Linux下Java开发入门指南(linux下java开发)
- 数据库Java实现Oracle数据库监控(java监听oracle)
- Java操作Oracle数据库:实现数据库连接与访问(java连接oracle数据库)
- java spring boot消息队列 RabbitMQ详解编程语言
- Linux下配置Java环境变量的简易指南(linux配置java环境变量)
- Java监控MySQL性能:实现数据库运行优化(java监控mysql)
- MySQL驱动程序:Java集成简易操作(mysql的java驱动)
- Oracle与Java的连接:揭秘数据库开发技术之间的神奇联系(oracle连接java)
- 服务器是否开机Java检查Linux服务器开机状态(java判断linux)
- 实现Redis Java实现自动过期(redisjava过期)
- 构建Java应用程序中Redis集群的方法(java连redis集群)
- 使用Java连接MySQL实现查询功能(java连接mysql查询)
- Java程序如何在Linux上顺利部署?快来了解一下!(java部署到Linux)
- Java编程操作Oracle数据库(java读oracle)
- Java中的浮点数分析