如何在Zabbix中配置触发器监控Linux磁盘缺失(卸载)告警
解决Zabbix固定磁盘卸载告警的配置方案
一、先确认磁盘发现的核心标识
你的环境用的是「Linux by zabbix agent」模板,其Mounted filesystem discovery规则基于vfs.fs.discovery键值,会返回{#MOUNTPOINT}(挂载点)、{#FSNAME}(文件系统名)等宏。先明确你要监控的两块磁盘固定挂载点(比如/data1、/data2),这是后续配置的核心依据。
二、补充挂载状态监控项(可选但更可靠)
模板默认的监控项多是磁盘容量类,建议基于发现规则新增挂载状态监控项原型:
- 键值:
vfs.fs.mountpoint[{#MOUNTPOINT}] - 类型:Zabbix agent
- 信息类型:数字(布尔),磁盘挂载时返回
1,卸载时返回0
如果不想新增,也可以用现有监控项的「可用性状态」,但vfs.fs.mountpoint更直接反映挂载状态。
三、配置触发器(两种可选方案)
方案1:针对固定挂载点单独配置(适合挂载点完全固定的场景)
直接创建两个独立触发器,分别对应两块磁盘:
- 触发器名称:
磁盘挂载点/data1已卸载 - 表达式:
{Template OS Linux:vfs.fs.mountpoint[/data1].last()}=0 - 严重性:根据业务需求设为「警告」或「严重」
- 复制上述配置,把
/data1替换为另一块磁盘的挂载点(比如/data2),创建第二个触发器。
方案2:基于发现规则的触发器原型(适合批量管理)
如果需要通过发现规则自动生成触发器,同时限定只监控目标两块磁盘:
- 进入模板的「触发器原型」页面,新建触发器原型
- 触发器名称:
挂载点{#MOUNTPOINT}已卸载 - 表达式:
{Template OS Linux:vfs.fs.mountpoint[{#MOUNTPOINT}].last()}=0 - 添加过滤条件:
- 条件1:宏
{#MOUNTPOINT}→ 等于 →/data1 - 条件2:宏
{#MOUNTPOINT}→ 等于 →/data2 - 条件关系选择「或」
这样只会为这两个固定挂载点生成触发器,其他自动发现的挂载点不会触发告警。
- 条件1:宏
四、验证与排查
- 手动卸载其中一块磁盘,等待Zabbix Agent完成数据采集(默认60秒),查看触发器是否转为「问题」状态
- 重新挂载磁盘后,确认触发器自动恢复为正常状态
- 若未触发,执行
zabbix_get -s 目标主机IP -k vfs.fs.mountpoint[/data1]验证Agent返回值,排查键值、挂载点是否写错,或Agent是否在线
内容的提问来源于stack exchange,提问作者MJ9092
相关产品推荐
相关产品推荐

