You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure中配置健康检查以检测Azure文件共享是否成功挂载?

Azure RHEL虚拟机Azure文件共享挂载健康检查及告警实现方案

1. 编写挂载检测脚本

不要仅依赖mount命令的输出判断挂载状态,部分场景下挂载项仍保留在系统列表中,但实际存储侧连接已中断,写入操作会失败,必须增加实际读写验证保证检测准确性
首先创建检测脚本/usr/local/bin/check_azure_fileshare.sh,示例内容如下:

#!/bin/bash
# 替换为你的实际文件共享挂载点
MOUNT_POINT="/mnt/azure_log_share"
TEST_FILE="${MOUNT_POINT}/.mount_health_check.tmp"
TEST_CONTENT="health_check_$(date +%s)"

# 第一步:检查挂载点是否存在于系统挂载列表
if ! mount | grep -q "${MOUNT_POINT}"; then
    echo "ERROR: File share not mounted"
    logger -p local0.err "Azure File Share health check failed: ${MOUNT_POINT} not found in mount list"
    exit 1
fi

# 第二步:验证挂载点读写能力
echo "${TEST_CONTENT}" > "${TEST_FILE}" 2>/dev/null
if [ $? -ne 0 ]; then
    echo "ERROR: Cannot write to mount point"
    logger -p local0.err "Azure File Share health check failed: ${MOUNT_POINT} is not writable"
    exit 1
fi

READ_CONTENT=$(cat "${TEST_FILE}" 2>/dev/null)
if [ "${READ_CONTENT}" != "${TEST_CONTENT}" ]; then
    echo "ERROR: Read content mismatch"
    logger -p local0.err "Azure File Share health check failed: ${MOUNT_POINT} read write verification failed"
    rm -f "${TEST_FILE}" 2>/dev/null
    exit 1
fi

# 检查通过,清理测试文件
rm -f "${TEST_FILE}"
exit 0

给脚本赋予执行权限:
chmod +x /usr/local/bin/check_azure_fileshare.sh

2. 配置定时检测任务

使用crontab配置定时执行,可根据业务对故障响应的要求调整执行频率,示例为每5分钟执行一次:
执行crontab -e添加如下规则:
*/5 * * * * /usr/local/bin/check_azure_fileshare.sh

3. 配置告警通知

方案A:自定义告警脚本

自行编写/usr/local/bin/send_alert.sh实现通知逻辑,根据团队使用的通知渠道配置即可:

  • 邮件通知可调用mailx命令发送告警邮件
  • 企业微信/钉钉/飞书通知可调用对应群机器人的webhook接口发送消息
  • 告警内容需要包含虚拟机主机名、IP、故障时间、挂载点路径、故障描述
    之后修改crontab规则,检测失败时触发告警:
    */5 * * * * /usr/local/bin/check_azure_fileshare.sh || /usr/local/bin/send_alert.sh

方案B:对接Azure Monitor(适配Azure生态推荐)

上述检测脚本已经将故障日志写入syslog,只需在Azure控制台完成如下配置即可:

  • 为目标RHEL虚拟机启用Azure Monitor代理,配置日志采集规则,采集local0.err级别的系统日志
  • 配置告警规则,匹配日志中的Azure File Share health check failed关键词
  • 配置关联动作组,设置对应团队的通知渠道(邮件、短信、自定义webhook等),触发规则时自动推送通知

优化建议

  • 配置文件共享自动重试挂载:在/etc/fstab的挂载配置中添加_netdev,x-systemd.automount,x-systemd.mount-timeout=30参数,网络恢复后自动重试挂载,减少临时网络波动导致的误告警
  • 增加告警抑制逻辑:连续2次检测失败再触发告警,避免单次网络抖动导致的误报
  • 增加恢复通知:检测到挂载从故障恢复为正常时,发送恢复通知同步状态

内容的提问来源于stack exchange,提问作者kumar A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:45:10