zabbix之自动发现Tomcat多实例

单一实例手动部署:https://www.cnblogs.com/huangyanqi/p/8522526.html

主要应对多实例

约定:

  zbbix配置文件:

  脚本文件:

      其他文件:/tmp/

  1、下载catalina-jmx-remote.jar

放置到/tmp/目录下:(需墙)

下载地址:http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.52/bin/extras/catalina-jmx-remote.jar

  1、第一个脚本

[root@agent scripts]#vim add_service_tomcat.sh

#!/bin/bash 

t_datadir=`find /application/tomcat*/bin/ -name catalina.sh|awk -F "/bin/catalina.sh" '{print $1}'`
tomcat_no=`find /application/tomcat*/bin/ -name catalina.sh|awk -F "/bin/catalina.sh" '{print $1}'|wc -l`

n_port=12345
local_ip=`ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $3}'`
for tomcat in $t_datadir
do
    m_no=`cat -n $tomcat/bin/catalina.sh|grep 'Execute The Requested Command'|awk '{print $1}'`
    cp $tomcat/bin/catalina.sh  $tomcat/bin/catalina.sh_bak
### #cp /tmp/catalina-jmx-remote.jar  $tomcat/lib/catalina-jmx-remote.jar
    sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"'  $tomcat/bin/catalina.sh            #插入监控配置
    let "m_no=m_no+1"                                                                                                          #设置行号
    sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname='$local_ip'"' $tomcat/bin/catalina.sh     #插入监控配置
    let "m_no=m_no+1"                                                                                                          #设置行号
#    sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port='$n_port'"' $tomcat/bin/catalina.sh  #插入监控配置
#    let "m_no=m_no+1"                                                                                                           #设置行号
    sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"' $tomcat/bin/catalina.sh    #插入监控配置
    let "m_no=m_no+1"                                                                                                           #设置行号
    sed -i ''$m_no'a export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"' $tomcat/bin/catalina.sh  #插入监控配置
#    let "n_port=n_port+1"
done

#server.mxl
#M_mxlfind=`find /application/tomcat*/conf/server.xml -name server.xml | awk -F "/conf/server.xml" '{print $1}'`
#Smxl_no=`find /application/tomcat*/conf/server.xml -name server.xml | awk -F "/conf/server.xml" '{print $1}'|wc -l`
for Mxl in $t_datadir
do
        S_hc=`cat -n $Mxl/conf/server.xml|grep 'ThreadLocalLeakPreventionListener'|awk '{print $1}'`
#       let "Smxl_no=Smxl_no+1" 
        cp $Mxl/conf/server.xml $Mxl/conf/server.xml_bak
        sed -i ''$S_hc'a \\ <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="'$n_port'" rmiServerPortPlatform="'$n_port'"/>' $Mxl/conf/server.xml
#    let "Smxl_no=Smxl_no+1" 
    let "n_port=n_port+1"
done

ip=`ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $3}'`
add_service_tomcat.sh

猜你喜欢

转载自www.cnblogs.com/huangyanqi/p/9243085.html
今日推荐