avatar Ubuntu Как настроить отправку почтовых уведомлений о состоянии RAID массива в Ubuntu/Debian

Настройка уведомлений -важная, а главное, необходимая составляющая в строительстве и обеспечении бесперебойной работы IT инфраструктуры. Не важно, какого назначения у вас оборудование, 1 файловый сервер или 1000 серверов различного назначения, уведомления о состоянии системы необходимо настраивать, а еще важнее, их читать! Это позволит избежать простоев компании, а в случае сбоев, оперативно на них реагировать и быстро устранять, пока ситуация не стала критической, дополнительным плюсом, будет являться экономия средств, это как раз тот случай, где возможно обойтись малой кровью…

На написание этой статьи меня побудила одна история, которая произошла на прошлой неделе. Я расскажу вам короткую историю о жадности, безалаберности и некомпетентности.

История одного сбоя.
Ко мне обратились бывшие клиенты, я много где работал, а уж, на ниве флиланса, меня заносило в разные небольшие и средних размеров компании, знакомые попросили заехать в одну «контору», где у них чего-то там не загружается.

Приехав, я обнаружил, что файловый сервер не загружается, какая там была операционная система выяснить не удалось, но от сотрудников я узнал что это был Linux. Мне рассказали что все должно работать т.к. на сервере у них «РАИД 1го уровня» (орфография сохранена) и он поломаться не может, там просто что-то заглючило и им так сказал предыдущий админ…
Ну а теперь более подробно о том что произошло.
На вопрос о наличии IT специалиста, мне ответили что- «В целях оптимизации расходов его уволили, еще год назад...»
Был сервер, на нем был собран программный RAID1, это я выяснил по характеристикам оборудования, аппаратный оно не поддерживает, через какое-то время, на сервере умер 1 жесткий диск, на это никто внимания не обратил, но система продолжала работать, а работала она в режиме 24/7/365, так она проработала до прошлой недели, когда умер второй жесткий диск. Массив был собран из 2х 750Gb дисков. С подобными случаями, мне уже доводилось сталкиваться, но все они были на рабочих станциях, этот случай был 4й на моей памяти. Правда в 3х предыдущих случаях, цена информации была намного ниже — семейные фото и пары гигов спрятанной порнухи, но чтобы все критически-важные данные компании, хранились в одном месте, мне пока видеть не доводилось, ну а чтобы все это завалилось, а резервных копий не было, вообще вижу впервые.
На мой вопрос, о наличии резервных копий, мне дали 5 DVD-R болванок, которые были записаны еще 3 года назад, в общем мы имели полный набор того, как не надо делать, в которые входит наличие неактуальных резервных копий, отсутствие мониторинга.
На мои заявления, о полной потере данных и что я не могу их восстановить, которое можно выразить одним простым словом, владельцы компании, сделали удивленное лицо и сказали что меня рекомендовали как высококлассного специалиста, который в состоянии все починить-занавес!
Выяснилось, что у одного диска при подключении питания шпиндель не вращался, а у второго проблемы с механикой т.к. было слышно характерный хруст, при включении. Главная загадка была в том кто умер первым, а кто вторым т.к. «ново приставленный» жесткий диск хранит в себе более актуальную копию данных. Владельцы начали включать дурака и говорить что- Все должно работать уже завтра- мы за что должны платить деньги, пришлось разубеждать.
Я им объяснил что, для работы в гермо-зоне жесткого диска, требуется специализированное оборудование+ «Чистое помещение» не менее 3го класса-кажется, которыми я не обладаю и нужно обращаться в компании которые специализируются на восстановлении данных. В общем эти «руководители» начали названивать тем кто меня рекомендовал и со словами-«Кого вы нам прислали?!!»- им ответили: «Слушайте что он говорит, он все знает!»- этим клиентам, в следующий, раз сделаю скидку…
Бизнесмены успокоились и смирились.
Поговорив с ними, я выяснил, что диск был забит под завязку и даже приходить удалять старые файлы чтобы освободить место- с харда на 750Gb! Там хранился архив и данные по клиентам почти за 6 лет и эти данные очень ценные. В этой ситуации, я ничем помочь не мог, кроме моего предложения все поднять с нуля и настроить резервное копирование, на внешний NAS сервер, что и было мной проделано.
Я заказал новые жесткие диски+купил бюджетный NAS под бэкапы и все настроил как нужно. Все это вышло чуть больше 1000$
Этой ситуации можно было легко избежать, просто настроив уведомление о состоянии RAID массива.
Чем мы с вами и займемся.

