您的位置:首页 > 其它

远程调试Ambari Metrics System

2017-03-08 18:13 260 查看
  Ambari Metric System(以下简称AMS)作为Ambari中用作监控的独立的模块,其核心即是一个TimelineServer,其具有自己的内在工作机制,类似一个WEB服务。如下图所示,是其在Ambari中的源码结构:

  

  


  因此针对Ambari Server 的远程调试,并不能同时调试AMS,毕竟它们的端口也不相同。如果想调试AMS,则必须要在AMS的启动参数中加上对应的调试说明。总结下AMS是如何启动的,首先在web界面点击启动,则Ambari Server会向agent发送命令,调用AMS的启动脚本,看一下这个启动脚本。

vi /var/lib/ambari-agent/cache/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_collector.py


  其中内容如下图所示:



  透过其启动脚本中可以看到,发现其最终是执行 /usr/sbin/ambari-metrics-collector 这个脚本start的,那么编辑这个脚本找到java的启动server的命令,添加调试参数:

  
  -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8081

  


  添加后即可得到如下图所示:

  


  以上一系列操作后,去Server端重启一下metrics,基本就可调试了,再然后就是在IDE中配置相关的调试参数,如下图添加的远程调试应用所示:

  


  填写上面指定的8081端口(注意:指定的端口可能被占用),如此,接下来便可以通过IDEA进行调试了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Metrics 调试 server