This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Описание
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-оповещений (опционально).
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) и может применяться как ключ для вывода в консоль отладочной информации и пр.
Установка CGI модуля (опционально)
Установка и настройка в других Linux-дистрибутивах.
Что касается настройки под различные версии 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 # инфо о параметрах вызова
Обновление до версии 2.0.
Базы SMART атрибутов и RRD совместимы с предыдущими версиями, конфигурационные файлы (/opt/etc/smarthtml.conf) не совместимы. В v2.0 код обработки SMART данных полностью переписан под smartctl >= 7.0, более старые версии smartctl не поддерживаются. Также, изменилось имя файла скрипта: smarthtml вместо smarthtml.sh.
