Zabbix使用自动发现功能监控服务器各JVM进程状态(3)

好了,上面就是我找到的一些对jstat获取的数据意思的统计,各位看官可以做个参考。
好了,这一章的内容到此基本结束,前面的东西都是一些理论类的东西,没有实际的操作。俗话说,光说不练假把式。接下来,我们将开启下一章的旅程,脚本+jstat的使用。
第三章:脚本+jstat获取数据
首先,我们来看一下该章节介绍的几个脚本吧:
1.jvm_list.sh 获取该机器上所有运行的JVM的进程对应的程序根目录以及程序名称
2.get_jvmlist.sh 将获取的该机器上的所有进程对应的程序名称序列化成json格式并发送给zabbix服务器
3.get_jvmstatus.sh 通过获取的程序根目录获取到对应的程序进程,再通过jstat抓取数据写入到文件中缓存
4.set_jvmstatus.sh zabbix通过调用该脚本获取缓存文件中的关于某个JVM进程的状态信息
好了,简单介绍了上面几个脚本的功能,下面我们列出这几个脚本的实际内容:
    #cat jvm_list.sh 
    #!/bin/bash
     
    packagePath=/usr/local/etc/scripts/package_path.txt
    echo -n >$packagePath
     
    for i in `ps -fC java|tail -n +2|grep -v 'flume'|awk '{print $2}'`;
    do
            pgrootpath=`ls -l /proc/$i/cwd|awk '{print $NF}'`
            if [[ -r $pgrootpath/appconfig ]] && [  `grep ^packagename= $pgrootpath/appconfig|wc -l`==1 ];then
                            packagename=$(grep ^packagename= $pgrootpath/appconfig 2>/dev/null|awk -F'"' '{print $2}')
            elif [[ -r $pgrootpath/webconfig ]] && [  `grep ^packagename= $pgrootpath/webconfig|wc -l`==1 ];then
                            packagename=$(grep ^packagename= $pgrootpath/webconfig 2>/dev/null|awk -F'"' '{print $2}')
            else
                    packagename=$(basename $pgrootpath)-1.0.0-bin.tar.gz
            fi
     
            echo "$packagename $pgrootpath" >> $packagePath
    done

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6ba62603ccf1355ae41cbdd8c7ccf802.html