监控错误日志后报警

监控日志脚本

本文是公司VOS服务老是出问题、无法排查出问题原因、但是出现问题后日志就报一行错误、根据日志中的错误进行监控。

#!/bin/bash

# 定义日期变量
date_var=$(date +"%Y_%m_%d")

# 定义 webhook 变量(这里假设 webhook 的 URL)
webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXXXXXXXX"

# 定义循环次数
max_loops=3
loop_count=0

while [ $loop_count -lt $max_loops ]; do
    # 构建日志文件路径
    log_file="/home/kunshi/mbx3000/log/${date_var}_mbx3000_01.log"

    # 检查日志文件中是否包含 "pending sip msg threshold"
    if grep -q "pending sip msg threshold" "$log_file"; then
        # 获取错误内容和时间戳
        error_message=$(grep -o "pending sip msg threshold" "$log_file")
        timestamp=$(grep "pending sip msg threshold" "$log_file" | awk '{print $3}')

        # 构建要发送的消息内容
        message="错误时间: $timestamp  错误内容: $error_message"

        # 发送消息到 webhook
        echo "Sending message: $message"
        curl -s -H "Content-Type: application/json" -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"${message}\"}}" $webhook_url
    fi

    # 等待 20 秒
    sleep 20

    # 增加循环计数
    ((loop_count++))
done

echo "脚本已完成 $max_loops 次循环,现在退出。"

posted @ 2024-07-02 15:59  姬高波  阅读(19)  评论(0)    收藏  举报