详情页标题前

阿里云容器服务ACK应用监控-云淘科技

详情页1

对于部署在容器服务Kubernetes版中的Java应用,您可以使用应用实时监控服务ARMS对其进行监控,实现自动发现应用拓扑、自动生成3D拓扑、自动发现并监控接口、捕获异常事务和慢事务,大幅提升线上问题诊断的效率。

前提条件

  • 已创建Kubernetes集群。具体操作,请参见创建Kubernetes托管版集群或创建Kubernetes专有版集群。

  • 创建命名空间。具体操作,请参见管理命名空间与配额。本文示例中的命名空间为arms-demo

  • 检查您的JDK版本。ARMS应用监控支持的JDK版本如下:
    • JDK 1.7.0+重要 ARMS应用监控将于3.0.X探针版本终止支持Java 7,如果您还在使用Java 7,请尽快升级Java版本。更多信息,请参见ARMS应用监控终止支持Java 7的说明。
    • JDK 1.8.0_25+说明
      • Kubernetes集群应用部署建议:JDK 1.8.0_191+。
      • 如果JDK版本为1.8.0_25或者1.8.0_31,可能会出现无法安装探针的情况,请升级至1.8.X最新版本。
    • JDK 11.0.8+
    • JDK 17
  • 开通ARMS。

背景信息

应用实时监控服务ARMS(Application Real-Time Monitoring Service)是一款阿里云应用性能管理(APM)类监控产品。只要为部署在容器服务Kubernetes版中的Java应用安装ARMS应用监控组件,您无需修改任何代码,就能借助ARMS对Java应用进行全方位监控,以便您更快速地定位出错接口和慢接口、重现调用参数、检测内存泄漏、发现系统瓶颈,从而大幅提升线上问题诊断的效率。ARMS应用监控的详细信息请参见什么是应用监控。

步骤一:安装ARMS应用监控组件

重要 ACK旧版应用监控组件arms-pilot已不再维护,您可以安装升级后的ack-onepilot组件用于监控您的应用,ack-onepilot完全兼容arms-pilot,您无需修改应用配置即可无缝接入ack-onepilot。更多信息,请参见如何安装ack-onepilot和卸载arms-pilot。

  1. 登录容器服务管理控制台。
  2. 在左侧导航栏单击集群,然后在集群列表页面单击目标集群名称。
  3. 在左侧导航栏选择运维管理 > 组件管理,然后在右上角通过关键字搜索ack-onepilot
  4. ack-onepilot卡片上单击安装
  5. 在弹出的页面中可以配置相关的参数,建议使用默认值,单击确定说明 安装完成后,您可以在组件管理页面升级、配置或卸载ack-onepilot组件。

参数

说明

image

ack-onepilot组件镜像地址。

如果您是通过公网注册的外部集群,需要删除镜像参数中的VPC。例如,镜像参数为registry-vpc.cn-beijing.aliyuncs.com/ack-onepilot/ack-onepilot,删除VPC后的镜像参数为registry.cn-beijing.aliyuncs.com/ack-onepilot/ack-onepilot

AccessKey

您的阿里云AccessKeyId。AccessKey需要包含MSE访问权限。具体操作,请参见为集群授予MSE治理中心的访问权限。

AccessKeySecret

您的阿里云AccessKeySecret。

安装ack-onepilot组件大约需要2分钟,请耐心等待。

创建成功后,会自动跳转到目标集群的Helm页面,检查安装结果。若所有资源创建成功,则说明组件安装成功。

步骤二:授予ARMS资源的访问权限

  • 如果需监控ASK(容器服务Serverless版)或对接了ECI的集群应用,请在云资源访问授权页面完成授权,然后重启ack-onepilot组件下的所有Pod。
  • 如果需监控ACK集群应用,但ACK集群中不存在ARMS Addon Token,请执行以下操作手动为集群授予ARMS资源的访问权限。说明

    集群存在ARMS Addon Token时,ARMS会进行免密授权。Kubernetes托管版集群默认存在ARMS Addon Token,但对于部分早期创建的Kubernetes托管版集群,可能会存在没有ARMS Addon Token的情况,因此,对于Kubernetes托管版集群,建议首先检查ARMS Addon Token是否存在。若不存在,需进行手动授权。

    1. 登录容器服务管理控制台。
    2. 在左侧导航栏选择集群,然后单击目标集群名称。
    3. 在目标集群的集群信息页面上单击集群资源页签,然后单击Worker RAM角色右侧的链接。
    4. 在角色页面单击权限管理页签上的权限策略名称。
    5. 策略内容页签单击修改策略内容
    6. 脚本编辑页签中添加以下内容,然后单击继续编辑基本信息
      {
         "Action": "arms:*",
         "Resource": "*",
         "Effect": "Allow"
      }

      阿里云容器服务ACK应用监控-云淘科技

    7. 确认策略内容无误后,单击确定

