在现代IT运维中,Ubuntu DNS监控是保障网络服务稳定运行的关键环节。一旦DNS解析出现故障,可能导致网站无法访问、邮件收发失败、内部服务中断等严重问题。本文将手把手教你如何在Ubuntu系统上配置一套简单高效的DNS告警设置方案,即使你是Linux小白也能轻松上手!

在开始之前,请确保你已经:
我们将使用dig命令进行DNS查询,并结合简单的Shell脚本实现监控。首先安装dnsutils包:
sudo apt updatesudo apt install -y dnsutils mailutils ssmtp其中:
- dnsutils 提供了dig命令
- mailutils 和 ssmtp 用于发送邮件告警
创建一个名为dns_monitor.sh的脚本文件:
#!/bin/bash# 配置区域DOMAIN="example.com" # 要监控的域名DNS_SERVER="8.8.8.8" # 使用的DNS服务器ALERT_EMAIL="your@email.com" # 告警接收邮箱LOG_FILE="/var/log/dns_monitor.log"# 执行DNS查询RESULT=$(dig @$DNS_SERVER $DOMAIN A +short)# 检查结果是否为空if [ -z "$RESULT" ]; then # 记录日志 echo "[$(date '+%Y-%m-%d %H:%M:%S')] DNS查询失败:$DOMAIN 无法解析" >> $LOG_FILE # 发送邮件告警 echo "警告:DNS解析失败!域名:$DOMAINDNS服务器:$DNS_SERVER时间:$(date '+%Y-%m-%d %H:%M:%S')请立即检查网络和DNS配置!" | mail -s "【紧急】DNS监控告警" $ALERT_EMAILelse echo "[$(date '+%Y-%m-%d %H:%M:%S')] DNS查询正常:$DOMAIN -> $RESULT" >> $LOG_FILEfi请根据你的实际情况修改脚本中的DOMAIN、DNS_SERVER和ALERT_EMAIL变量。
编辑SSMTP配置文件:
sudo nano /etc/ssmtp/ssmtp.conf添加以下内容(替换为你自己的Gmail账号和应用专用密码):
root=your@gmail.commailhub=smtp.gmail.com:587AuthUser=your@gmail.comAuthPass=your_app_passwordUseSTARTTLS=YESFromLineOverride=YES注意:出于安全考虑,建议使用Gmail的“应用专用密码”而非账户主密码。你可以在Google账户的安全设置中生成。
使用crontab让脚本每5分钟自动运行一次:
# 赋予脚本执行权限chmod +x dns_monitor.sh# 编辑当前用户的crontabcrontab -e在打开的编辑器中添加一行:
*/5 * * * * /path/to/your/dns_monitor.sh这样系统就会每5分钟检查一次DNS解析状态,一旦失败立即发送邮件告警。
手动运行脚本测试是否正常工作:
./dns_monitor.sh检查日志文件:
tail -f /var/log/dns_monitor.log如果一切配置正确,你应该能看到类似以下的日志:
[2024-06-15 10:30:00] DNS查询正常:example.com -> 93.184.216.34这套基础的系统运维监控方案可以进一步优化:
通过以上步骤,你已经成功搭建了一套轻量级但实用的Ubuntu DNS监控与DNS告警设置系统。这不仅能帮助你在第一时间发现并处理DNS故障,还能大大提升你的系统运维监控能力和网络故障排查效率。赶快动手试试吧!
本文由主机测评网于2025-12-05发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025123466.html