Мониторинг SMART в Debian с уведомлениями по Telegram

Справочник системного администратора

В данной статье мы рассмотрим пример настройки мониторинга состояния 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

Готово!

Tags: