skywalking agent监控java服务

这篇具有很好参考价值的文章主要介绍了skywalking agent监控java服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

skywalking agent可以监控的服务类型有多种,python、go、java、nodejs服务等都可以监控,现在通过java服务来演示skywalking agent的使用,并且是使用容器的方式实现

二、部署skywalking agent监控

需要注意,skywalking agent服务也是需要使用java服务的,所以需要使用跟java服务对应的版本,我这边java服务使用的是jdk11版本,所以skywalking agent也需要用支持java11的版本,在skywalking官网的下载页面中有说到images的下载

官网路径:Downloads | Apache SkyWalking

skywalking agent监控java服务,skywalking,skywalking

 image路径:https://hub.docker.com/r/apache/skywalking-java-agent

 skywalking agent监控java服务,skywalking,skywalking

 现在通过容器的方式去调用skywalking agent监控java服务

编辑yaml配置

vi k8s-cs.yaml

apiVersion: apps/v1
kind: Deployment
metadata: 
  labels:
    app: k8s-cs
  name: k8s-cs
  namespace: k8s-cs
spec:
  replicas: 5
  progressDeadlineSeconds: 600
  minReadySeconds: 10
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  selector:
    matchLabels:
      app: k8s-cs
  template:
    metadata:
      labels:
        app: k8s-cs
    spec:
      volumes:     #使用临时挂载的方式创建存放skywalking-agent文件的目录
      - name: skywalking-agent
        emptyDir: {}
      initContainers:    #使用初始化容器的方式去启动skywalking-agent容器,在该容器执行完成后,就会启动后面指定的容器
      - name: skywalking-agent-container
        image: apache/skywalking-java-agent:8.7.0-alpine    #使用skywalkinag-agent镜像
        volumeMounts:
        - name: skywalking-agent   #挂载临时目录
          mountPath: /agent      #将临时目录挂载到agent目录
        command: ["/bin/sh"]   #执行命令
        args: ["-c","cp -R /skywalking/agent /agent/"]  #将容器中/skywalking/agent目录下的所有文件都拷贝到挂载的临时目录中,相当于skywalking-agent服务的所有文件都要拷贝走
      containers:    #配置java服务容器
      - name: k8s-cs
        image: harbor.apex.com/jdk/k8s-cs:jenkins-k8s-cs-217-02d8c7a
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8761
        readinessProbe:
          httpGet:
            path: /
            port: 8761
            scheme: HTTP
          initialDelaySeconds: 30
          periodSeconds: 10
          timeoutSeconds: 2
          successThreshold: 1
          failureThreshold: 2
        livenessProbe:
          tcpSocket:
            port: 8761
          initialDelaySeconds: 30
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 2
          failureThreshold: 2 
        env:                  #配置环境变量,以下变量在启动java服务的时候都需要使用
        - name: JAVA_TOOL_OPTIONS     #定义使用skywalking-agent服务的变量
          value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
        - name: SW_AGENT_NAME    #定义skywalking-agent服务的名称
          value: "-DSW_AGENT_NAME=k8s-cs"
        - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES   #指定skywalking opa服务的地址
          value: "-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=10.1.60.115:11800"
        volumeMounts:            #挂载临时目录,因为上面使用此临时目录已经拷贝了skywalking-agent服务的文件,所以在java服务的容器中挂载然后使用就可以了
        - name: skywalking-agent
          mountPath: /skywalking   #将临时目录挂载到/skywalking目录下,容器没有该目录时会自动创建
      imagePullSecrets:
      - name: harbor-secret
      restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name: k8s-cs
  namespace: k8s-cs
spec:
  selector:
    app: k8s-cs
  type: NodePort
  clusterIP:
  ports:
    - port: 8761
      targetPort: 8761
      nodePort: 30003
      protocol: TCP

以上就是容器化使用skywalking agent的方式,接下来再看一下dockerfile是如何在启动java服务时调用skywalking agent服务的,一般来说使用skywalking agent服务只需要用到上面yaml文件中的三个变量即可,即指定skywalking agent服务的jar包,定义服务的名称,指定skywalking oap服务的地址

cat dockerfile

