如何使用 SmartCTL 从 RAID 获取硬盘状态以进行监控?

如何使用 SmartCTL 从 RAID 获取硬盘状态以进行监控?

我有一台 FreeBSD,其 RAID 运行 3 个硬盘。我面临的挑战是监控其 RAID - 如果硬盘发生故障或出现问题,我需要知道。

所以,我现在要做的第一件事就是尝试了解 SmartCTL 的工作原理...到目前为止我使用的命令是:

smartctl --scan -j - To scan my devices and generated a JSON Structured list.
smartctl -i /dev/device_name - To list informations about a single device
smartctl -a /dev/your-device - More information like errors and etc (I think i can use this in some way to grep only errors sections...)

SmartCTL 是否还有其他参数可以检查磁盘是否可写、是否处于活动状态以及是否健康状态?

这种理解的主要目的是主要使用 SmartCTL 来生成将在 Zabbix 监控软件的低级发现的 pfSense RAID 监控模板中使用的数据......

任何帮助我都会感激不尽。

答案1

smartctl --isDiskOK /dev/sda好的,那么回答 -据我所知,没有您可以采取的方法。

smartctl 最接近的是重新分配扇区数的报告。我不会详细解释,但本质上,当磁盘开始出现故障时,难以读取/写入的扇区将被重新定位到备用扇区。如果发生更多重新分配,则意味着驱动器更接近完全损坏。

  1. Zabbix 可以利用以下用户参数:
$ sudo cat /etc/zabbix/zabbix_agent2.d/userparameter_hdd.reallocated.sectors.conf
# get current HDD reallocated sectors count && needs sudoers
UserParameter=hdd.reallocated.sectors[*],sudo smartctl -a /dev/$1|grep Reallocated_Sector_Ct|awk '{print $$10}'
  1. 使用以下项目创建 zabbix 模板: 在此处输入图片描述

  2. 允许用户 zabbix 通过 sudoers 执行 smartctl:

$ sudo grep zabbix /etc/sudoers.d/*
/etc/sudoers.d/zabbix:zabbix  ALL=NOPASSWD:/usr/sbin/hddtemp, /usr/sbin/smartctl, /usr/bin/fping
  1. 将模板分配给受监控的主机 + 重新启动 zabbix_agent 以加载配置 - 您的项目应该填充重新分配的扇区数

  2. 利润.. :)

无论如何,zabbix 模板也可以在我的 GitHub 上找到https://github.com/RipperSK/zabbix-user-params/blob/master/hdd.reallocated.sectors/userparameter_hdd.reallocated.sectors.conf

享受。

相关内容