centos部署压力测试工具jmeter

jmeter部署脚本:

more /opt/shell/soft/jmeter/install_jmeter.sh

#!/bin/bash
arg=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6 | awk '{print $2}' | tr -d "addr:"`
port=$1
a=#RMI_HOST_DEF
b=RMI_HOST_DEF
c=xxx.xxx.xxx.xxx
echo "开始安装java---------------"
cd /usr/local/src/jmeter
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /opt
chown -R root:root /opt/jdk1.8.0_181
cat > /etc/profile.d/java.sh << EOF
export PATH=\$PATH:/opt/jdk1.8.0_181/bin
EOF
source /etc/profile.d/java.sh
#环境优化
echo 15 > /proc/sys/net/ipv4/tcp_fin_timeout
echo "net.ipv4.tcp_timestamps = 0" >>/etc/sysctl.conf  
echo "net.ipv4.tcp_tw_reuse = 1" >>/etc/sysctl.conf  
echo "net.ipv4.tcp_tw_recycle = 1" >>/etc/sysctl.conf
sysctl  -p
echo "安装jmeter"
cd /usr/local/src/jmeter
tar -xzvf apache-jmeter-5.2.1.tgz
mv apache-jmeter-5.2.1 /opt/jmeter
mkdir /opt/jmeter/logs -p
cat > /etc/profile.d/jmeter.sh << EOF
export PATH=\$PATH:/opt/jmeter/bin
EOF
source /etc/profile.d/jmeter.sh

#cat >> /etc/profile << EOF
#JAVA_HOME=/opt/jdk1.8.0_181
#JMETER_HOME=/opt/jmeter
#CLASSPATH=$JAVA_HOME/lib/:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar
#PATH=$PATH:$JAVA_HOME/bin:$JMETER_HOME/bin
#export PATH JAVA_HOME JMETER_HOME CLASSPATH
#EOF

#echo "export PATH=$PATH:/opt/jdk1.8.0_181/bin" >>/etc/profile
#echo "export PATH=$PATH:/opt/jmeter/bin" >>/etc/profile
sed -i '263i server_port=1099' /opt/jmeter/bin/jmeter.properties
sed -i '301i server.rmi.localport=1099' /opt/jmeter/bin/jmeter.properties
sed -i '429i httpclient4.idletimeout=10000' /opt/jmeter/bin/jmeter.properties

sed -i "s/#server.rmi.ssl.disable=false/server.rmi.ssl.disable=true/g" /opt/jmeter/bin/jmeter.properties
echo "MI_HOST_DEF=-Djava.rmi.server.hostname=$arg" >>/opt/jmeter/bin/jmeter.properties
sed -i "s/$a/$b/g;s/$c/$arg/g" /opt/jmeter/bin/jmeter-server
#echo "RMI_HOST_DEF=-Djava.rmi.server.hostname=$arg" >>/opt/jmeter/bin/jmeter-server
sed -i 's/127.0.0.1/'$port'/g' /opt/jmeter/bin/jmeter.properties
#sed -i 's/^remote_hosts/\'$port'/g' /opt/jmeter/bin/jmeter.properties
supervisorctl update

jmeter配置supervisord文件:

more /opt/shell/soft/jmeter/jmeter.conf

[program:jmeter]
command=/opt/jmeter/bin/jmeter-server
directory=/opt/jmeter/bin
user=root
redirect_stderr=true
stderr_logfile=/opt/jmeter/logs/error.log
stdout_logfile=/opt/jmeter/logs/normal.log
autostart=true
autorestart=true
startsecs=30
startretries=10
stopsignal=INT
stopwaitsecs=10
stopasgroup=true
redirect_stderr=true
environment=JAVA_HOME=/opt/jdk1.8.0_181

ansible-playbook配置jmeter剧本

more /opt/shell/yaml/install_jmeter.yaml 
- hosts: "{{ host }}"
  tasks:
    - name: copy jmeter
      copy: src=/opt/shell/soft/jmeter dest=/usr/local/src
    - name: copy config
      copy: src=/opt/shell/soft/jmeter/jmeter.conf dest=/etc/supervisor/conf.d
    - name: install jmeter
      shell: /bin/bash /usr/local/src/jmeter/install_jmeter.sh {{ port }}

执行ansible-playbook剧本命令
ansible-playbook -i 172.21.17.167, /opt/shell/yaml/install_jmeter.yaml -e "host=172.21.17.167 port=127.0.0.1:1099" -k
配置文件:

ll /opt/shell/soft/jmeter/
total 242244
-rw-r--r-- 1 root root 62146506 Nov 25 2019 apache-jmeter-5.2.1.tgz
-rw-r--r-- 1 root root 2049 Sep 21 22:39 install_jmeter.sh
-rw-r--r-- 1 root root 185646832 Mar 31 14:43 jdk-8u181-linux-x64.tar.gz
-rw-r--r-- 1 root root 367 Apr 2 11:07 jmeter.conf

猜你喜欢

转载自blog.51cto.com/11676712/2536699