在企业运维中,DNS服务是网络通信的关键组件。一旦DNS出现故障,可能导致整个业务系统无法访问。因此,在RockyLinux系统中配置一套可靠的DNS监控告警机制至关重要。本教程将从零开始,帮助你——即使你是Linux新手——轻松搭建一个简单但高效的DNS监控与邮件告警系统。
确保你的RockyLinux服务器已安装以下软件:
bind-utils:用于执行 dig 或 nslookup 测试DNS解析mailx:用于发送告警邮件使用以下命令安装所需工具:
sudo dnf install -y bind-utils mailx 我们将创建一个简单的Bash脚本来定期检查DNS解析是否正常。
创建脚本文件 /usr/local/bin/dns_monitor.sh:
sudo nano /usr/local/bin/dns_monitor.sh
将以下内容粘贴进去(请根据实际情况修改变量):
#!/bin/bash# 配置区域 —— 请根据你的环境修改DOMAIN_TO_CHECK="example.com"DNS_SERVER="8.8.8.8" # 可替换为你的内网DNS服务器IPALERT_EMAIL="admin@yourcompany.com"LOG_FILE="/var/log/dns_monitor.log"# 检查DNS解析if ! dig @${DNS_SERVER} ${DOMAIN_TO_CHECK} +short &>/dev/null; then # 如果解析失败,记录日志并发送邮件 echo "$(date): DNS resolution failed for ${DOMAIN_TO_CHECK} via ${DNS_SERVER}" >> $LOG_FILE echo "DNS服务异常!域名: ${DOMAIN_TO_CHECK}DNS服务器: ${DNS_SERVER}时间: $(date)请立即检查!" | mail -s "【告警】DNS解析失败" ${ALERT_EMAIL}else # 可选:记录成功日志(建议仅用于调试) # echo "$(date): DNS OK" >> $LOG_FILE :fi 保存并退出编辑器,然后赋予脚本执行权限:
sudo chmod +x /usr/local/bin/dns_monitor.sh
为了让 mailx 能通过SMTP发送邮件,需配置 /etc/mail.rc 文件:
sudo nano /etc/mail.rc
在文件末尾添加以下内容(替换为你自己的邮箱和授权码):
set smtp=smtps://smtp.gmail.com:465set smtp-auth=loginset smtp-auth-user=your_email@gmail.comset smtp-auth-password=your_app_password # 注意:不是登录密码,是Gmail应用专用密码set ssl-verify=ignoreset nss-config-dir=/etc/pki/nssdb/
提示:如果你使用的是企业邮箱,请参考对应SMTP服务器地址和端口进行配置。
使用 crontab 每5分钟运行一次监控脚本:
crontab -e
添加以下行:
*/5 * * * * /usr/local/bin/dns_monitor.sh
保存后,系统将每5分钟自动检测一次DNS解析状态,并在失败时发送邮件告警。
你可以手动运行脚本测试:
/usr/local/bin/dns_monitor.sh
也可以临时修改脚本中的 DOMAIN_TO_CHECK 为一个不存在的域名(如 nonexistent.fake),触发告警,确认邮件是否能正常收到。
通过以上步骤,你已在RockyLinux上成功部署了一套轻量级的DNS监控告警系统。这套方案成本低、易于维护,非常适合中小企业或个人项目使用。随着业务增长,你还可以将其扩展为更复杂的监控体系(如集成Prometheus + Alertmanager)。
记住,良好的Linux系统监控习惯是保障服务高可用的第一道防线。希望本教程对你有所帮助!
SEO关键词回顾:
本文由主机测评网于2025-12-14发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025127622.html