linux cpu占用率如何看
354
2022-09-13
APM监控系统 微服务接入SkyWalking
微服务监控需求
随着微服务架构的流行, 服务按照不同的维度进行拆分 ,一次请求往往需要涉及到多个服务。这些服务可能不同编程语言开发,不同团队开发,可能部署很多副本。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。“APM系统” 就在这样的问题背景下产生了。
APM系统 从整体维度到局部维度展示各项指标 ,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间。
APM监控系统是什么
APM(ApplicationPerformance Management) 是一种应用性能监控工具,通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应用的全链路性能监测。
相比接触的Prometheus、Zabbix这类监控系统,APM系统主要监控对应用程序内部,例如:
• 请求链路追踪:通过分析服务调用关系,绘制运行时拓扑信息,可视化展示
• 调用情况衡量:各个调用环节的性能分析,例如吞吐量、响应时间、错误次数
• 运行情况反馈:告警,通过调用链结合业务日志快速定位错误信息
APM监控系统选择依据
APM类监控系统有:Skywalking、Pinpoint、Zipkin
关于选型,可以从以下方面考虑:
• 探针的性能消耗
APM组件服务的影响应该做到足够小,数据分析要快,性能占用小。
• 代码的侵入性
即也作为业务组件,应当尽可能少入侵或者无入侵其他业务系统,对于使用方透明,减少开发人员的负担。
• 监控维度
分析的维度尽可能多。
• 可扩展性
一个优秀的调用跟踪系统必须支持分布式部署,具备良好的可扩展性。能够支持的组件越多当然越好
Skywalking介绍
Skywalking 是一个分布式应用程序性能监控系统,针对微服务体系结构而设计。
功能:
• 多种监控手段。可以通过语言探针和 service mesh 获得监控是数据。
• 多个语言自动探针。包括 Java,.NET Core 和 Node.JS。
• 轻量高效。无需大数据平台,和大量的服务器资源。
• 模块化。UI、存储、集群管理都有多种机制可选。
• 支持告警。
• 优秀的可视化解决方案
Skywalking架构
Skywalking部署
1、部署ES数据库
docker run --name elasticsearch -p 9200:9200 -e "discovery.type=single-node" -d elasticsearch:7.7.0
2、部署Skywalking OAP
软件包下载地址:install java-11-openjdk –ytar zxvf apache-skywalking-apm-es7-8.3.0.tar.gzcd apache-skywalking-apm-bin-es7/
[root@monitor apache-skywalking-apm-bin-es7]# lsagent bin config LICENSE licenses NOTICE oap-libs README.txt tools webapp#使用哪块配置storage: selector: ${SW_STORAGE:elasticsearch7}#指定使用具体IP地址 elasticsearch7: nameSpace: ${SW_NAMESPACE:""} clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:9200}#启动OAP和UI[root@monitor bin]# ./startup.sh SkyWalking OAP started successfully!SkyWalking Web Application started successfully![root@monitor apache-skywalking-apm-bin-es7]# cd logs/[root@monitor logs]# lsoap.log skywalking-oap-server.log webapp-console.log webapp.log[root@monitor logs]# tail -f skywalking-oap-server.log [root@monitor logs]# netstat -tpln | grep -w 8080tcp6 0 0 :::8080 :::* LISTEN 14641/java
微服务接入监控
内置Agent包路径:apache-skywalking-apm-bin-es7/agent/
启动Java程序以探针方式集成Agent:
java -jar -javaagent:/skywalking/skywalking-agent.jar=agent.service_name=<项目名称>,agent.instance_name=<实例名称>,collector.backend_service=
[root@master product-service]# cd product-service-biz/[root@master product-service-biz]# lsDockerfile pom.xml skywalking src[root@master product-service-biz]# cat Dockerfile FROM lizhenliang/java:8-jdk-alpineLABEL maintainer ctnrs.comCOPY ./target/product-service-biz.jar ./COPY skywalking /skywalkingEXPOSE 8010CMD java -jar -javaagent:/skywalking/skywalking-agent.jar=agent.service_name=ms-product,agent.instance_name=$(echo $HOSTNAME | awk -F- '{print $1"-"$NF}'),collector.backend_service=192.168.31.90:11800 /product-service-biz.jar[root@master order-service-biz]# kubectl get pod -n msNAME READY STATUS RESTARTS AGEeureka-0 1/1 Running 1 27deureka-1 1/1 Running 1 27deureka-2 1/1 Running 1 27dgateway-fcdff7b65-2jn7f 1/1 Running 1 36dorder-5775448c6-rz74g 1/1 Running 1 36dportal-586dbdfc8-hm85c 1/1 Running 1 36dproduct-69b4846b89-tbzsh 1/1 Running 0 15mstock-67d849958d-5jk5v 1/1 Running 0 3m41s[root@master order-service-biz]# HOSTNAME=product-69b4846b89-tbzsh[root@master order-service-biz]# echo $HOSTNAME | awk -F- '{print $1"-"$NF}'product-tbzsh[root@master product-service-biz]# docker build -t reg.harbor.com/microservice/product:skywalking .Sending build context to Docker daemon 96.2MBStep 1/6 : FROM java:8-jdk-alpine ---> 3fd9dd82815cStep 2/6 : RUN apk add -U tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ---> Using cache ---> 3d79cdf17999Step 3/6 : COPY ./target/product-service-biz.jar ./ ---> Using cache ---> af45498b45deStep 4/6 : COPY skywalking /skywalking ---> 972d1d84872bStep 5/6 : EXPOSE 8010 ---> Running in 35409311758bRemoving intermediate container 35409311758b ---> 1ce48f156ad9Step 6/6 : CMD java -jar -javaagent:/skywalking/skywalking-agent.jar=agent.service_name=ms-product,agent.instance_name=$(echo $HOSTNAME | awk -F- '{print $1"-"$NF}'),collector.backend_service=192.168.0.13:11800 /product-service-biz.jar ---> Running in b43839309d41Removing intermediate container b43839309d41 ---> 67c0ec036979Successfully built 67c0ec036979Successfully tagged reg.harbor.com/microservice/product:skywalking[root@master product-service-biz]# docker push reg.harbor.com/microservice/product:skywalkingThe push refers to repository [reg.harbor.com/microservice/product]b594484b0bd9: Pushed a7eb54fcd329: Layer already exists 1a6781d58798: Layer already exists a1e7033f082e: Layer already exists 78075328e0da: Layer already exists 9f8566ee5135: Layer already exists skywalking: digest: sha256:a7205a5e0b823b65006a711af155206d615371a2101ed1b36c4d264c8335fad4 size: 1582
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~