2026.06.05 | youres | 34次围观
为什么要用钉钉监控重定向异常
网站重定向异常是最隐蔽的故障之一。301跳转配置错误、HTTPS强制跳转循环、UTM参数丢失,这些问题往往不会直接报错,而是默默吞噬你的SEO权重和营销数据。等你发现流量下滑时,已经晚了。
传统邮件告警有延迟,短信告警成本高。钉钉机器人Webhook免费、实时、支持@指定人,是中小团队的最佳选择。本文分享5个实战方案,从基础监控到智能告警全覆盖。
方案一:基础重定向次数监控脚本
最基础的监控是检测重定向次数。正常网站跳转不超过3次,超过这个阈值就要警惕。
#!/bin/bash
# 基础重定向次数监控
# 配置区域
WEBHOOK_URL=\"https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN\"
TARGET_URL=\"https://www.example.com\"
MAX_REDIRECTS=3
# 获取重定向次数
redirect_count=
# 判断是否异常
if [ \"\" -gt \"\" ]; then
# 构建钉钉消息
curl -s \"\" \\
-H \"Content-Type: application/json\" \\
-d \"{
\\\"msgtype\\\": \\\"text\\\",
\\\"text\\\": {
\\\"content\\\": \\\"【重定向异常告警】\\n网站: \\n重定向次数: \\n阈值: \\n时间: \\\"
}
}\"
fi
关键参数说明
-L:跟随重定向,必须加这个参数才能统计跳转次数-o /dev/null:丢弃页面内容,只关注跳转数据-w \"%{num_redirects}\":输出重定向次数变量
方案二:检测最终URL与预期不符
有时候重定向次数正常,但终点URL不对。比如HTTPS强制跳转配置错误,本该跳到https://www.example.com却跳到了https://example.com,这会影响SEO权重传递。
#!/bin/bash
# 检测最终URL是否匹配预期
WEBHOOK_URL=\"https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN\"
TARGET_URL=\"https://www.example.com\"
EXPECTED_FINAL=\"https://www.example.com/\"
# 获取最终URL
final_url=
# 判断是否匹配
if [ \"\" != \"\" ]; then
curl -s \"\" \\
-H \"Content-Type: application/json\" \\
-d \"{
\\\"msgtype\\\": \\\"markdown\\\",
\\\"markdown\\\": {
\\\"title\\\": \\\"重定向终点异常\\\",
\\\"text\\\": \\\"### 重定向终点异常\\n\\n- 预期: \\n- 实际: \\n- 时间: \\\"
}
}\"
fi
curl -w 关键变量
url_effective:最终URL,跟随重定向后的终点url_redirect:第一个重定向URL,不跟随重定向也能获取num_redirects:重定向次数
方案三:批量监控多个URL
生产环境往往有多个域名或关键页面。用数组批量监控,一次巡检全覆盖。
#!/bin/bash
# 批量监控脚本
WEBHOOK_URL=\"https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN\"
# URL列表
declare -a URLS=(
\"https://www.example.com\"
\"https://www.example.com/product\"
\"https://www.example.com/contact\"
\"https://api.example.com/health\"
)
MAX_REDIRECTS=3
ALERT_MSG=\"\"
for url in \"\\"; do
redirect_count=
final_url=
if [ \"\" -gt \"\" ]; then
ALERT_MSG+=\" 跳转次\\n\"
fi
done
# 统一发送告警
if [ -n \"\" ]; then
curl -s \"\" \\
-H \"Content-Type: application/json\" \\
-d \"{
\\\"msgtype\\\": \\\"text\\\",
\\\"text\\\": {
\\\"content\\\": \\\"【批量监控告警】\\n\\n时间: \\\"
}
}\"
fi
方案四:检测UTM参数丢失
营销活动最怕UTM参数在重定向过程中丢失。这个脚本检测带UTM参数的URL跳转后是否还保留参数。
#!/bin/bash
# 检测UTM参数保留
WEBHOOK_URL=\"https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN\"
TEST_URL=\"https://example.com?utm_source=google&utm_medium=cpc&utm_campaign=summer\"
# 检测参数是否保留
final_url=
if [[ \"\" != *\"utm_source\"* ]]; then
curl -s \"\" \\
-H \"Content-Type: application/json\" \\
-d \"{
\\\"msgtype\\\": \\\"text\\\",
\\\"text\\\": {
\\\"content\\\": \\\"【UTM参数丢失告警】\\n原始URL: \\n最终URL: \\nUTM参数已丢失,请检查Nginx重定向配置\\\"
}
}\"
fi
常见UTM丢失原因
- Nginx rewrite规则未加
- Cloudflare自动HTTPS跳转未保留参数
- CDN层重定向规则覆盖查询字符串
方案五:智能告警(带阈值判断)
避免频繁告警刷屏,加入阈值判断:只有连续异常才触发告警。
#!/bin/bash
# 智能告警脚本(带状态文件)
WEBHOOK_URL=\"https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN\"
TARGET_URL=\"https://www.example.com\"
STATE_FILE=\"/tmp/redirect_state.txt\"
THRESHOLD=3 # 连续异常次数
redirect_count=
if [ \"\" -gt 3 ]; then
# 读取异常计数
if [ -f \"\" ]; then
count=
else
count=0
fi
# 递增计数
count=
echo > \"\"
# 达到阈值才告警
if [ \"\" -ge \"\" ]; then
curl -s \"\" \\
-H \"Content-Type: application/json\" \\
-d \"{
\\\"msgtype\\\": \\\"text\\\",
\\\"text\\\": {
\\\"content\\\": \\\"【重定向持续异常】\\n网站: \\n已连续异常 次\\n时间: \\n请立即检查Nginx配置\\\"
},
\\\"at\\\": {
\\\"atMobiles\\\": [\\\"13800138000\\\"],
\\\"isAtAll\\\": false
}
}\"
fi
else
# 正常时清零计数
echo 0 > \"\"
fi
定时任务配置
将脚本加入crontab,每5分钟检测一次:
# 编辑定时任务
crontab -e
# 添加检测任务
*/5 * * * * /opt/scripts/redirect_monitor.sh
# 批量检测每10分钟执行
*/10 * * * * /opt/scripts/batch_redirect_monitor.sh
钉钉机器人安全设置
钉钉机器人支持三种安全设置,推荐使用加签模式:
#!/bin/bash
# 加签模式发送消息
WEBHOOK_URL=\"https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN\"
SECRET=\"SECxxxx\"
# 计算签名
timestamp=000
sign_string=\"\\n\"
sign=
# 发送带签名请求
curl -s \"×tamp=&sign=\" \\
-H \"Content-Type: application/json\" \\
-d '{\"msgtype\":\"text\",\"text\":{\"content\":\"测试消息\"}}'
总结
Shell脚本配合curl和钉钉Webhook,可以低成本构建网站重定向监控系统。核心要点:
- 用
curl -w num_redirects统计跳转次数 - 用
curl -w url_effective检测最终URL - 批量监控用数组循环,统一告警
- 智能告警加阈值判断,避免刷屏
- 定时任务用crontab,检测频率5-10分钟
这套方案已在多个生产环境验证,重定向异常10分钟内必被发现。比起商业监控服务,省钱又可控。
版权声明
本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论