zabbix自定义监控模板和监控项--监控tomcat应用耗时

深入应用zabbix的时候,自带的模板是不够用的,这里通过监控tomcat自定义日志,完整演示如何自定义zabbix的监控模板和监控项

目的

有一个查询接口应用,运行在tomcat容器中,日志是自定义的,现在需要监控日志中的查询耗时,日志示例如下:

[2018-11-10 21:27:35,023][ERROR] - ---------------isagreequery=true----queryresult=1 - jersey.info.InfoRunnable.Execute(InfoRunnable.java:439)
[2018-11-10 21:27:35,023][ERROR] - 报文体:200-------成功!耗时--------》-10 - jersey.info.InfoResource.uploadJson(InfoResource.java:69)

其中的成功!耗时--------》-10 -表示处理本次查询耗时10ms时间。
监控就是要把这个耗时提取出来。
先剧透下效果:
zabbix自定义监控模板和监控项--监控tomcat应用耗时_第1张图片

步骤

首先制定提取耗时的shell 脚本query_time_monitor.sh,脚本支持计算查询耗时的最大值、最小值、平均值、总和:

#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:    query_time_monitor.sh
# Revision:    1.0
# Date:        2018/11/10
# Author:      WangLiFei
# Email:       [email protected]
# Website:     www.wlfei.com
# Description: 监控共享系统查询接口耗时
# Notes:       ~
# -------------------------------------------------------------------------------
# Copyright:   2018 (c) WangLiFei
# License:     GPL

# 日志文件名称
LOG_FILE='/path/to/your/target.log'

# 参数是否正确
if [ $# -ne "1" ];then
    echo "arg error!"
fi

# 获取数据
case $1 in
    max)
        result=`grep 'uploadJson' ${LOG_FILE} | awk -F "-" 'BEGIN {max=0} {if ($20+0 > max+0) max=$20+0 fi} END {print max}'`
        echo $result
        ;;
    min)
        result=`grep 'uploadJson' ${LOG_FILE} | awk -F "-" 'BEGIN {min=99999999} {if ($20+0 < min+0) min=$20+0 fi} END {print min}'`
        echo $result
        ;;
    avg)
        result=`grep 'uploadJson' ${LOG_FILE} | awk -F "-" '{ sum+=$20 } END { print sum/NR }'`
        echo $result
        ;;
    sum)
        result=`grep 'uploadJson' ${LOG_FILE} | awk -F "-" '{ sum+=$20 } END { print sum }'`
        echo $result
                ;;
        *)
        echo "Usage:$0(max|min|avg|sum)"
        ;;
esac

然后配置zabbix的conf文件userparameter_tomcat.conf

# 通过tomcat日志监控查询接口性能
UserParameter=query.time[*],/usr/local/zabbix/scripts/query_time_monitor.sh $1

然后把脚本和zabbix配置文件放服务器上:

userparameter_tomcat.conf 放 /usr/local/zabbix/conf/zabbix_agentd
query_time_monitor.sh 放 /usr/local/zabbix/scripts  配置755权限
zabbix_agentd.conf 添加 Include=/usr/local/zabbix/conf/zabbix_agentd/*.conf
重启zabbix agent

下一步配置网页上的监控模板,多台服务器都需要使用,我们自定义一个监控模板。
配置三个监控项:
zabbix自定义监控模板和监控项--监控tomcat应用耗时_第2张图片

配置两个触发器,查询耗时均值、最大值达到阈值后报警:
在这里插入图片描述
配置一个图形,把最大耗时、最小耗时、平均耗时都显示出来:
zabbix自定义监控模板和监控项--监控tomcat应用耗时_第3张图片

模板制作完成,下一步把对应的服务器添加在监控模板里(下图红框):
zabbix自定义监控模板和监控项--监控tomcat应用耗时_第4张图片

制作完成,过几分钟查看效果:
zabbix自定义监控模板和监控项--监控tomcat应用耗时_第5张图片

你可能感兴趣的:(zabbix自定义监控模板和监控项--监控tomcat应用耗时)