Продолжаю мучать “Жорика”, как организовать автоматическую проверку здоровья RAID массива и жёстких дисков, уведомления если проблемы.

Проверка дисков через smartd

Для уведомления о проблемах с жёсткими дисками пригодится smartmontools.

sudo apt update
sudo apt install smartmontools
sudo nano /etc/smartd.conf

В конец файла для каждого диска добавляю строки.

/dev/sda -a -m your_email@example.com
/dev/sdb -a -m your_email@example.com
/dev/sdc -a -m your_email@example.com
/dev/sdd -a -m your_email@example.com

Будут проводиться все проверки и в случае сбоев прилетит сообщение на почтовый ящик.

Подробнее о настройках можно почитать man smartd.conf.

После этого smartd нужно активировать:

sudo systemctl start smartd
sudo systemctl enable smartd

Уведомления через msmtp

Далее нужно настроить мониторинг самого массива. Тут до меня дошло, что нужно же настроить почтовый сервер, иначе как будут отправляться письма.

Сначала думал устанавливать и настраивать postfix, потом после поисков нашёл легковесное решение - msmtp.

geek@zhorik:~$ sudo apt-get install msmtp msmtp-mta
Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Второй пакет позволяет прозрачно заменить sendmail на msmtp, что позволит легко отправлять уведомления от любых других служб, используя стандартные механизмы.

Выбираю включаю AppArmor.

Создаю пароль приложения для почты яндекс инструкция

Далее создаю конфиг msmtp

sudo nano /etc/msmtprc

defaults

auth on
tls on
tls_starttls on
tls_certcheck off
keepbcc on

account yandex
host smtp.yandex.ru
port 587
protocol smtp
from your_email@example.com
user user
password password

account default: yandex

Синтаксис предельно понятен и в комментариях не нуждается. Порт 587 используется для подключений клиентских агентов (MUА) и ретрансляции почты от них. Также можно использовать стандартный порт 25.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
В одном конфигурационном файле можно создать несколько почтовых аккаунтов, в конце добавить запись, которая будет указывать аккаунт по умолчанию, в нашем случае Яндекс: account default: yandex

Сохраняю содержимое файла. Через неделю пробую отправить почту echo "test" | msmtp -d your_email@example.com и получаю своё тестовое письмо.

Мониторинг RAID-массива

Теперь открою конфигурационный файл /etc/mdadm/mdadm.conf и укажу в нем адрес, на который следует отсылать уведомления:

MAILADDR your_email@example.com

Специально для Яндекса нужно ещё добавить, иначе он будет ругаться

MAILFROM jhon-mosk@yandex.ru

Сохраняю файл и обновляю initramfs sudo update-initramfs -u

Для проверки выполню команду mdadm --monitor --scan --test --oneshot

Мне пришло письмо с темой "TestMessage event on /dev/md127:zhorik" и телом:

This is an automatically generated mail message.
TestMessage event detected on md device /dev/md127
The /proc/mdstat file currently contains the following:

Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10]
md127 : active raid5 sdc[1] sdd[3] sdb[0]
      1953260544 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>

Нужно будет ещё проверить, что smartd тоже корректно шлёт письма.