局域网无外网的机器使用ai+ci的办法

java性能监控
java内网监控

#1

局域网中只有部分机子有外网,在外网服务器上搭建nginx,若不想为单点设备,可以使用keepalived进行虚拟IP绑定。
下面为nginx某端口的配置,配合附件中改过host以及port的配置文件,可以实现ai和ci的完美使用。
#另配合install脚本,可批量配置
ai下的shell脚本中是我的路径,下载使用附件时请修改到你们的tomcat/japp的标准路径。抛砖引玉,望各位大神多多指教。

#nginx_8087_port.conf

[root@DEAL05 vhost]# cat 8087.conf
server {
server_name 172.18.10.63 127.0.0.1;
listen 8087;
access_log logs/8087.log main;

location / {
    proxy_set_header X-Real-IP        $remote_addr;
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_pass https://tpm.oneapm.com:443/;
    proxy_redirect  default;
}	

location /infrastructure/ {
    proxy_set_header X-Real-IP        $remote_addr;
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_pass https://dc-cloud.oneapm.com/infrastructure/ ;
    proxy_redirect  default;
}	

}

#以下是批量安装的准备工作,有条件的可以使用Saltstack来统一配置
#ai_oneapm.properties
ssl = false
host = 172.18.10.63
port = 8087
license_key = 你们的key
app_name = YOURTAGNAME

#ai_install.sh
#!/bin/bash
dpath=dirname $PWD
path=basename $dpath
bpath=basename $PWD

unzip /data/client/OneAPM/ai/OneAPM_java_Agent_3.2.0.zip -d $PWD

if [ $dpath = “/mall/web” ] ; then
echo now edit start script on tomcat
tomcat_javaagent_num=cat ./bin/catalina.sh | grep javaagent | wc -l
if [ $tomcat_javaagent_num -gt 1 ];then
#大于1
echo $tomcat_javaagent_num
sed -i “/oneapm/,+2d” ./bin/catalina.sh
cd $PWD/OneAPM && java -jar oneapm.jar install
echo pwd=$PWD
echo basename=$bpath
sed -i “s/YOURTAGNAME/$bpath/g” oneapm.properties
fi

if [ $tomcat_javaagent_num -lt 1 ];then
#小于1
	cd $PWD/OneAPM && java -jar oneapm.jar install
	echo pwd=$PWD
	echo basename=$bpath
	sed -i "s/YOURTAGNAME/$bpath/g" oneapm.properties
fi

if [ $tomcat_javaagent_num -eq 1 ];then
#等于1
	cd $PWD/OneAPM 
	echo pwd=$PWD
	echo basename=$bpath
	sed -i "s/YOURTAGNAME/$bpath/g" oneapm.properties
fi

fi

if [ $dpath = “/mall/web/japp” ] ; then
echo now edit start script on japp
japp_javaagent_num=cat ./startup.sh | grep -o javaagent | wc -l
if [ $japp_javaagent_num -gt 1 ];then
#大于1
echo japp_javaagent_num
sed -i “s/-javaagent:./OneAPM/oneapm.jar//g” startup.sh
cd $PWD/OneAPM
echo pwd=$PWD
echo basename=$bpath
sed -i “s/YOURTAGNAME/$bpath/g” oneapm.properties
fi

if [ $japp_javaagent_num -lt 1 ];then
#小于1
	cp -a startup.sh startup.sh.`date +%Y%m%d%H%M%S`
	sed -i "s/\$EXT/\$EXT -javaagent:.\/OneAPM\/oneapm.jar/g" startup.sh
	cd $PWD/OneAPM
	echo pwd=$PWD
	echo basename=$bpath
	sed -i "s/YOURTAGNAME/$bpath/g" oneapm.properties
fi

if [ $japp_javaagent_num -eq 1 ];then
#等于1
	cd $PWD/OneAPM
	echo pwd=$PWD
	echo basename=$bpath
	sed -i "s/YOURTAGNAME/$bpath/g" oneapm.properties
fi

fi

#ci_oneapm-ci-agent.conf
ci_url:http://172.18.10.63:8087
skip_ssl_validation: yes
license_key: 你们的key
#ci_install.sh
mkdir -p /etc/oneapm-ci-agent/
cp -a /data/client/OneAPM/ci/oneapm-ci-agent.conf /etc/oneapm-ci-agent/
rpm -Uvh /data/client/OneAPM/ci/oneapm-ci-agent-4.1.0-1.x86_64.rpm
cp -a /data/client/OneAPM/ci/nginx.yaml /etc/oneapm-ci-agent/conf.d/nginx.yaml
/etc/init.d/oneapm-ci-agent restart

##使用方法
由于不能上传附件,所以贴出tree图
[root@CLIENT01 vhost]# tree /data/client/OneAPM/
/data/client/OneAPM/
|-- ai
| |-- install.sh
| |-- install.sh.bak
| |-- OneAPM_java_Agent_3.2.0.zip
| |-- oneapm.properties
| -- test.sh– ci
|-- install.sh
|-- nginx.yaml
|-- oneapm-ci-agent-4.0.0-1.x86_64.rpm
|-- oneapm-ci-agent-4.1.0-1.x86_64.rpm
`-- oneapm-ci-agent.conf

2 directories, 10 files

在「应用程序的根目录」sh /data/client/OneAPM/ai/install.sh 即可自动安装。多次安装也不会产生过多javaagent。


Cloud Insight安装及其一些体验心得
局域网能用你们的服务器吗?
#2

写的好棒,此帖我收了 :grinning:


#3

解决问题是个很有趣的过程


#4

叼叼的~~~~~~~


于分割了该主题 #5

1 个帖子被分离到了新主题:局域网无外网的机器使用 Ci 的办法


#6

感谢分享!新技能get√:clap: