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時間。
監控就是要把這個耗時提取出來。
先劇透下效果:
在這裏插入圖片描述

步驟

首先制定提取耗時的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

下一步配置網頁上的監控模板,多臺服務器都需要使用,我們自定義一個監控模板。
配置三個監控項:
在這裏插入圖片描述

配置兩個觸發器,查詢耗時均值、最大值達到閾值後報警:
在這裏插入圖片描述
配置一個圖形,把最大耗時、最小耗時、平均耗時都顯示出來:
在這裏插入圖片描述

模板製作完成,下一步把對應的服務器添加在監控模板裏(下圖紅框):
在這裏插入圖片描述

製作完成,過幾分鐘查看效果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章