zabbix通过shell脚本实现监控rsync是否能正常拉取日志

背景:
    公司通过rsync脚本同步海外服务器日志到本地进行分析,因网络质量问题,经常出现拉取不到的情况,为了能及时处理,需要监控日志是否能正常拉取和处理
    触发条件:当5个小时内的日志大小都小于 5M 或者 10M时触发报警

# cat /usr/local/zabbix_agents_3.2.0/cripts/platform_log.sh 

#!/bin/bash
#
# 获取当前小时数字 0-23 格式,和前5个小时
# 统计5个小时内合并日志后的大小,如果都小于5M,则触发报警:可能是没有拉取到日志,也可能合并问题
# 获取小时数 0~24
current_hour=`date +%H`
last_hour=`date +%H -d '-1 hours'`
two_hours_ago=`date +%H -d '-2 hours'`
three_hours_ago=`date +%H -d '-3 hours'`
four_hours_ago=`date +%H -d '-4 hours'`
five_hours_ago=`date +%H -d '-5 hours'`


oneday=$(date -d "today" +"%y%m-%d")
YEAR_MONTH=`date -d "${a} hour" +"%Y-%m"`

MONTH_NUM=${YEAR_MONTH: -2}
oneday_num=${oneday:2:2}
if [ $MONTH_NUM != $oneday_num ];then
    local YEAR_MONTH=`date -d "1 month ago" +%Y-%m`
fi


# /opt_log/platform_logs/downloader/all/2020-04/dl-v2-2004-1305.txt
function downloader_logs
{
    sum=0
    for day_hour in $current_hour $last_hour $two_hours_ago $three_hours_ago $four_hours_ago $five_hours_ago;do
     #计算日志的大小,单位为字节,转换为M
size_num=`du -b /opt_log/platform_logs/downloader/all/${YEAR_MONTH}/dl-v2-${oneday}${day_hour}.txt|awk '{print $1}'` size_m=`expr $((size_num/1024/1024))` #echo ${day_hour}_/opt_log/platform_logs/downloader/all/${YEAR_MONTH}/dl-v2-${oneday}${day_hour}.txt--${size_m}; if [ $size_m -lt 5 ];then sum=$((sum+1)) fi done echo $sum } # /opt_log/platform_logs/datacollection/all/2020-04/co-2004-1715.tx function datacollection_logs { sum=0 for day_hour in $current_hour $last_hour $two_hours_ago $three_hours_ago $four_hours_ago $five_hours_ago;do size_num=`du -b /opt_log/platform_logs/datacollection/all/${YEAR_MONTH}/co-${oneday}${day_hour}.txt|awk '{print $1}'` size_m=`expr $((size_num/1024/1024))` #echo ${day_hour}_/opt_log/platform_logs/datacollection/all/${YEAR_MONTH}/co-${oneday}${day_hour}.txt--${size_m}; if [ $size_m -lt 10 ];then sum=$((sum+1)) fi done echo $sum } # $1 # 具体的监控项 UserParameter=platform.logs[*],/usr/local/zabbix_agents_3.2.0/scripts/platform_log.sh $1

原文地址:https://www.cnblogs.com/reblue520/p/12721455.html