监控错误日志后报警
监控日志脚本
本文是公司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 次循环,现在退出。"

浙公网安备 33010602011771号