客户端配置
#新增下面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
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
自动发现模板配置
新建模板
创建应用集
创建自动发现规则
创建监控项原型(共6个)
创建触发器
创建图形原型
效果展示
自动发现展示
图形展示
触发器展示
意外问题
[sudo:抱歉,您必须拥有一个终端来执行 sudo]
Centos6.8开始就没有requiretty参数了, 此问题只出现在Centos6.8一下的版本
原因: sudo命令默认是不能在后台运行的,如果需要在后台运行,就必须添加不用后台启动也就是: !requiretty(不需要终端来启动)
修改/etc/sudoer文件,添加 Defaults:zabbix !requiretty
$ visudo
Defaults requiretty
Defaults:zabbix !requiretty