Посмотрим правде в глаза, диски NAS / Server выходят из строя, и по этой причине важно следить за состоянием и температурой SMART жесткого диска, чтобы вы могли предпринять меры предосторожности, такие как резервное копирование или увеличение охлаждения. Monit – это утилита для автоматического мониторинга, обслуживания и ремонта систем Unix. Если состояние жесткого диска SMART не удается или температура диска высокая, Monit отправит вам уведомление по электронной почте. Затем вы можете изучить и решить любые проблемы. В этом руководстве по Monit я покажу вам, как контролировать температуру жесткого диска и состояние SMART с помощью Monit на вашем домашнем сервере. Под мониторингом состояния SMART на жестком диске я подразумеваю общее состояние SMART, о котором сообщают короткие и длинные тесты. Я предполагаю, что вы уже установили и настроили Monit, следуя моему предыдущему руководству.
Определите разделы диска для мониторинга
Прежде чем вы сможете отслеживать состояние и температуру SMART жесткого диска с помощью Monit, вам необходимо знать, какие диски вы хотите отслеживать. Если вы помните мою недавно созданную комбинацию HTPC-NAS, у меня на сервере есть два жестких диска (sda, это SSD и sdb, это 4 ТБ HDD). У sda есть 3 раздела (sda1, sda2 и sda3). SDB имеет только один раздел. Если вы не знаете, какие из них контролировать, используйте lsblk
команду. Обратите внимание на диски sda и sdb в выводе ниже.
Вывести список всех дисков с помощью команды lsblk
В этом посте я показываю мониторинг состояния SMART жесткого диска только для sda, который является моим SSD. Но процесс аналогичен для других дисков.
Контролируйте свой домашний сервер с Monit:
- Мониторинг загрузки системы домашнего сервера (CPU, RAM, Swap)
- Мониторинг хранилища на жестком диске сервера (место на жестком диске)
- Мониторинг температуры материнской платы
- Мониторинг температуры процессора или процессора
- Монитор жесткого диска SMART здоровья и температуры
- Мониторинг состояния файлового сервера (Samba и NFS)
- Мониторинг состояния веб-сервера (Apache, NGINX и MySQL)
- Мониторинг статуса процесса CouchPotato
- Отслеживать состояние процесса SickBeard
- Отслеживать состояние процесса SickRage
- Отслеживать состояние процесса SABnzbd
- Мониторинг состояния процесса Webmin
- Мониторинг состояния процесса qBittorrent
- Мониторинг статуса процесса передачи
- Мониторинг состояния процесса ShellInABox
Установите smartmontools
Затем вам нужно программное обеспечение, которое называется smartmontools
установленным в вашей системе. smartmontools
содержит smartctl
и осуществляет smartd
мониторинг систем с использованием технологии самоконтроля, анализа и отчетности (SMART), встроенной в большинство современных жестких дисков. smartctl
тесты дают предупреждение о деградации жесткого диска и сбое. Может использоваться для контроля состояния жесткого диска и температуры SMART. Используйте следующую команду для установки smartmontools
.
sudo apt-get install smartmontools
После smartmontools
установки проверьте его производительность с помощью следующей команды (замените sda на интересующий вас диск):
sudo smartctl -i /dev/sda
Вывод должен выглядеть так, как показано на рисунке ниже. Убедитесь, что жесткий диск поддерживает SMART и SMART включен (последние две строки).
Информация о жестком диске smartctl
Если SMART не активирован, используйте следующую команду, чтобы включить его, и проверьте состояние SMART HDD в выходных данных.
sudo smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda
Вывод должен подтвердить, что SMART был включен на жестком диске, и автоматическое автономное тестирование было установлено каждые несколько часов, как показано ниже.
Включить SMART на жестком диске
Теперь мы можем настроить мониторинг состояния SMART жесткого диска с помощью monit.
Создание сценариев мониторинга жесткого диска Monit
Прежде чем мы сможем отслеживать состояние и температуру жесткого диска с помощью Monit, нам нужно будет создать сценарии, которые будут проверять результаты SMART-теста и сообщать об этом Monit. Если он еще не существует, создайте папку с именем «scripts» внутри, /etc/monit
используя команду ниже:
sudo mkdir /etc/monit/scripts
Скрипт мониторинга температуры жесткого диска
Затем создайте новый скрипт мониторинга температуры жесткого диска:
sudo nano /etc/monit/scripts/sdatemp.sh
Скопируйте в него следующее содержимое, сохраните и выйдите (нажмите Ctrl X, нажмите Y и нажмите ENTER).
#!/bin/sh
HDDTP=`/usr/sbin/smartctl -a /dev/sda | grep Temp | awk -F " " '{printf "%d",$10}'`
#echo $HDDTP # for debug only
exit $HDDTP
Затем дайте права на выполнение скрипту, используя следующую команду:
sudo chmod 755 /etc/monit/scripts/sdatemp.sh
Наконец, убедитесь, что скрипт работает и выводит температуру жесткого диска. Для этого временно удалите # перед строкой 3, сохраните, выйдите и выполните команду ниже. Температура жесткого диска должна отображаться в следующей строке, как показано ниже:
$ sudo bash /etc/monit/scripts/sdatemp.sh
25
Если вы видите напечатанную температуру, тогда вам пора. Снова откройте /etc/monit/scripts/sdatemp.sh
, добавьте # перед строкой 3 и сделайте так, чтобы он выглядел как блок кода выше, сохраните и выйдите.
Сценарий мониторинга работоспособности жесткого диска SMART
Затем создайте новый сценарий мониторинга состояния SMART на жестком диске:
sudo nano /etc/monit/scripts/sdahealth.sh
Скопируйте в него следующее содержимое, сохраните и выйдите (нажмите Ctrl X, нажмите Y и нажмите ENTER).
#!/bin/sh
STATUS=`/usr/sbin/smartctl -H /dev/sda | grep overall-health | awk 'match($0,"result:"){print substr($0,RSTART+8,6)}'`
#echo $STATUS
if [ "$STATUS" = "PASSED" ]
then
# 0 implies PASSED
TP=0
else
# 1 implies FAILED
TP=1
fi
#echo $TP # for debug only
exit $TP
Затем дайте права на выполнение скрипту, используя следующую команду:
sudo chmod 755 /etc/monit/scripts/sdahealth.sh
Наконец, убедитесь, что скрипт работает и выводит SMART на жесткий диск. Для этого временно удалите # перед строкой 3 и предпоследней строкой, сохраните, выйдите и выполните приведенную ниже команду. Жесткий диск SMART Общее состояние должно появиться в следующей строке, как показано ниже:
$ sudo bash /etc/monit/scripts/sdahealth.sh
PASSED
0
Если вы видите «PASSED» и «0» напечатаны, то вы можете идти. Снова откройте /etc/monit/scripts/sdahealth.sh
, добавьте # перед строкой 3 и предпоследней строкой и сделайте так, чтобы она выглядела как блок кода выше, сохраните и выйдите.
Мониторинг жесткого диска SMART Health с помощью Monit
Далее необходимо, чтобы у вас был рабочий экземпляр Monit с соответствующим /etc/monit/monitrc
файлом. Конфигурации Monit для различных сервисов загружаются из /etc/monit/conf.d
папки. Чтобы отслеживать состояние SMART жесткого диска с помощью Monit, создайте файл конфигурации Monit с помощью следующей команды.
sudo /etc/monit/conf.d/sdastatus
Скопируйте в него следующее содержимое, сохраните и выйдите (нажмите Ctrl X, нажмите Y и нажмите ENTER).
Этот код поможет отслеживать состояние жесткого диска SMART с помощью Monit. Вы можете изменить слова SSD-Temp
и SSD-Health
на что-то другое. Вы также можете настроить частоту проверки (X циклов). Если состояние жесткого диска SMART не удается или температура жесткого диска становится выше 35, Monit отправит вам уведомление по электронной почте. Пример предупреждения Monit показан ниже.
Оповещение по электронной почте Monit System Monitoring
Я посмотрел на среднюю температуру для моего твердотельного накопителя и добавил к ней 10 C, чтобы установить целевое значение 35 градусов C. Это намного ниже его максимальной температуры в 70 градусов C. Моя установка HTPC-NAS Combo не выделяет много тепла. Не пугайтесь, если ваша температура намного выше, чем цифры, перечисленные здесь.
Тест и перезагрузка Монит
После внесения каких-либо изменений необходимо протестировать конфигурацию Monit:
sudo monit -t
Вы должны увидеть следующее сообщение: Синтаксис файла управления ОК. Затем проверьте, запущен ли Monit, с помощью следующей команды:
sudo /etc/init.d/monit status
Если Monit запущен, перезагрузите конфигурации Monit, используя следующую команду:
sudo /etc/init.d/monit reload
Если Monit не запущен, запустите его, используя sudo monit
команду. Вся последовательность команд для тестирования и перезагрузки Monit показана на рисунке ниже.
Монит Тест и Перезагрузка
Теперь запустите веб-браузер и перейдите на один из следующих URL-адресов в зависимости от того, как настроен ваш Monit (обязательно используйте правильный номер порта):
- HTTP: // локальный: 2812
- http: // IPADDRESS: 2812 (IP-адрес локальной сети)
- http://domain.com:2812 (если ваше доменное имя указывает на ваш сервер)
Вы должны увидеть состояние и температуру жесткого диска, указанные в веб-интерфейсе Monit, как показано на рисунке ниже (см. SSD-Temp и SSD-Health). Приведенный выше скрипт мониторинга состояния SMART выведет «1», если состояние «PASSED», и «2», если обнаружен сбой жесткого диска SMART.
Мониторинг жесткого диска SMART Health с помощью Monit
Вот и все, что нужно SMART для мониторинга состояния и температуры жесткого диска с помощью Monit. Как вы можете видеть, Monit обеспечивает автоматический мониторинг работоспособности системы, что может сильно помочь администраторам. На странице Monit Wiki есть несколько примеров. Больше примеров Monit для домашнего сервера, чтобы следовать, поэтому продолжайте проверять.
Источник записи: https://www.smarthomebeginner.com