• 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

  • 相关阅读:
    两小时入门Docker
    Django之Model操作
    Django-channels 实现WebSocket实例
    Python项目中的单元测试
    將Python打包成 exe可执行文件
    CORS 跨域
    购物车模块
    登陆模块
    Git 基本用法
    Django ORM性能优化 和 图片验证码
  • 原文地址:https://www.cnblogs.com/reblue520/p/12721455.html
Copyright © 2020-2023  润新知