在Docker中安装Java Agent中时遇到可能遇到以下问题:

1、按正常流程部署后,若发现容器内的“JavaAgent/conf/app.conf文件中”SendProxy”的值是http://127.0.0.1:26789怎么办?

答:javaagent配置参数未注入,可通过以下方法排查,具体操作如下:

第一步:

hosts=`grep $(hostname) /etc/hosts | awk -F. '{print $1"."$2"."$3"."1}' | head -1`
curl http://${hosts}:27799/smartagent/getHostIP

第二步:

  • 如果能获取到值,则查看容器启动日志,查找错误信息,查看日志命令如下:docker logs <容器ID>

  • 如果未获取到值,则查看容器中的IP,把所有IP的第四位改成“1”,然后逐个执行如下命令(例如:IP为172.18.0.3):

curl 
http://172.18.0.1:27799/smartagent/getHostIP

直到可以获取到值,停止执行命令。然后把startup.sh中的

export hosts=${hosts}

      改为

export hosts=”172.18.0.1”

最后重新尝试打镜像,启动容器。

2、客户docker容器环境不支持bash,怎么办?

答: JavaAgent解决方式如下:

第一步,将JavaAgent目录中的javaagent.sh文件的开头#!/bin/bash 改为#!/bin/sh

第二步,将catalian.sh文件中的

bash /var/cloudwise/JavaAgent_2.0.14/javaagent.sh startindocker

改成

sh /var/cloudwise/JavaAgent_2.0.14/javaagent.sh startindocker

第三步,将JavaAgent目录中的javaagent.sh文件中的

if [[ "${_sendProxyFromSA}" =~ "127.0.0.1" ]];then

改为

result=$(echo ${_sendProxyFromSA} | grep "127.0.0.1")
if [[ "$result" != "" ]]