linux本地agent执行脚本_工具篇-pinpoint agent 一键部署脚本或思路

6f6fb14a8463129c0a309171d4367151.png

1、前情提要

PP作为一款优秀的全链路监控工具,在性能定位上便捷、高效!但在实际公司环境中,我们的性能环境时刻在变动中(资产有限),故在重新创建服务器后,需要手动配置介入PP的操作,比较繁琐。故设计以下自动化处理脚本,极大的减少工作量。

2、适用场景

1、公司的项目应用发布规范、服务命名规范、路径规范 ;

2、PP server端以及部署完成;

3、尤其适用用docker环境,以下脚本可以做成docker启动时自操作初始化脚本:docker创建-服务部署-运行脚本(注入pp agent相关配置),完全做到自动化;

4、当然在其他服务器上也可以操作,一般情况如果发布没什么规范而言,脚本化的效率不高,最多是吧PP agent 包作为镜像打到服务器上,部署应用后再手动配置应用了。

3、PP agent配置:熟悉pp的话,知道以下三个配置是最重要的,这也是需要我们参数化的对象。

IP地址为参数:10.2.35.68

appID 为参数:100001141

applicationName为参数:68-payment-route-api

4、手动操作思路:不熟悉shell的请自行学习,具体操作请根据实际情况修改!

2d773ef84fdd8291440e85764c74b4c8.png

5、脚本实现

*****************************************

#!/usr/bin/expect

#By Fresh.Qin

set ip [lindex $argv 0]

set appid [lindex $argv 1]

set appname [lindex $argv 2]

set timeout 3

spawn scp 195pinpoint-agent-1.5.2.tar.gz tester@$ip:/home/tester/

expect "password:"

send "你的密码r"

interact

set timeout 3

spawn ssh tester@$ip

expect "password:"

send "你的密码r"

expect "tester"

send "sudo sur"

expect "root"

send "cp 195pinpoint-agent-1.5.2.tar.gz /opt/ctrip/r"

expect "root"

send "chown deploy:deploy /opt/ctrip/195pinpoint-agent-1.5.2.tar.gzr"

expect "root"

send "su deployr"

expect "deploy"

send "cd /opt/ctrip/r"

expect "deploy"

send "tar -xzf 195pinpoint-agent-1.5.2.tar.gzr"

expect "deploy"

send "cd /opt/tars/apps/$appid/tomcat/binr"

expect "deploy"

send "sed -i '/Execute The Requested Command/iJAVA_OPTS="$JAVA_OPTS -javaagent:/opt/ctrip/pinpoint-agent-1.5.2/pinpoint-bootstrap-1.5.2.jar -Dpinpoint.agentId=$appid -Dpinpoint.applicationName=$appname"' catalina.shr"

expect "deploy"

send "sed -i '/Execute The Requested Command/iJAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=$ip -Dcom.sun.management.jmxremote.port=22222 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"' catalina.shr"

expect "deploy"

send "cd /opt/tars/apps/$appid/binr"

expect "deploy"

send "./shutdown.shr"

expect "deploy"

send "./startup.shr"

expect "deploy"

send "exitr"

expect "root"

send "exitr"

expect "tester"

send "exitr"

interact

************************************************

操作原理

1、宿主机(195),将本地的pinpoint agen包远程发送(scp)至目标服务机器;

2、从宿主机远程控制(ssh)目标服务器,完成用户切换、加压agent包、赋予权限等动作(都是没有deploy用户密码惹的祸);

3、使用查找+插入的方式,完成两个JAVA_OPTS参数注入到catalina.sh中(所以说如果重复操作脚本,此处会重复插入);

4、重启tomcat服务,退出远程服务机,返回宿主机,完成自动化配置。

附上完整执行过程:(到最后一步表示完全执行成功)

3607378549ed8faa2bd727c8e891229b.png

d214b92ded51e0a82230608222c28dbb.png

最后顺便附上手动配置JMX远程端口(JvisualVM监控使用)和PP agent的配置:

-Xms2048m -Xmx2048m -Djava.rmi.server.hostname=10.190.37.53 -Dcom.sun.management.jmxremote.port=22222 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -javaagent:/home/pinpoint-agent-1.8.3/pinpoint-bootstrap-1.8.3.jar -Dpinpoint.agentId=fh222 -Dpinpoint.applicationName=fh222

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值