doina

一个小菜鸟运维工程师.

Zabbix 自动发现tomcat并添加监控

客户端配置

#新增下面2条配置
UserParameter=discover.tomcat[*],sudo /usr/local/zabbix/etc/discover_tomcat.sh
UserParameter=discover.tomcat.item[*],sudo /usr/local/zabbix/etc/discover_tomcat_item.sh $1 $2

#修改sudoer文件

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
zabbix          ALL=(ALL)       NOPASSWD: /usr/local/zabbix/etc/discover_tomcat.sh,/usr/local/zabbix/etc/discover_tomcat_item.sh *

脚本内容

discover_tomcat.sh脚本, 用于发现运行中的tomcat

# cat /usr/local/zabbix/etc/discover_tomcat.sh
#!/bin/bash
# author: baiyongjie

array=($(ps -ef|grep java | grep -Ev "grep|cronolog|catalina.sh|DocumentService-1.2.jar|felix.jar|deploy.jar"| awk '{print $(NF-3)}' |sed 's/-Dcatalina.home=//g'| sed 's/\(.*\)/\1\//g'))
printf "{\n"
printf '\t"data":[\n'
for ((i=0;i<${#array[@]};i++))
do
    printf '\t\t{\n'
    num=$(echo $((${#array[@]}-1)))
    if [ "$i" == ${num} ];
    then
        printf "\t\t\"{#TOMCAT}\":\"${array[$i]}\"}\n"
    else
        printf "\t\t\"{#TOMCAT}\":\"${array[$i]}\"},\n"
    fi
done
printf "\t]\n"
printf "}\n"

discover_tomcat_item.sh脚本

# 用自动发现的tomcat去请求数据以及监控项配置
# cat /usr/local/zabbix/etc/discover_tomcat_item.sh 
#!/bin/bash

JavaPid=`ps -ef|grep $1 | grep -Ev  'grep|discover_tomcat|/bin/sh|cronolog' |awk '{print $2}'`
JavaHome=`ps -ef|grep $1 | grep -Ev  'grep|discover_tomcat|/bin/sh|cronolog' |awk '{print $8}' |sed 's/\(.*[1-9]\).*/\1/g' | awk '{print $1}'`

function Survivor0 { 
$JavaHome/bin/jstat -gcutil $JavaPid | awk 'NR==2 {print $1}'
} 
function Survivor1 { 
$JavaHome/bin/jstat -gcutil $JavaPid | awk 'NR==2 {print $2}'
} 
function Eden { 
$JavaHome/bin/jstat -gcutil $JavaPid | awk 'NR==2 {print $3}'
} 
function Old { 
$JavaHome/bin/jstat -gcutil $JavaPid | awk 'NR==2 {print $4}'
} 
function Perm { 
$JavaHome/bin/jstat -gcutil $JavaPid | awk 'NR==2 {print $5}'
} 
function Metaspace { 
$JavaHome/bin/jstat -gcutil $JavaPid | awk 'NR==2 {print $5}'
} 

$2

重启zabbix agent

pkill zabbix_agentd
/usr/local/zabbix/sbin/zabbix_agentd 

服务端测试

自动发现tomcat

[root@localhost tmp]# zabbix_get  -s 192.168.1.162 -k discover.tomcat
{
        "data":[
                {
                "{#TOMCAT}":"/opt/app/sfa_sunflower/web_6501/"},
                {
                "{#TOMCAT}":"/opt/app/sfa_sunflower/mobile_6502/"},
                {
                "{#TOMCAT}":"/data/app/sfa/mnzw_pre_20180607/task/"},
                {
                "{#TOMCAT}":"/opt/app/mnzw_pressure_test/web/"},
                {
                "{#TOMCAT}":"/data/app/sfa/mnzw_pre_20180607/web/"},
                {
                "{#TOMCAT}":"/opt/app/mnzw_pressure_test/mobile/"},
                {
                "{#TOMCAT}":"/opt/app/SFA_Guoyuanlaonong_20181101/"}
        ]
}

监控项

[root@localhost tmp]# zabbix_get  -s 192.168.1.162 -k discover.tomcat.item[/opt/app/sfa_sunflower/web_6501/,Survivor0]
35.00
[root@localhost tmp]# zabbix_get  -s 192.168.1.162 -k discover.tomcat.item[/opt/app/sfa_sunflower/web_6501/,Survivor1]
0.00
[root@localhost tmp]# zabbix_get  -s 192.168.1.162 -k discover.tomcat.item[/opt/app/sfa_sunflower/web_6501/,Eden]     
62.68
[root@localhost tmp]# zabbix_get  -s 192.168.1.162 -k discover.tomcat.item[/opt/app/sfa_sunflower/web_6501/,Old] 
56.31
[root@localhost tmp]# zabbix_get  -s 192.168.1.162 -k discover.tomcat.item[/opt/app/sfa_sunflower/web_6501/,Perm]
99.50
[root@localhost tmp]# zabbix_get  -s 192.168.1.162 -k discover.tomcat.item[/opt/app/sfa_sunflower/web_6501/,Metaspace]
99.50

自动发现模板配置

新建模板

《Zabbix 自动发现tomcat并添加监控》

创建应用集

《Zabbix 自动发现tomcat并添加监控》

创建自动发现规则

《Zabbix 自动发现tomcat并添加监控》
《Zabbix 自动发现tomcat并添加监控》

创建监控项原型(共6个)

《Zabbix 自动发现tomcat并添加监控》
《Zabbix 自动发现tomcat并添加监控》

创建触发器

《Zabbix 自动发现tomcat并添加监控》

创建图形原型

《Zabbix 自动发现tomcat并添加监控》

效果展示

自动发现展示

《Zabbix 自动发现tomcat并添加监控》
《Zabbix 自动发现tomcat并添加监控》

图形展示

《Zabbix 自动发现tomcat并添加监控》

触发器展示

《Zabbix 自动发现tomcat并添加监控》

意外问题

[sudo:抱歉,您必须拥有一个终端来执行 sudo]

Centos6.8开始就没有requiretty参数了, 此问题只出现在Centos6.8一下的版本

原因: sudo命令默认是不能在后台运行的,如果需要在后台运行,就必须添加不用后台启动也就是: !requiretty(不需要终端来启动)

修改/etc/sudoer文件,添加 Defaults:zabbix    !requiretty
$ visudo
Defaults    requiretty
Defaults:zabbix    !requiretty
点赞

发表评论

邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据