步骤三:为Java应用开启ARMS应用监控

如需在创建新应用的同时开启ARMS应用监控,请完成以下操作。

  1. 在容器服务Kubernetes版控制台左侧导航栏单击集群,在集群列表页面上的目标集群右侧操作列单击应用管理

  2. 无状态页面右上角单击使用YAML创建资源

  3. 选择示例模板,并在模板(YAML格式)中将以下labels添加到spec.template.metadata层级下。

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: ""    #请将替换为您的应用名称。
      armsSecAutoEnable: "on"    #如果需要接入应用安全,则需要配置此参数。

    说明

    • 应用安全详情,请参见什么是应用安全。

    • 应用安全计费信息,请参见计费规则。

    阿里云容器服务ACK应用监控-云淘科技

    创建一个无状态(Deployment)应用并开启ARMS应用监控的完整YAML示例模板如下:

    展开查看完整实示例YAML文件

    apiVersion: v1
    kind: Namespace
    metadata:
      name: arms-demo
    ---
    apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
    kind: Deployment
    metadata:
      name: arms-springboot-demo
      namespace: arms-demo
      labels:
        app: arms-springboot-demo
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: arms-springboot-demo
      template:
        metadata:
          labels:
            app: arms-springboot-demo
            armsPilotAutoEnable: "on"
            armsPilotCreateAppName: "arms-k8s-demo"
            one-agent.jdk.version: "OpenJDK11"
        spec:
          containers:
            - resources:
                limits:
                  cpu: 0.5
              image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
              imagePullPolicy: Always
              name: arms-springboot-demo
              env:
                - name: SELF_INVOKE_SWITCH
                  value: "true"
                - name: COMPONENT_HOST
                  value: "arms-demo-component"
                - name: COMPONENT_PORT
                  value: "6666"
                - name: MYSQL_SERVICE_HOST
                  value: "arms-demo-mysql"
                - name: MYSQL_SERVICE_PORT
                  value: "3306"
    ---
    apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
    kind: Deployment
    metadata:
      name: arms-springboot-demo-subcomponent
      namespace: arms-demo
      labels:
        app: arms-springboot-demo-subcomponent
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: arms-springboot-demo-subcomponent
      template:
        metadata:
          labels:
            app: arms-springboot-demo-subcomponent
            armsPilotAutoEnable: "on"
            armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
            one-agent.jdk.version: "OpenJDK11"
        spec:
          containers:
            - resources:
                limits:
                  cpu: 0.5
              image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
              imagePullPolicy: Always
              name: arms-springboot-demo-subcomponent
              env:
                - name: SELF_INVOKE_SWITCH
                  value: "false"
                - name: MYSQL_SERVICE_HOST
                  value: "arms-demo-mysql"
                - name: MYSQL_SERVICE_PORT
                  value: "3306"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        name: arms-demo-component
      name: arms-demo-component
      namespace: arms-demo
    spec:
      ports:
        # the port that this service should serve on
        - name: arms-demo-component-svc
          port: 6666
          targetPort: 8888
      # label keys and values that must match in order to receive traffic for this service
      selector:
        app: arms-springboot-demo-subcomponent
    ---
    apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
    kind: Deployment
    metadata:
      name: arms-demo-mysql
      namespace: arms-demo
      labels:
        app: mysql
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: mysql
      template:
        metadata:
          labels:
            app: mysql
        spec:
          containers:
            - resources:
                limits:
                  cpu: 0.5
              image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1
              name: mysql
              ports:
                - containerPort: 3306
                  name: mysql
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        name: mysql
      name: arms-demo-mysql
      namespace: arms-demo
    spec:
      ports:
        # the port that this service should serve on
        - name: arms-mysql-svc
          port: 3306
          targetPort: 3306
      # label keys and values that must match in order to receive traffic for this service
      selector:
        app: mysql
    ---

