RockyLinux DNS监控告警设置(手把手教你搭建DNS服务异常自动告警系统)

来源:这里教程网 时间:2026-03-25 20:44:48 作者:

在企业运维中,DNS服务是网络通信的关键组件。一旦DNS出现故障,可能导致整个业务系统无法访问。因此,在RockyLinux系统中配置一套可靠的DNS监控告警机制至关重要。本教程将从零开始,帮助你——即使你是Linux新手——轻松搭建一个简单但高效的DNS监控与邮件告警系统。

一、准备工作

确保你的RockyLinux服务器已安装以下软件:

bind-utils
:用于执行
dig
nslookup
测试DNS解析
mailx
:用于发送告警邮件 一个可正常工作的本地或远程SMTP邮箱(如Gmail、企业邮箱等)

使用以下命令安装所需工具:

sudo dnf install -y bind-utils mailx

二、编写DNS监控脚本

我们将创建一个简单的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

三、配置邮件发送(以Gmail为例)

为了让

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服务器地址和端口进行配置。

四、设置定时任务(Cron)

使用

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关键词回顾:

RockyLinux DNS监控 DNS告警设置 Linux系统监控 网络服务告警

相关推荐

热文推荐