-
Notifications
You must be signed in to change notification settings - Fork 2
Home
S.M.A.R.T.HTML - скрипт, предназначенный для мониторинга SMART параметров жёстких дисков в ОС Linux. Скрипт создает HTML страницу со списком SMART атрибутов и отображает их изменения. Умеет рисовать графики с помощью RRDtool и отправлять email-оповещения. Решение изначально создавалось для мониторинга USB-диска на маршрутизаторах с прошивками от "энтузиастов" (http://wl500g.info) и Padavan'а (https://bitbucket.org/padavan/), а поэтому полностью совместимо с ash и awk из busybox...
Скрипт получает данные из вывода smartctl, сравнивает их с сохранёнными значениями предыдущей проверки и создаёт HTML страницу с таблицей атрибутов, отображая в ней последние изменения значений. Также пишет в лог при изменении критически важных атрибутов и может отсылать сообщения по email. Опционально использует RRDtool для построения графика температуры (вообще, скрипт позволяет создавать RRD графики для любых SMART атрибутов). Для RRD присутствуют несколько вариантов пресетов создания баз, в зависимости от интервала обновления данных.
-
Для работы необходимы: smartmontools (версии >= 7.0), fdisk.
-
Для отрисовки графиков нужно установить RRDtool (версии >= 1.2).
-
Для использования email-оповещений требуется наличие SMTP-клиента.
Установка и настройка для прошивки от Padavan'а
Email-оповещения включаются опцией USE_MAIL=1
в конфигурационном файле. Весь код работы оповещений находится в отдельном скрипте, поэтому возможно применять любые доступные утилиты. Для sendmail и msmtp есть готовые скрипты.
Установка и настройка на примере скрипта для msmtp:
-
Установить msmtp:
opkg install msmtp
-
Скачать скрипт в
/opt/usr/bin
:wget --no-check-certificate -O /opt/usr/bin/smarthtml_mailer_msmtp https://raw.githubusercontent.com/gSpotx2f/smarthtml/master/usr/bin/smarthtml_mailer_msmtp chmod +x /opt/usr/bin/smarthtml_mailer_msmtp
-
В конфигурационном файле
/opt/etc/smarthtml.conf
задать путь к mailer-скрипту и включить оповещения:MAILER_SCRIPT="/opt/usr/bin/smarthtml_mailer_msmtp" USE_MAIL=1
-
Для правильной работы должны быть заданы следующие переменные в mailer-скрипте (
/opt/usr/bin/smarthtml_mailer_msmtp
):MAIL_RECIPIENT="email@gmail.com" # email на который будут приходить оповещения MAIL_SENDER="email@gmail.com" # email для отправки оповещений (можно использовать предыдущий из MAIL_RECIPIENT) MAIL_LOGIN="email@gmail.com" # логин для аутентификации на SMTP сервере (в случае gmail - это сам адрес почты) MAIL_PASSWORD="password" # пароль для аутентификации на SMTP сервере MAIL_SMTP="smtp.gmail.com" # адрес SMTP сервера для отправки сообщения MAIL_SMTP_PORT=587 # порт SMTP сервера
-
Проверить корректность настроек можно отправив тестовое сообщение:
/opt/usr/bin/smarthtml mailtest
Установка скрипта для sendmail, в целом, аналогична (+ необходим openssl). Включение в конфиге: MAILER_SCRIPT="/opt/usr/bin/smarthtml_mailer_sendmail"
.
Установка и настройка скрипта для телеграм-бота:
Mailer-скрипт для телеграм на основе скрипта из Padavan's wiki.
-
Установить curl:
opkg install curl
-
Скачать скрипт в
/opt/usr/bin
:wget --no-check-certificate -O /opt/usr/bin/smarthtml_mailer_tg https://raw.githubusercontent.com/gSpotx2f/smarthtml/master/usr/bin/smarthtml_mailer_tg chmod +x /opt/usr/bin/smarthtml_mailer_tg
-
В конфигурационном файле
/opt/etc/smarthtml.conf
задать путь к mailer-скрипту и включить оповещения:MAILER_SCRIPT="/opt/usr/bin/smarthtml_mailer_tg" USE_MAIL=1
-
Выполнить шаги из инструкции для создания бота и заполнения переменных
API_TOKEN
иCHAT_ID
в скрипте/opt/usr/bin/smarthtml_mailer_tg
. -
Проверить корректность работы оповещений можно отправив тестовое сообщение:
/opt/usr/bin/smarthtml mailtest
Можно написать собственный скрипт для оповещений. При запуске, первым аргументом mailer-скрипту передаётся путь к файлу с сообщением (при стандартных настройках: /opt/var/smarthtml/email
). Второй, опциональный, аргумент: debug
, передаётся при отправке тестового сообщения (при его наличии добавляется аргумент -v
в команду запуска msmtp или sendmail) и может применяться как ключ для вывода в консоль отладочной информации и пр.
Что касается настройки под различные версии Linux, то обычно изменений требует путь к директории с данными скрипта (SCRIPT_DATA_DIR
), директории веб-сервера (HTML_DIR
), расположение скрипта для email-оповещений (MAILER_SCRIPT
), для CGI модуля (smarthtml.cgi) путь к основному скрипту smarthtml (SMARTHTML_CMD
) и имя суперюзера (CGI_SUDO_USER="root"
). В самом скрипте smarthtml
, возможно, понадобится изменить путь к конфигурационному файлу (CONFIG_FILE
). Все главные конфигурационные параметры вынесены в начало скрипта (секция "Platform-specific settings"). Также, можно задать мониторинг нескольких дисковых устройств (через пробел) в переменной DEVICES="/dev/sda /dev/sdb /dev/sdc"
и т.п. Некоторые дистрибутивы (например Ubuntu) изначально содержат урезанную версию awk (mawk
), поэтому для работы скрипта нужно доустановить полноценный awk (gawk
), который можно найти в репозитории любого дистрибутива.
smarthtml # запуск основной процедуры выполнения (запускается cron'ом по расписанию)
smarthtml norrd # запуск без обновления базы RRD (используется CGI модулем)
smarthtml resetwarn # сброс предупреждений (красной строки) после изменений критических параметров
smarthtml resetcount # сброс счётчиков улучшения и ухудшения параметров
smarthtml makerrdgraph # только отрисовка графиков RRD без проверки SMART и без изменения данных
smarthtml mailtest # отправка тестового сообщения (в случае использования email-оповещений)
smarthtml -h|--help # инфо о параметрах вызова
Базы SMART атрибутов и RRD совместимы с предыдущими версиями, конфигурационные файлы (/opt/etc/smarthtml.conf
) не совместимы. В v2.0 код обработки SMART данных полностью переписан под smartctl >= 7.0, более старые версии smartctl не поддерживаются. Также, изменилось имя файла скрипта: smarthtml
вместо smarthtml.sh
.