执行结果

无状态页面上,目标应用的操作列将出现ARMS控制台按钮。

阿里云容器服务ACK应用监控-云淘科技

卸载探针

为集群下所有应用卸载探针

  1. 登录容器服务管理控制台。
  2. 在左侧导航栏单击集群,然后在集群列表页面单击目标集群名称。
  3. 在左侧导航栏选择运维管理 > 组件管理,然后在右上角通过关键字搜索ack-onepilot
  4. ack-onepilot卡片上单击卸载
  5. 在弹出的对话框中单击确定
  6. 重启您的业务Pod。

为集群下指定应用卸载探针

  1. 在容器服务管理控制台左侧导航栏单击集群,在集群列表页面上的目标集群右侧操作列单击应用管理
  2. 无状态页面目标应用右侧选择更多 > 查看Yaml
  3. 编辑YAML对话框中删除上文安装探针步骤三中添加的labels,然后单击更新
  4. 重启Pod。

后续步骤

完成上述步骤后,您就为部署在容器服务Kubernetes版中的应用开启了ARMS应用监控。在目标应用的操作列中单击ARMS控制台,将进入ARMS控制台的应用监控页面。更多信息,请参见应用总览。阿里云容器服务ACK应用监控-云淘科技

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/169065.html

(0)
上一篇 2023年12月10日 上午11:37
下一篇 2023年12月10日 上午11:40
详情页2

相关推荐

  • 阿里云RDS数据库创建数据库-云淘科技

    本文介绍如何为RDS MariaDB实例创建数据库。 前提条件 快速创建RDS MariaDB实例 概念 实例:实例是虚拟化的数据库服务器。您可以在一个实例中创建和管理多个数据库。 数据库:数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可以简单理解为存放数据的仓库。 字符集:字符集是数据库中字母、符号的集…

    阿里云数据库 2023年12月9日
  • 阿里云日志服务SLS创建Trace实例-云淘科技

    日志服务Trace实例用于管理各类已采集到的Trace数据,包括查询和分析Trace数据、查看Trace数据详情、查看服务指标等。本文介绍创建Trace实例的操作步骤。 操作步骤 登录日志服务控制台。 在日志应用区域的智能运维页签下,单击Trace服务。 单击创建实例。 在创建实例页面,配置如下参数,然后单击确定。 参数 描述 Trace实例名称 Trace…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云RDS数据库开启和关闭实例释放保护-云淘科技

    如果您的RDS PostgreSQL按量付费实例承载了关键业务,可以为按量付费实例开启实例释放保护,防止手动释放按量付费实例,有效避免因操作疏忽、团队成员沟通不及时等原因造成不可挽回的后果。本文为您介绍如何开启和关闭实例释放保护。 前提条件 实例的付费类型为按量付费。 注意事项 实例释放保护不能阻止因合理原因自动执行的释放行为,包括但不限于: 账号欠费超过1…

    阿里云数据库 2023年12月9日
  • 阿里云RDS数据库修改账号权限-云淘科技

    您可以按需修改普通账号和高权限账号的权限。超级权限账号拥有所有数据库权限,不涉及修改。 操作步骤 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。 在左侧导航栏中选择账号管理。 找到要修改权限的账号,单击修改权限。 在修改账号权限页面,变更账号权限。 修改要授权的数据库:选中数据库,单击或。 修改读写权限:在已授权数据库区块,将权限设置为读写(DM…

    阿里云数据库 2023年12月9日
  • 阿里云日志服务SLS项目监控-云淘科技

    日志服务提供项目监控仪表盘,用于监控日志服务Project。 前提条件 已在CloudLens for SLS应用中开启监控指标的采集。具体操作,请参见开启日志采集功能。 操作步骤 说明 项目监控仪表盘只支持查询分析最近30天内的数据。 登录日志服务控制台。 在Project列表区域,单击目标Project。 在页面左上方,选择 > 项目监控。 查看项…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。