当前位置: 首页 > news >正文

Docker+rancher部署SkyWalking8.5并应用在springboot服务中

1.Skywalking介绍

Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。

2.Skywalking优势

国内开源项目,社区成熟,且可与作者直接沟通
支持语言更多:Java、.NET Core、PHP、Node.JS、Golang
支持java自动探针,代码无侵入,只要简单配置,就可以自动实现各种指标、调用链的埋点
众多存储选择:ElasticSearch、MySql、TiDB、H2、Sharding Sphere
扩展性:支持模块、插件的可拔插
支持java语言的几十种插件,例如:Tomcat、RabbitMq、Kafka,且易于二次开发
性能:比其他开源软件性能都强

3.官网

官网地址: http://skywalking.apache.org/
中文官网 http://skywalking.apache.org/zh/
下载地址: https://skywalking.apache.org/downloads/
git地址:https://github.com/apache/skywalking

4.部署

4.1 下载skywalking

https://archive.apache.org/dist/skywalking/

在这里插入图片描述
因为我们使用的是es链接的,所以可以选用es版本的包进行下载。这里主要是为了使用下载后的agent包
解压后:
在这里插入图片描述
4.2 docker+rancher部署 oap-server
在这里插入图片描述
在这里插入图片描述

4.3 docker+rancher部署 skywalking-ui
在这里插入图片描述
在这里插入图片描述
ip为oap-server所在的ip
12800是oap-server的ip

4.4服务器放置agent文件夹
agent这个就是我们下载解压后得到的

进入/agent/config目录下在agent.config中添加配置

//oap-server服务ip
plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:127.0.0.1} //oap-server服务端口
plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}

5.应用服务中的配置

5.1 在Rancher对应的服务下配置数据卷
主机路径配置 agent文件绝对路径
在这里插入图片描述
5.2 项目服务修改pom

skywalking-agent.jar路径为服务器agent的绝对路径;启动镜像时一起启动agent的jar包,如果是使用Dockerfile打镜像那么就将这些命令写入到Dockefile

FROM java:8
MAINTAINER demo
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
EXPOSE 8080
ENTRYPOINT ["java  -Dspring.profiles.active=prod -javaagent:/opt/agent/skywalking-agent.jar -Dskywalking.agent.service_name=${project.artifactId} -Dskywalking.collector.backend_service=127.0.0.1:11800 $PARAMS","-jar","demo.jar"]

5.3 项目服务配置logback日志
只有配置了logback日志才能在页面的日志模块看到操作日志,否则是看不到日志的。(这些配置是在具体使用监控的服务中配置的,那些服务用那些服务配置)

pom.xml配置

<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>8.5.0</version>
</dependency>
<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.5.0</version>
</dependency>

新增一个logback-skywalking.xml文件,用于定义日志和将日志发送到skywalking页面。

<?xml version="1.0" encoding="UTF-8"?><configuration scanPeriod=" 5 seconds" scan="true"><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern></layout></encoder></appender><appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"><discardingThreshold>0</discardingThreshold><queueSize>1024</queueSize><neverBlock>true</neverBlock><appender-ref ref="STDOUT"/></appender><appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender"><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern></layout></encoder></appender><root level="INFO"><appender-ref ref="grpc-log"/><appender-ref ref="ASYNC"/></root>
</configuration>

yml配置
logging:
config: classpath:logback-skywalking.xml

使用ip:18080直接可以访问前端页面

日志的保存时间
直接使用 SkyWalking 进行配置,如下代码所示:
这个直接在 skywalking-oap-server环境变量中配置

recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:3} # Unit is day
metricsDataTTL: ${SW_CORE_METRICS_DATA_TTL:7} # Unit is day
http://www.lryc.cn/news/121681.html

相关文章:

  • 代码随想录第45天 | 322. 零钱兑换、279. 完全平方数
  • 怎么加入Microsoft Cloud Partner Program?
  • LNMP简易搭建
  • CClink IE转Modbus TCP网关连接三菱FX5U PLC
  • PyTorch 微调终极指南:第 1 部分 — 预训练模型及其配置
  • GO学习之 微框架(Gin)
  • C语言 字符指针
  • Springboot所有的依赖
  • Flutter BottomSheet 三段式拖拽
  • php后端实现调用高德地图进行POI搜索
  • uniapp 实现滑动视图切换 顶部滚动导航栏
  • ArcGIS API for JavaScript 调用自定义地图模板总结
  • QGraphicsView实现简易地图5『经纬网格』
  • RestTemplate 请求转发异常 ERR_CONTENT_DECODING_FAILED 200 (OK)
  • 用python实现一个异或计算器
  • Sketch打不开AI文件?转换方法在这里
  • 小游戏扫雷实现教学(详解)
  • 04 mysql innodb record
  • Centos7安装Docker
  • Vue中如何更好地封装组件?
  • C语言的链表的相关操作
  • Python3中typing模块
  • C语言自动抓取淘宝商品详情网页数据,实现轻松高效爬虫
  • 数据结构---跳表
  • 为什么Tomcat的NIO在读取body时要模拟阻塞?
  • 26 | 谷歌应用APP数据分析
  • BFS 五香豆腐
  • opencv实战项目 手势识别-手势控制键盘
  • 1.作用域
  • 黑马B站八股文学习笔记