FROM harbor.apex.com/base_image/jdk11_image:latest
ENV JVM_OPTS="-Xms512m -Xms512m"
ENV HEAP_DUMP_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/java_jar/log"
RUN mkdir -p /opt/java_jar/log
WORKDIR /opt/java_jar/
COPY ./target/*.jar ./
EXPOSE 8761
#在启动java服务时应用为skywalking agent定义的三个变量,另外两个是定义java服务的
ENTRYPOINT java ${JAVA_TOOL_OPTIONS} ${SW_AGENT_NAME} ${SW_AGENT_COLLECTOR_BACKEND_SERVICES} ${JVM_OPTS} ${HEAP_DUMP_OPTS} -jar *.jar

执行该yaml生成容器

skywalking agent监控java服务,skywalking,skywalking

查看skywalking web看是否有监控到该java服务

 skywalking agent监控java服务,skywalking,skywalking

skywalking agent监控java服务,skywalking,skywalking

在额外的讲解一下,关于skywalking agent服务的问题,我们通过进入 skywalking agent的容器中了解

skywalking agent监控java服务,skywalking,skywalking

 可以看到容器中的/skywalking/anget目录下有多个skywalking agent服务的文件,其中skywalking-agent.jar是要在启动java服务时去调用的,但是不能单单只要该jar服务,不然会报错,需要把该目录下的所有文件都拷贝走,在启动该jar服务的时候,会调用到该目录下的其它文件

接下来再看一下java容器的变量

skywalking agent监控java服务,skywalking,skywalking

可以看到无论是dockerfile定义的环境变量,还是yaml定义的环境变量,都被应用到了java的容器中 ,再来看一下挂载的临时目录

skywalking agent监控java服务,skywalking,skywalking

可以看到也是正常挂载进来了

将java服务和skywalking agent服务分开来部署主要是为了,在有需求要升级skywalking agent的版本时,避免影响java服务的版本,如果两个服务部署到一起,在使用升级版本的skywalking agent服务后又要重新进行镜像的构造 文章来源地址https://www.toymoban.com/news/detail-679402.html

到了这里,关于skywalking agent监控java服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【业务功能109】微服务-springcloud-springboot-Skywalking-链路追踪-监控

    skywalking 是一个apm系统,包含监控,追踪,并拥有故障诊断能力的 分布式 系统   Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint /CAT 的设计思路。特点是:支持多种插件,UI功能较强,支持非侵入式埋点。目前使用厂商最多,版

    2024年02月08日
    浏览(56)
  • 安装及配置zabbix_agent代理端(监控FTP服务器)

    监控agent的linux主机我们在之前的文章里已经做好了 现在直接安装ftp服务即可             监控成功

    2024年02月16日
    浏览(37)
  • 案例实践丨基于SkyWalking全链路监控的微服务系统性能调优实践篇

    1背景 随着开源社区和云计算的快速推进,云原生微服务作为新型应用系统的核心架构,得到了越来越广泛的应用。根据Gartner对微服务的定义:“微服务是范围狭窄、封装紧密、松散耦合、可独立部署且可独立伸缩的应用程序组件。” 微服务之父,马丁.福勒,对微服务概述

    2024年02月09日
    浏览(37)
  • skywalking agent使用kafka数据传输

    安装Zookeeper 下载相应版本的zookeeper 解压文件 进入conf目录下,复制zoo_sample.cfg文件,这个是官方提供的配置样例,我们修改复制的文件名称未zoo.cfg。 进入bin目录,启动zookeeper 安装Kafka 下载对应版本的kafka 解压文件 修改config/server.properties文件 启动kafka 启动项目 服务层 修改

    2024年02月15日
    浏览(57)
  • java agent 实战 监控Elasticsearch(只需依赖一个jar 完全无侵入式)解决jar启动问题

    agent是什么大家应该很熟悉了,今天我们来实战下,效果就是为项目所有elasticsearch请求方法增加耗时告警! 学会Java Agent你能做什么? 自动添加getter/setter方法的工具lombok就使用了这一技术 btrace、Arthas和housemd等动态诊断工具也是用了instrument技术 Intellij idea 的 HotSwap、Jrebel 等也

    2024年02月16日
    浏览(38)
  • skywalking全链路监控部署

    环境配置要求 Centos 7 jdk1.8.0.144 elasticsearch 7.8.1 skyWalking 3.2.6 一、安装jdk1.8 创建相关目录,解压安装包,解压并移动到jdk目录下 设置环境变量,查看jdk版本 二、安装elasticsearch 2.1、创建用户elasticsearch useradd es passwd es 2.2、下载elasticsearch7.8.1,并解压到相关目录 2.3、修改系统参

    2024年02月08日
    浏览(36)
  • SkyWalking-开源应用性能监控系统

    目录 一,概述 1.1 特点 1.2 使用场景 1.3 功能 1.4 总体架构 二、安装与配置 2.1 搭建SkyWalking 2.2 搭建SkyWalking OAP服务 2.3 SkyWalking UI 搭建 2.4 skywalking-oap-server端口介绍 2.5 SkyWalking Agent 2.6 skywalking-tomcat SkyWalking是一个分布式追踪、服务网格和应用程序性能管理系统,它可以帮助用户

    2024年02月03日
    浏览(52)
  • Skywalking9.4.0部署监控项目

    SkyWalking是国内开源的基于字节码注入的调用链分析以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前使用厂商最多,版本更新较快,已成为 Apache 基金会顶级项目。 它有哪些功能呢? 多种监控手段。可以通过语言探针和 service mesh 获得监控

    2024年02月07日
    浏览(50)
  • SkyWalking监控工具部署配置(单机模式:standalone)

    一、下载软件: 以最新版本8.9.0为例: 下载地址: https://skywalking.apache.org/downloads/ 1.下载APM监控平台程序: 2.下载代理探针工具程序: 2.解压下载的文件:  二、配置文件 1.配置APM:本机使用的话基本不用改动 配置文件位置:E:softwareapache-skywalking-apm-binconfigapplication.yml 2

    2024年02月16日
    浏览(46)
  • SkyWalking_apm性能监控指标介绍

    什么是skywalking Skywalking概述: 一个优秀的项目,除了具有高拓展的架构、高性能的方案、高质量的代码之外,还应该在上线后具备多角度的监控功能。现在企业中的监控服务也有很多,Skywalking除了提供多维度、多粒度的监控之外,也提供了良好的图形化界面以及性能剖析、服

    2023年04月20日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包