为什么ACK集群应用安装探针后没有监控数据?

可能原因

  1. 应用监控被暂停。

  2. 应用所在pod的探针没有被正确加载。

解决方案

步骤一:检查应用监控是否被暂停

  1. 登录ARMS控制台,在左侧导航栏选择应用监控 > 应用列表

  2. 应用列表页面顶部选择目标地域,然后单击目标应用名称。

    如果未找到目标应用,请参考步骤二继续排查。

  3. 新版控制台请在上方导航栏选择应用配置 > 自定义配置,在探针开关设置区域确认是否暂停应用监控。

    • 如果暂停应用监控开关被开启,请关闭开关,然后单击保存

    • 如果暂停应用监控开关保持关闭,请参考步骤二继续排查。

  4. 旧版控制台请在左侧导航栏中单击应用设置,然后在右侧页面单击自定义配置页签。在Agent开关配置区域确认Agent总开关是否开启。

    • 如果Agent总开关未开启,请打开Agent总开关,然后单击页面底部的保存

    • 如果Agent总开关已开启,请参考步骤二继续排查。

步骤二:检查探针是否被正确加载

  1. 登录容器服务管理控制台,在集群列表页面,单击目标集群名称进入集群详情页。

  2. 在左侧导航栏选择工作负载 > 容器组

  3. 容器组页面顶部选择您的应用所在的命名空间,然后单击目标应用右侧单击编辑

  4. 编辑YAML对话框中查看YAML文件中是否存在initContainers。

    db_am_ack_apppod_yaml

    • 如果不存在,则说明未被注入one-pilot-initcontainer,执行步骤5

    • 如果存在,则说明已被注入one-pilot-initcontainer,执行步骤8

  5. 工作负载 > 容器组页面顶部选择命名空间ack-onepilot。查看Pod列表中是否存在名称前缀为ack-onepilot的Pod。

  6. 工作负载下的无状态有状态页面目标应用右侧操作列中选择更多 > 查看Yaml,在编辑YAML对话框查看YAML文件中的spec.template.metadata层级下是否存在以下Labels注解。

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    #请将<your-deployment-name>替换为您的应用名称。
      armsSecAutoEnable: "on"    #如果需要接入应用安全,则需要配置此参数。
    • 如果存在,则执行步骤7

    • 如果不存在,则在编辑YAML对话框中的spec.template.metadata层级下添加以上Labels注解,然后单击更新

  7. 工作负载 > 容器组页面目标应用右侧单击日志,查看ack-onepilot的Pod日志是否报STS错误,即提示"Message":"STS错误"

  8. 工作负载 > 容器组页面目标应用右侧单击编辑,在编辑YAML对话框中查看YAML文件中是否存在以下javaagent参数。

    -javaagent:/home/admin/.opt/ArmsAgent/aliyun-java-agent.jar
    说明

    如果您使用的探针版本在2.7.3.5以下,请将本文中的aliyun-java-agent.jar替换为arms-bootstrap-1.7.0-SNAPSHOT.jar。建议您尽快将探针升级至最新版本。

    • 如果存在,则单击容器组页面右侧的终端进入命令行页面,执行以下命令查看是否存在以.log为后缀的日志文件,然后提交工单

      cd /home/admin/.opt/ArmsAgent/logs
    • 如果不存在,请提交工单

相关文档

Java应用监控网络配置