Еще раз напоминаю:

RAID массив, какой бы уровень вы не использовали, не является заменой резервного копирования, он является средством обеспечения отказоустойчивости-не более того!!!
На этом с лирикой закончим и переходим к практике.

Настройка уведомления о состоянии RAID массива по email


Предполагается что сервер или рабочая станция с Ubuntu или Debian, установлены на RAID массив, для примера можно воспользоваться моей старой статьей Как установить Ubuntu 10.04 на RAID 5, на самом деле уровень RAID массива не важен.

Для отправки уведомлений, у нас будет использоваться почтовый ящик alarm@example.org, сервер исходящей почты: smtp.example.org и паролем: super_password, ну а email администратора у нас будет admin@example.org
В вашем случае, данные для подключения к почтовому серверу и адрес получателя, необходимо указать свои.

Настройка отправки почты с сервера:
Для начала установим пакет ssmtp:
sudo apt-get install ssmtp


Настраиваем ssmtp

Отредактируем конфигурационный файл:
sudo nano /etc/ssmtp/ssmtp.conf


Приведя его в к виду указанному ниже:
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

#Указываем логин пользователя, для подключения к почтовому серверу
authuser=alarm@example.org
#Указываем пароль для подключения 
authpass=super_password


# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
#Адрес сервера исходящей почты
mailhub=smtp.example.org

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=Server_name.tld

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES


теперь отредактируем алиасы для отправки почты:
nano /etc/ssmtp/revaliases

Добавим в него следующее:
root:alarm@example.org:smtp.example.org
postmaster:alarm@example.org:smtp.example.org


настройка Mdadm
Отредактируем настройки mdadm
sudo nano /etc/mdadm/mdadm.conf


Находим строку MAILADDR и вписываем туда адрес получателя уведомлений:
MAILADDR admin@example.org


перезапускаем Mdadm

sudo /etc/init.d/mdadm restart


Теперь нам необходимо протестировать отправку уведомлений от Mdadm, в командной строке пишем:
mdadm --monitor --scan -1 --mail=admin@example.org --test


Проверяем почтовый ящик админа, там будет лежать письма о состоянии RAID массива, такого содержания:

This is an automatically generated mail message from mdadm
running on Server_name.tld

A TestMessage event had been detected on md device /dev/md/0.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities: [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0: active raid1 sdb1[2] sda1[0]
19529656 blocks super 1.2 [2/2] [UU]

Теперь нам нужно проверить реагирование системы в боевых условиях.
Если дело происходит на физической системе, то выдергиваем SATA шлейф, если на виртуальной, то можно просто отключить один из дисков, после этого идем проверять почту, там будет лежать письмо, следующего содержания:

This is an automatically generated mail message from mdadm
running on Server_name.tld

A FailSpare event had been detected on md device /dev/md/0.

It could be related to component device /dev/sdb1.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities: [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0: active raid1 sdb1[2](F) sda1[0]
19529656 blocks super 1.2 [2/1] [U_]


Значит все отлично, система работает, уведомления отправляются и в случае чего, вы будете готовы все поднимать, а в нашей индустрии, быстро поднятое не считается упавшим…

P.S. Новые клиенты недавно звонили, они обратились в контору по восстановлению данных, им озвучили ценник в 350000 руб, и хотели уточнить, много это или мало, я, честно говоря, не в курсе цен т.к. не сталкивался, предпочитая делать бэкапы, но думаю, это справедливо.
Теперь у этой компании есть новая операционная система, новые быстрые диски, регулярное автоматическое резервное копирование, NAS для хранения резервных копий, а главное у них теперь есть, хоть и приходящий, IT специалист.
Не повторяйте их ошибок, навастривайте уведомления и резервное копирование, это дешевле…

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

22 комментария

avatar
Спасибо Максим, ваши статьи наводят меня на мысль о наших серверах)) Просто есть одно НО, может подскажите решение? Есть файловый сервер на базе windows 2003, там всякий хлам, но иногда бывает нужный, резервное копирование нет, RAID нет, денег не дадут на NAS сервер, к linux у начальство отношение нейтрально-отрицательное, скажите возможно сделать NAS сервер на базе морально устаревшего компьютера + дистрибутив freeNAS с одним диском, хоть как-то подстраховаться?
avatar
Конечно можно, а так, дешевый NAS стоит 3000 руб + 2 харда (зависит от объема).
Вы ребята, ходите по очень тонкому льду!!!
avatar
Собрать из старого железа под freeenas, но все зависит от размеров компании, если 1 сервер то это одни требования, а если больше то тут уже нужно «танцевать» от вашей ситуации!
avatar
Собрать из старого железа не получилось, freeNAS 8.2 ни в какую не хочет ставится, за то ubuntu 12.04 легко, а есть какой-нибудь вариант с ubuntu?
avatar
ftp,samba,nfs,sftp… Вариантов с десяток можно набрать.
avatar
350к это 5к за 10 гигов. нужно в другую фирму обратиться с другими условиями. помню в санрайзе была афигенная фирма, все восстанавливала
avatar
Нужна было бэкапы делать и за системой следить, а «эффективные» менеджеры все «оптимизировали», в результате получили порцию головной боли и потеряли деньги…
avatar
Доброе время суток!
У меня вопрос, а где можно поменять текст сообщений? К примеру твой диск Sda сдох))
И еще а нельзя настроить на смс сообщения?

