You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppDynamics添加Java层级代理无法注册、主机解析失败排查

AppDynamics Java代理注册失败/UnknownHostException排查方案

核心报错对应根因

你遇到的java.net.UnknownHostException、https: Name or service not known、Auth Service broken问题,和提前创建Tier的操作无关,绝大多数是配置格式不兼容或者容器网络配置问题,按以下步骤逐一排查修复:

1. 首先修复controller-info.xml的3个配置错误

Python代理对不规范配置的容错性更高,所以Python侧正常但Java侧报错,你当前的XML配置存在3个Java代理无法兼容的写法:

  • 标签闭合错误:<controller-host>my host url<//>是非法XML写法,结束标签必须完整写为</controller-host>,否则Java代理解析配置时会读到空值或错误值
  • controller-host值格式错误:该字段只能填纯域名/IP,绝对不能带https://或http://协议前缀。Java代理不会自动拆分协议头,如果你带了https://前缀,代理会把https当做主机名去解析,刚好对应你日志里https: Name or service not known的报错
  • SSL配置值错误:<controller-ssl-enabled>字段Java代理只识别true/false两个值,不识别Python侧兼容的on值,填on会导致代理误判为关闭SSL,用HTTP协议去连443端口
    修正后的合法配置参考:
<?xml version="1.0" encoding="UTF-8"?>
<controller-info>
    <controller-host>填写你的Controller纯域名,不带任何协议前缀</controller-host>
    <account-access-key>my key</account-access-key>
    <controller-port>443</controller-port>
    <controller-ssl-enabled>true</controller-ssl-enabled>
    <application-name>myapplication</application-name>
    <account-name>myaccount</account-name>
    <node-name>mynode</node-name>
    <tier-name>mytier</tier-name>
</controller-info>

2. 校验Java容器的网络连通性

不要以其他容器/宿主机的连通性为准,必须进入运行Java应用的Docker容器内部实测:

  • 执行域名解析测试:nslookup 你配置的Controller纯域名,如果解析失败,说明当前容器的DNS配置有误,检查Docker启动参数里的DNS配置、宿主机防火墙规则、K8s环境下的CoreDNS服务状态
  • 执行端口连通性测试:curl -vk https://你配置的Controller纯域名:443,如果连接超时,检查容器网络是否放通到Controller的443端口出站规则

3. 修复启动配置和权限问题

  • 你贴的启动命令存在语法错误,末尾的application.jar少了闭合单引号,修正后的正确启动命令为:
    java -javaagent:/opt/appdynamics/ver22.4.0.33722/javaagent.jar -jar application.jar
    
    如果是Dockerfile的ENTRYPOINT数组写法,修正为:
    ENTRYPOINT ["java", "-javaagent:/opt/appdynamics/ver22.4.0.33722/javaagent.jar", "-jar", "application.jar"]
    
  • 确认AppDynamics代理目录的权限:Java进程启动用户必须对/opt/appdynamics/ver22.4.0.33722/目录有完整读写权限,否则代理无法解压临时组件、写入日志,会出现组件启动失败的报错,可以在Dockerfile中添加赋权命令(替换为你实际的Java进程启动用户):
    RUN chown -R appuser:appuser /opt/appdynamics/
    

验证结果

配置修正后重启应用,查看agent.log,如果出现Agent registered successfully类日志,再去控制台的Tiers & Nodes页面就能看到Java节点上报的数据。日志里提到的Argento Agent是AppDynamics的内嵌下一代采集组件,主代理连通Controller后会自动启动,不需要额外配置。

内容的提问来源于stack exchange,提问作者Carabes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:36:19