В данной статье мы рассмотрим пример настройки мониторинга состояния SMART на ваших дисках, с возможностью оперативного уведомления в Telegram.
Устанавливаем smartmontools:
sudo apt install smartmontools
Выведем информацию о дисках:
df -h
Убедимся, что SMART доступен и включен:
sudo smartctl --info /dev/ | grep 'SMART support is:'
Если SMART доступен, но не включен, вы можете включить его:
sudo smartctl --smart=on /dev/устройство
Для периодического тестирования дисков настроим демон smartd, для этого открываем файл:
sudo nano /etc/default/smartmontools
И раскоментируемв нем следующую строку:
start_smartd=yes smartd_opts="--interval=1800"
Параметр smartd_opts отвечает за дополнительные опции для smartd, —interval говорит о периодичности проведения самодиагностики.
Открываем файл конфигурации smartd:
sudo nano /etc/smartd.conf
Найдите в файле следующую строку:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
Добавьте в нее параметр -M test, таким образом мы заставим работать smartmontools вхолостую, должно получиться так:
DEVICESCAN -d removable -n standby -m root -M test -M exec /usr/share/smartmontools/smartd-runner
Создаем нового Telegram-бота. Как это сделать я описывал в этой статье.
Создадим скрипт для Telegram уведомлений:
sudo nano /etc/smartmontools/run.d/10telegram
Вставляем в него следующее содержимое:
#!/bin/bash -e
chatid="ВАШ_ID_ЧАТА"
error=$(cat $1)
apikey="ТОКЕН_ВАШЕГО_БОТА"
curl -G --data-urlencode "chat_id=${chatid}" --data-urlencode "text=${error}" https://api.telegram.org/bot${apikey}/sendMessage
Сделаем скрипт исполняемым:
sudo chmod +x /etc/smartmontools/run.d/10telegram
Установим curl для отправки уведомлений в Telegram:
sudo apt-get install curl
Запускаем демона smartmontools:
sudo smartd
Вам должно прийти тестовое сообщение от вашего бота. Если сообщение не пришло, смотрим причину:
sudo cat /var/log/syslog
Далее удалите “-M test” из файла /etc/smartd.conf, чтобы строка в файле выглядела следующим образом:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
Готово!