在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" != "" ]]