问题现象

阿里云容器服务Kubernetes版集群中的Java应用安装Agent后,应用监控没有数据。

可能原因

应用所在Pod未被注入arms-init-container、应用YAML文件中无Labels注解以及STS服务未正确授权等原因都可能导致应用监控无数据。

解决方案

  1. 登录容器服务管理控制台
  2. 在左侧导航栏选择集群,在集群列表页面上的目标集群右侧操作列单击应用管理
  3. 容器组页签顶部选择您的应用所在的命名空间,然后单击目标应用右侧单击编辑
  4. 编辑YAML对话框中查看YAML文件中是否存在initContainers。
    db_am_ack_apppod_yaml
    • 如果不存在,则说明未被注入arms-init-container,执行步骤5
    • 如果存在,则说明已被注入arms-init-container,执行步骤8
  5. 容器组页签顶部选择命名空间ack-onepilot。查看Pod列表中是否存在名称前缀为ack-onepilot的Pod。
  6. 无状态有状态页签目标应用右侧操作列中选择更多 > 查看Yaml,在编辑YAML对话框查看YAML文件中是否存在以下Labels注解。
    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    //请将<your-deployment-name>替换为您的应用名称。
      one-agent.jdk.version: "OpenJDK11"    //如果应用的JDK版本是JDK11,则需要配置此参数。 
    • 如果存在,则执行步骤7
    • 如果不存在,则在编辑YAML对话框中的spec > template > metadata层级下添加以上Labels注解,然后单击更新
  7. 容器组页签目标应用右侧单击日志,查看ack-onepilot的Pod日志是否报STS错误,即提示"Message":"STS错误"
    • 如果报STS错误,则需为应用所在集群授权,并重启应用所在Pod。具体操作,请参见为容器服务Kubernetes版授权
    • 如果未报STS错误,则联系ARMS钉钉服务账号:arms160804。
  8. 容器组页签目标应用右侧单击编辑,在编辑YAML对话框中查看YAML文件中是否存在以下javaagent参数。
    -javaagent:/home/admin/.opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar
    • 如果存在,则单击容器组页签右侧的终端进入命令行页面,执行以下命令查看是否存在以.log为后缀的日志文件,然后联系ARMS钉钉服务账号:arms160804。
      cd /home/admin/.opt/ArmsAgent/logs
    • 如果不存在,则联系ARMS钉钉服务账号:arms160804。