问题现象

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

可能原因

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

解决方案

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