Статья о постановке на мониторинг параметров SMART жестких дисков.
Снова собирая обрывки со всего интернета получилось решение. Принцип работы этого решения таков: каждые 5 минут во временной директории скриптом создаются файлы с именем дисков, опередеённых в системе (sda, sdb). Содержимым этих файлов будет вывод команды smartctl -a /dev/<имя диска> из того же скрипта. Далее в настройках демона SNMP добавляются внешние MIB'ы, которые запускают выполнение другого скрипта. Этот скрипт выполняет парсинг файлов в с выводом команд smartctl -a и выдаёт строковой параметр со значением SMART параметра. Собственно запрос по SNMP выполняет CACTI благодаря шаблонам.
Теперь по порядку. Устанавливаем ПО для чтения параметров SMART:
apt-get install smartmontools
По-умолчанию SMART включён, однако если команда
smartctl -a /dev/<имя диска>
ничего не выдаёт, то можно попробовать включить опцию SMART:
smartctl -s on /dev/<имя диска>
Если вывод smartctl всё-таки случился, то создаём директорию куда бдет записываться файлы с названием диска и содежимым этих файлов будет вывод smartctl -a /dev/<имя диска>:
mkdir /tmp/snmp/
Следующим шагом будет правка конфигурационного файла демона SNMPD. Добавляем в конец файла:
extend smartdescriptions /etc/snmp/smart-generic description
extend smart1 /etc/snmp/smart-generic 1
extend smart3 /etc/snmp/smart-generic 3
extend smart4 /etc/snmp/smart-generic 4
extend smart5 /etc/snmp/smart-generic 5
extend smart7 /etc/snmp/smart-generic 7
extend smart9 /etc/snmp/smart-generic 9
extend smart10 /etc/snmp/smart-generic 10
extend smart12 /etc/snmp/smart-generic 12
extend smart170 /etc/snmp/smart-generic 170
extend smart171 /etc/snmp/smart-generic 171
extend smart172 /etc/snmp/smart-generic 172
extend smart177 /etc/snmp/smart-generic 177
extend smart178 /etc/snmp/smart-generic 178
extend smart179 /etc/snmp/smart-generic 179
extend smart180 /etc/snmp/smart-generic 180
extend smart181 /etc/snmp/smart-generic 181
extend smart182 /etc/snmp/smart-generic 182
extend smart183 /etc/snmp/smart-generic 183
extend smart184 /etc/snmp/smart-generic 184
extend smart187 /etc/snmp/smart-generic 187
extend smart189 /etc/snmp/smart-generic 189
extend smartR190 /etc/snmp/smart-generic R190
extend smartR194 /etc/snmp/smart-generic R194
extend smart195 /etc/snmp/smart-generic 195
extend smart196 /etc/snmp/smart-generic 196
extend smart199 /etc/snmp/smart-generic R199
extend smart203 /etc/snmp/smart-generic 203
extend smart226 /etc/snmp/smart-generic 226
extend smart230 /etc/snmp/smart-generic 230
extend smart231 /etc/snmp/smart-generic 231
extend smart232 /etc/snmp/smart-generic 232
extend smart233 /etc/snmp/smart-generic 233
extend smart235 /etc/snmp/smart-generic 235
extend smart241 /etc/snmp/smart-generic 241
В некоторых строках перед цифровым параметром используется префикс R, обозначающий, что берётся значений RAW_VALUE из статистики SMART. Без префикса R берётся значение VALUE. Какое значение мониторить решайте сами. Параметры говорящие о здоровье диска могут быть как из RAW_VALUE, так и из VALUE раздела. Значения параметров SMART описаны на каждом шагу в интернете, повторяться не буду.
Далее скачиваем архив с доработанными шаблономи для CACTI и изменёнными скриптами. Файлы из архива smart-cronjob и smart-generic помещаем в директорию /etc/snmp/ и делаем их исполняемыми:
chmod +x /etc/snmp/smart-cronjob /etc/snmp/smart-generic
Далее скрипт smart-cronjob нужно назначить к выполнению каждые 5 минут:
sudo -i crontab -e
в конец конфигурации вставляем
*/5 * * * * /etc/snmp/smart-cronjob
Сохраняем конфигурацию и перезапускаем сервис CRON:
service cron restart
Далее из архива файл disk_smart.xml помещаем в директорию /usr/share/cacti/resource/snmp_queries/. Ну, и, наконец очередь файла cacti_host_template_smart_parameters.xml - его мы импортируем через web-интерфейс CACTI в меню Console -> Import Templates. После импорта для некоторых будет смысл поменять значения по-умолчанию шаблона. Console -> Graph Templates -> SMART Health (HDD). Можно поменять максимальное значение на графике - Upper Limit (--upper-limit) = 0.
Время создавать графики. Идём в меню устройства и в разделе Associated Data Queries добавляем наш шаблон, что бы получилось как на скриншоте:
Далее из того же раздела редактирования устройства сверху жмём Create Graphs for this Host. В разделе Data Query [Disk SMART Parameters] отмечаем жёсткие диски которые нужно поставить на мониторинг. Параметр Graph Type позволяет выбрать параметры и группы параметров для разных типов дисков. Я использую Health (HDD) и Temperatures. Жмём Create. Через некоторое время должны отрисоваться графики.
И, берегите зрение!