Постановка задачи
Есть заббикс, есть сервер с SATA-дисками внутри без RAID-контроллера, необходимо мониторить состояние дисков.
Решение
Будем использовать пользовательские параметры в заббикс-агенте. Для мониторинга нам понадобится программа smartctl.exe (скачать с моего сайта) из пакета smartmontools. Файл положить в /etc/zabbix Кроме того, на windows-хост нужно установить UnixUtils
Далее создаем конфиг для заббикс-агента
C:/zabbix/zabbix_agentd.conf.d/smart.conf:
UserParameter=smart.health[*],bash -c "c:/zabbix/smartctl.exe -a $1 | gawk '/overall-health/ {print $$6}'"
UserParameter=smart.reallocated_sectors_count[*],bash -c "c:/zabbix/smartctl.exe -a $1 | gawk '/Reallocated_Sector/ {print $$10}'"
т.е. будем создаем в агенте пользовательские параметры smart.health и smart.reallocated_sectors_count
Рестартуем сервис zabbix, и проверяем на заббикс-сервере:
~# zabbix_get -s 192.168.1.41 -k smart.reallocated_sectors_count[/dev/hda]
0
~# zabbix_get -s 192.168.1.41 -k smart.health[/dev/hda]
PASSED
Создаем параметры в Zabbix.
Можно взять мой темплейт: Template_HDD-SMART , в нем сделаны проверки для /dev/hda, правила обнаружения делать не стал.
для того, что бы узнать какие имена дисков использовать в параметрах показателей zabbix можно использовать следующую команду:
smartctl.exe --scan