А так с первого раза получилось настроить и RAID 1 и это)) спасибо))
avatar
текст переделать можно, но придется пере собрать mdadm, что в пакетном дистрибутиве, не очень хорошо, я правда этим не заморачивался, мне было важно чтобы это работало, на шалости времени нет.
SMS оповещения можно сделать очень просто, почти у всех ОП.СО.С.ов есть услуга SMS to email, отправляем email на номер, для примера возьмем Beeline (услуга других операторов легко выясняется в интернете) на email: 71234567890@sms.beemail.ru (71234567890-заменяем на свой номер) и письмо падает на телефон в виде SMS, но там зависит от загрузки шлюза у оперетора, бывало SMS приходило почти через сутки, так-то…

Рад что у вас все получилось! :)
avatar
Спасибо попробую))
avatar
Здравствуйте!
А это работает с аппаратным RAID?
Или только с программным?
avatar
У аппаратных есть свои утилиты для работы с массивами, нужно смотреть их настройки.
avatar
я не думаю что в обычной материнке с встроенным аппаратным RAID есть какое уведомлении на почту
avatar
Я имел в виду полноценные аппаратные RAID контроллеры, а встроенные в мать, я даже не рассматриваю для использования.
avatar
Максим скажите а если ящик для отправки письма например на yandex.ru или на gmail.com? и для отправки нужно прописать порт smtp? и SSL для безопасности? может есть решение? а то на iRedMail все работает но там другая проблемка, провайдер порт прикрыл 25 а уведомление о состоянии RAID массива нужно видеть на личной почте чтобы вовремя реагировать!
avatar
откройте другой порт на сервере, и настройте подключение к нему-для отправки почтового уведомления.
avatar
а вот где прописать порт? не знаю, пробовал /etc/ssmtp/revaliases но без результатов!
avatar
nano /etc/ssmtp/revaliases

Добавляем следующее:
root:alarm@example.org:smtp.example.org:25

где вместо 25 указываем порт для соединения с сервером отправки.
avatar
использовал gmail на порту 587 выдает:
Server didn't like our AUTH LOGIN (530 5.7.0 Must issue a STARTTLS command first. qx1sm6574084lbb.15 — gsmtp)
sendmail: Server didn't like our AUTH LOGIN (530 5.7.0 Must issue a STARTTLS command first. bl6sm6589342lbb.5 — gsmtp)
sendmail: Server didn't like our AUTH LOGIN (530 5.7.0 Must issue a STARTTLS command first. c3sm6592665lbp.2 — gsmtp)
а на порту 465 просто зависает и никакой реакции!
avatar
Вот держите:
nano /etc/ssmtp/ssmtp.conf


Добавляем следующее (думаю с полями разберетесь вставив свои данные)

root=ваш_логин@gmail.com  
mailhub=smtp.gmail.com:465  
AuthUser=ваш_логин
AuthPass=пароль_к_ящику
rewriteDomain=gmail.com  
hostname=gmail.com  
FromLineOverride=YES  
UseTLS=YES


А в
nano /etc/ssmtp/revaliases

добавим следующее:
root:ваш_логин@gmail.com:smtp.gmail.com:465
avatar
Спасибо огромное! день мучений и ваша помощь! и все заработало! ура спасибо!
avatar
Аминь… :)
Есть что добавить? Регистрируйся и оставляй комментарии!