Zabbix监控磁盘使用率,满盘自动告警
服务器磁盘满盘会导致服务写入失败、数据库卡死甚至系统无法登录,提前配置Zabbix监控磁盘使用率并触发自动告警,是运维日常最基础也最有效的防护手段。
下面从零开始,在Zabbix中完成磁盘监控、触发器设置和告警验证。
确认监控前提与检查Zabbix Agent
开始前需要满足两个条件:Zabbix Server已正常运行,被监控主机已安装并启动Zabbix Agent。
如果还没装Agent,在CentOS或Ubuntu上可以用包管理器安装,例如yum install zabbix-agent或apt install zabbix-agent。
Agent配置文件通常位于/etc/zabbix/zabbix_agentd.conf,检查以下参数是否指向Zabbix Server的IP:
Server=你的Zabbix服务端IP
ServerActive=你的Zabbix服务端IP
Hostname=本机主机名
改完后重启Agent:
systemctl restart zabbix-agent
systemctl enable zabbix-agent
在Zabbix Web界面进入“数据采集”->“主机”,确认目标主机状态为绿色“已启用”。
如果显示红色不可用,先解决Agent连通性问题,否则后续监控项不会采集到数据。
添加磁盘使用率监控项
Zabbix自带模板Template OS Linux by Zabbix agent默认包含磁盘空间监控项。
进入“数据采集”->“主机”,点击主机名,在“模板”标签页链接该模板。
链接后等待几分钟,在“监控”->“最新数据”中过滤vfs.fs.size,应该能看到每个挂载点的已用空间百分比。
如果只想监控特定分区(比如根分区/),可以在模板基础上克隆一个监控项,键值改为:
vfs.fs.size[/,pused]
其中pused表示已使用百分比。
名称可以写“根分区磁盘使用率”,类型选“Zabbix客户端”,信息类型选“浮点数”,更新间隔建议300秒。
关键点:vfs.fs.size的键值参数必须是Agent实际能读取到的挂载点,写错路径会导致监控项变为“不支持”。
编写满盘自动告警触发器
监控项有了数据,下一步设置触发条件。
进入“数据采集”->“主机”->“触发器”,点击“创建触发器”。
名称建议写成“磁盘使用率超过90%”,严重性选“警告”或“严重”。
表达式如下:
last(/主机名/vfs.fs.size[/,pused])>90
这表示最近一次采集到的根分区使用率大于90%时触发告警。
如果想更早预警,可以把90改成80。
如果需要同时监控多个挂载点,可以创建多个触发器,分别替换路径参数。
触发器创建后,可以在“监控”->“问题”中查看是否已经产生告警事件。
判断条件:生产环境建议设置两级阈值,80%触发警告,90%触发严重告警,便于提前清理日志或扩容。
配置告警媒介与动作
触发器触发后还需要有发送通道。
进入“管理”->“报警媒介类型”,确认“Email”已启用并配置好SMTP信息。
然后到“用户设置”->“报警媒介”,为接收告警的用户添加Email,收件地址填自己的邮箱。
接着进入“配置”->“动作”->“触发器动作”,创建动作。
条件设置为“触发器严重性 大于等于 警告”,操作里添加发送消息给指定用户。
消息内容可以写:
主机:{HOST.NAME}
问题:{EVENT.NAME}
当前值:{ITEM.LASTVALUE}
时间:{EVENT.DATE} {EVENT.TIME}
保存后,当磁盘使用率超过阈值,Zabbix会按动作发送邮件。
验证告警是否生效
验证方法很简单:在被监控主机上临时创建一个占用空间的文件,把磁盘使用率推到阈值以上。
例如:
dd if=/dev/zero of=/tmp/testfill bs=1M count=5000
等待一个采集周期后,进入“监控”->“问题”,应该能看到磁盘使用率告警记录。
同时检查邮箱是否收到告警邮件。
验证完成后删除测试文件:
rm -f /tmp/testfill
如果告警没有触发,重点检查三处:触发器表达式中的主机名和键值是否与实际一致、动作条件是否匹配严重性、报警媒介是否配置正确。
避坑与日常维护建议
不要只监控根分区。
很多服务器把数据盘挂载到/data或/home,这些分区满盘同样影响业务,建议逐个添加监控项。
注意文件系统类型差异。vfs.fs.size对NFS、
tmpfs等特殊挂载点的支持有限,
如果监控项显示“不支持”,
可以在Agent端用zabbix_agentd -p | grep vfs.fs.size检查实际可用的键值。
告警阈值不要一刀切。
数据库服务器日志增长快,阈值可以设低一些;
静态资源服务器可以适当放宽。
定期检查告警是否被静默。
维护窗口或误操作可能导致动作被禁用,建议每月抽查一次“监控”->“问题”中的历史记录。
完成以上配置后,Zabbix就能持续监控磁盘使用率,并在接近满盘时自动发出告警。
先按本文步骤在测试环境跑通,再复制到生产环境,能减少误报和漏报。