静态网站是什么样,北京网站建设类岗位,福步外贸官网,深圳高端网站建设电话Skywalking skywalking是一个apm系统#xff0c;包含监控#xff0c;追踪#xff0c;并拥有故障诊断能力的 分布式系统 一、Skywalking介绍
1.什么是SkyWalking Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品#xff0c;它同时吸收了Zipkin /Pinpoint …Skywalking skywalking是一个apm系统包含监控追踪并拥有故障诊断能力的 分布式系统 一、Skywalking介绍
1.什么是SkyWalking Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品它同时吸收了Zipkin /Pinpoint /CAT 的设计思路。特点是支持多种插件UI功能较强支持非侵入式埋点。目前使用厂商最多版本更新较快。 数据存储支持Elasticsearch、MySQL、H2、TiDB。默认是H2而且是存到内存。实际我们一般将其存到ES。
主页http://skywalking.apache.org/ 下载https://skywalking.apache.org/downloads/ githubhttps://github.com/apache/skywalking 文档https://github.com/apache/skywalking/tree/master/docs 配置https://github.com/apache/skywalking/tree/master/docs/en/setup/backend
2.APM APM全称Application Performance Management应用性能管理目的是通过各种探针采集数据收集关键指标同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案. Zabbix、Premetheus、open-falcon等监控系统主要关注服务器硬件指标与系统服务运行状态等而APM系统则更重视程序内部执行过程指标和服务之间链路调用情况的监控APM更有利于深入代码找到请求响应“慢”的根本问题与Zabbix之类的监控是互补关系 目前市面上开源的APM系统主要有CAT、Zipkin、Pinpoint、SkyWalking大都是参考Google的 Dapper实现的.
3.链路追踪工具对比
链路追踪工具一般要有如下功能
心跳检测确定应用是否还在运行记录请求的执行流程、执行时间资源监控CPU、内存、带宽、磁盘告警功能监控执行时间、成功率等通过邮件、钉钉、短信、微信等进行通知可视化页面
常用的工具有 Zipkin Twitter开源的调用链分析工具目前基于springcloud sleuth得到了广泛的使用特点是轻量使用部署简单。 Pinpoint 韩国人开源的基于字节码注入的调用链分析以及应用监控分析工具。特点是支持多种插件UI功能强大接入端无代码侵入。 SkyWalking 本土开源的基于字节码注入的调用链分析以及应用监控分析工具。特点是支持多种插件UI功能较强接入端无代码侵入。目前已加入Apache孵化器。 CAT 大众点评开源的基于编码和配置的调用链分析应用监控分析日志采集监控报警等一系列的监控平台工具。 各维度对比
对比项ZipkinPinpointSkyWalkingCat实现方式拦截请求发送(Http,MQ)数据到Zipkin服务Java探针字节码增强Java探针字节码增强代码埋点(拦截器注解过滤器等)接入方式基于linkerd或者sleuth方式javaagent字节码javaagent字节码代码侵入agent到collector协议http,MQthriftgRPChttp/tcpOpenTracing支持不支持支持不支持颗粒度接口级方法级方法级代码级全局调用统计不支持支持支持支持traceid查询支持不支持支持不支持报警不支持支持支持支持JVM监控不支持不支持支持支持UI功能支持支持支持支持数据存储ES、MySQL等HBaseES/H2/MySQLMySQL/HDFS
性能对比图 4.SkyWalking的功能特性
多种监控手段通过语言探针和Service mesh 获得监控的数据支持多种语言自动探针包括 Java .NET Core 和 Node.js轻量高效无需大数据平台和大量的服务器资源模块化UI存储集群管理都有多种机制可选支持报警告警优秀的可视化解决方案
二、SkyWalking环境搭建
1.Skywalking结构 先来看看Skywalking的结构图 说明
Skywalking agent 和业务系统绑定在一起负责收集各种监控数据Skywalking oapservice负责处理监控数据比如接受Skywalking agent的监控数据并且存储在数据库中接受Skywalking webapp前端的请求从数据库查询数据并返回给前端Skywalking oapservice通常会以集群的方式搭建Skywalking webapp UI服务用于可视化展示数据用户持久化监控数据的数据库可以选用ElasticSearch、MySQL等
2.Skywalking部署 从官网提供的下载地址下载安装文件我们先通过windows操作来演示下https://skywalking.apache.org/downloads/ 点击对应的下载链接下载即可 启动服务 启动成功后会启动两个服务一个是Skywalking-oap-server,一个是Skywalking-web-ui:8080
Skywalking-oap-server服务启动后会暴露11800和12800两个端口分别为收集监控数据的端口11800和接收前端请求的端口12800修改端口可以修改config/application.yml 默认端口8080访问效果如下 3.Java Agent 在新版本中Agent是需要单独下载的。 下载后解压出来放在了前面Skywalking的解压目录中 三、服务接入 然后我们就可以把我们的微服务接入到Skywalking中来监控链路的执行。
1.开发环境的配置 首先来看看在开发环境中的配置因为Skywalking是无侵入式的。我们只需要在启动的时候 idea中的启动类配置中的 VM options 设置参数配置即可
# skywalking-agent.jar 的路径位置
-javaagent:d:\xxx\skywalking-agent.jar
# 在Skywalking中显示的服务名称
-DSW_AGENT_NAMExxx-skywalking-service
# Skywalking的collector服务的IP及端口
-DSW_AGENT_COLLECTOR_BACKEND_SERVICESlocalhost:11800注意-DSW_AGENT_COLLECTOR_BACKEND_SERVICES 可以指定远程服务但是 -javaagent必须是本地的jar包.
2.gateway服务 然后我们接入gateway的服务。在启动时设置对应的参数 启动服务后我们进入Skywalking的UI服务中查看 可以看到有对应的服务信息但是没有相关的链路信息主要是因为默认Skywalking中是不支持Gateway的我们需要显示的添加对应的gateway插件支持 从我们下载的agent包中的 optional-plugins中把gateway的jar拷贝的对应的plugins中即可 重启服务测试即可 3.对接多个服务 接下来我们就可以把商城系统中的各个服务都对接到Skywalking中给每个服务添加对应的配置
-Xmx512m
-javaagent:D:\software\apache-skywalking-apm-bin\skywalking-agent\skywalking-agent.jar
-DSW_AGENT_NAMEmall-product
-DSW_AGENT_COLLECTOR_BACKEND_SERVICESlocalhost:11800分别启动 四、Skywalking持久化 持久化数据到MySQL中。修改下config/application.yml配置把原来默认的H2修改为MySQL就可以了。 mysql://localhost:3306/swtest?rewriteBatchedStatementstrueserverTimezoneUTCuseUnicodetruecharacterEncodingutf-8然后还需要把MySQL的驱动包拷贝到对应的目录中 oap-libs 然后重启服务即可,对应的数据库会自动生成表结构 五、自定义SkyWalking链路 在默认情况下Skywalking是没有记录我们的业务方法的只会追踪到controller层接口如果需要添加业务方法的链路监控我们就需要添加如下的依赖
dependencygroupIdorg.apache.skywalking/groupIdartifactIdapm-toolkit-trace/artifactIdversion8.8.0/version
/dependency然后在业务方法上添加Trace注解。那么该方法就会被监控 重启服务并访问 但是查看这个方法的详情中没有返回信息和参数 这时我们可以通过Tags和Tag来解决这个问题
TraceTags({Tag(key getCatelog2JSON,value returnedObj),Tag(key param,value arg[0])})key:方法名 value returnedObj:是指定返回值
arg[0]:参数
重启测试 六、集成日志框架 将微服务的日志框架去集成SkyWalking我们希望在我们微服务中日志中能够记录当前调用链路的id然后我们再根据这个id去SkyWalking的前端界面中进行搜索找到对应的调用链路记录。 因为springboot默认实现的日志框架是logback这里也就拿logback举例使得调用链路的id可以显示在控制台每当请求接口时控制台就会输出对应的id拿到id就可以在skywalking客户端去检索对应的链路比较方便快速的找到。
在微服务中导入maven坐标
!-- skywalking 日志记录 --
dependencygroupIdorg.apache.skywalking/groupIdartifactIdapm-toolkit-logback-1.x/artifactIdversion8.5.0/version
/dependency
在项目中 resources目录下创建 logback-spring.xml文件
?xml version1.0 encodingUTF-8?
configurationappender nameconsole classch.qos.logback.core.ConsoleAppenderencoder classch.qos.logback.core.encoder.LayoutWrappingEncoderlayout classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayoutpattern%d{HH:mm:ss.SSS} [%thread] %-5level logger_name:%logger{36} - [%tid] - message:%msg%n/pattern/layout/encoder/appenderroot levelINFOappender-ref refconsole //root/configuration
在Skywalking UI的日志菜单中显示日志信息那么就需要再配置文件中再增加一个日志配置信息
?xml version1.0 encodingUTF-8?
configuration!-- 控制台日志输出的格式中添加tid --appender nameconsole classch.qos.logback.core.ConsoleAppenderencoder classch.qos.logback.core.encoder.LayoutWrappingEncoderlayout classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayoutpattern%d{HH:mm:ss.SSS} [%thread] %-5level logger_name:%logger{36} - [%tid] - message:%msg%n/pattern/layout/encoder/appender!-- skywalking grpc 日志收集 8.4.0版本开始支持 --appender namegrpc-log classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppenderencoder classch.qos.logback.core.encoder.LayoutWrappingEncoderlayout classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayoutPattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n/Pattern/layout/encoder/appenderroot levelINFOappender-ref refconsole /appender-ref refgrpc-log //root/configuration
前面的部署环境是在windows下一般实际上我们都是安装在linux服务器上通过docker容器安装那么这里还需要注意下需要在前面安装下载出来的 skywalking-agent文件下 - conf - agent.config文件添加以下的配置信息即可server_host的ip换成所在的服务器ip即可
plugin.toolkit.log.grpc.reporter.server_host${SW_GRPC_LOG_SERVER_HOST:127.0.0.1}
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} 七、告警信息信息推送
在skywalking客户端上有告警栏目当我们请求接口时长过长时会显示对应接口信息而告警规则是在前面安装的 skywalking-apm-bin\config\alarm-settings.yml 配置文件中默认响应配置了一些告警规则比如10分钟内有多少次接口请求超过1s那么就会显示告警信息在页面上提供用户查看而页面上看之外我们也还可能将告警信息通知到我们的项目中可以通过配置网络钩子使得告警信息可以通过指定的接口请求返回给我们。webhooks:- http://127.0.0.1:8087/notify 地址就是指定的微服务的请求地址如果有符合告警规则的请求场景配置了这个网络钩子指定的接口那么就会去自动发起请求接口那么我们指定的接口就可以用Object做参数接收告警信息接着在方法中做相关的信息推送比如发送邮件短信等提醒推送功能 RestController
public class Api Controller {PostMapping(/notify)public String getCurrentSeckillSessionSkus(ResponseBody Object obj){System.out.println(obj obj);return Skywalking warning notify;}
文章转载自: http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn http://www.morning.ybgt.cn.gov.cn.ybgt.cn http://www.morning.zpzys.cn.gov.cn.zpzys.cn http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn http://www.morning.dwxqf.cn.gov.cn.dwxqf.cn http://www.morning.rbnj.cn.gov.cn.rbnj.cn http://www.morning.brfxt.cn.gov.cn.brfxt.cn http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn http://www.morning.nhpmn.cn.gov.cn.nhpmn.cn http://www.morning.sxbgc.cn.gov.cn.sxbgc.cn http://www.morning.ppllj.cn.gov.cn.ppllj.cn http://www.morning.bqdpy.cn.gov.cn.bqdpy.cn http://www.morning.plqqn.cn.gov.cn.plqqn.cn http://www.morning.mtrfz.cn.gov.cn.mtrfz.cn http://www.morning.wrlcy.cn.gov.cn.wrlcy.cn http://www.morning.nxzsd.cn.gov.cn.nxzsd.cn http://www.morning.qmsbr.cn.gov.cn.qmsbr.cn http://www.morning.kyctc.cn.gov.cn.kyctc.cn http://www.morning.mbrbg.cn.gov.cn.mbrbg.cn http://www.morning.qllcm.cn.gov.cn.qllcm.cn http://www.morning.gnyhc.cn.gov.cn.gnyhc.cn http://www.morning.brps.cn.gov.cn.brps.cn http://www.morning.nzcgj.cn.gov.cn.nzcgj.cn http://www.morning.pyxtn.cn.gov.cn.pyxtn.cn http://www.morning.yltyz.cn.gov.cn.yltyz.cn http://www.morning.qrmry.cn.gov.cn.qrmry.cn http://www.morning.kmldm.cn.gov.cn.kmldm.cn http://www.morning.ydwsg.cn.gov.cn.ydwsg.cn http://www.morning.lcbgf.cn.gov.cn.lcbgf.cn http://www.morning.sjjq.cn.gov.cn.sjjq.cn http://www.morning.nqmdc.cn.gov.cn.nqmdc.cn http://www.morning.tqdlk.cn.gov.cn.tqdlk.cn http://www.morning.dsmwy.cn.gov.cn.dsmwy.cn http://www.morning.msgrq.cn.gov.cn.msgrq.cn http://www.morning.dpzcc.cn.gov.cn.dpzcc.cn http://www.morning.kkzwn.cn.gov.cn.kkzwn.cn http://www.morning.jzlkq.cn.gov.cn.jzlkq.cn http://www.morning.fqtzn.cn.gov.cn.fqtzn.cn http://www.morning.wgkz.cn.gov.cn.wgkz.cn http://www.morning.hbnwr.cn.gov.cn.hbnwr.cn http://www.morning.rzczl.cn.gov.cn.rzczl.cn http://www.morning.zzaxr.cn.gov.cn.zzaxr.cn http://www.morning.qdcpn.cn.gov.cn.qdcpn.cn http://www.morning.c7627.cn.gov.cn.c7627.cn http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn http://www.morning.ngcw.cn.gov.cn.ngcw.cn http://www.morning.ldqrd.cn.gov.cn.ldqrd.cn http://www.morning.dqwykj.com.gov.cn.dqwykj.com http://www.morning.nzfjm.cn.gov.cn.nzfjm.cn http://www.morning.rrrrsr.com.gov.cn.rrrrsr.com http://www.morning.skscy.cn.gov.cn.skscy.cn http://www.morning.wrtbx.cn.gov.cn.wrtbx.cn http://www.morning.qnzk.cn.gov.cn.qnzk.cn http://www.morning.mnwsy.cn.gov.cn.mnwsy.cn http://www.morning.mntxalcb.com.gov.cn.mntxalcb.com http://www.morning.dkqbc.cn.gov.cn.dkqbc.cn http://www.morning.fksdd.cn.gov.cn.fksdd.cn http://www.morning.pxlsh.cn.gov.cn.pxlsh.cn http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn http://www.morning.rrxgx.cn.gov.cn.rrxgx.cn http://www.morning.mjpgl.cn.gov.cn.mjpgl.cn http://www.morning.wxwall.com.gov.cn.wxwall.com http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn http://www.morning.rgmd.cn.gov.cn.rgmd.cn http://www.morning.ccphj.cn.gov.cn.ccphj.cn http://www.morning.lsqmb.cn.gov.cn.lsqmb.cn http://www.morning.qhrlb.cn.gov.cn.qhrlb.cn http://www.morning.rfgc.cn.gov.cn.rfgc.cn http://www.morning.pbzgj.cn.gov.cn.pbzgj.cn http://www.morning.qnsmk.cn.gov.cn.qnsmk.cn http://www.morning.fwcnx.cn.gov.cn.fwcnx.cn http://www.morning.lflnb.cn.gov.cn.lflnb.cn http://www.morning.jnrry.cn.gov.cn.jnrry.cn http://www.morning.aiai201.cn.gov.cn.aiai201.cn http://www.morning.nnpwg.cn.gov.cn.nnpwg.cn http://www.morning.qrmry.cn.gov.cn.qrmry.cn http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn http://www.morning.hhqtq.cn.gov.cn.hhqtq.cn http://www.morning.zsthg.cn.gov.cn.zsthg.cn http://www.morning.ynwdk.cn.gov.cn.ynwdk.cn