Для отправки уведомлений, у нас будет использоваться
почтовый ящик alarm@adminunix.ru,
сервер исходящей почтыadminunix.ru
паролем: super_password
email администратора у нас будет it@adminunix.ru
В вашем случае, данные для подключения к почтовому серверу и адрес получателя, необходимо указать свои.
Настройка отправки почты с сервера:
Для начала установим пакет ssmtp:
sudo apt-get install ssmtp
Настраиваем ssmtp
Отредактируем конфигурационный файл:
sudo mcedit /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 #Указываем пароль для подключения authpass=super_password AuthMethod=LOGIN # 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=adminunix.ru rewriteDomain=adminunix.ru #принудительное указание домена в поле From # Where will the mail seem to come from? #rewriteDomain= # The full hostname Очень желательно, чтобы hostname совпадал с PTR записью IP адреса, с которого будем устанавливать соединение, но не обязательно. hostname=ts174-23.adminunix.ru # 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=NO #Запрещает скриптам «решать» с какого ящика отправлять письмо.
теперь отредактируем алиасы для отправки почты:
mcedit /etc/ssmtp/revaliases
Добавим в него следующее:
root:alarm@adminunix.ru:adminunix.ru postmaster:alarm@adminunix.ru:adminunix.ru
#for yandex root:alarm@yandex.ru:smtp.yandex.ru:465 ubuntu:alarm@yandex.ru:smtp.yandex.ru:465 postmaster:alarm@yandex.ru:smtp.yandex.ru:465
#for gmail root:alarm@gmail.com:smtp.gmail.com:587 ubuntu:alarm@gmail.com:smtp.gmail.com:587 postmaster:alarm@gmail.com:smtp.gmail.com:587
Если необходимо отправлять почту через smtp.yandex.ru
mailhub=smtp.yandex.ru:465 #адрес и порт smtp сервера яндекса UseTLS=YES #Использование шифрования SSL/TLS
Если необходимо отправлять почту через smtp.gmail.com
mailhub=smtp.gmail.com:587 UseSTARTTLS=YES
для FreeBSD изменим почтового клиента используемого по умолчанию:
mcedit /etc/mail/mailer.conf
приведем его к следующему виду:
#sendmail/usr/libexec/sendmail/sendmail #send-mail/usr/libexec/sendmail/sendmail #mailq<>/usr/libexec/sendmail/sendmail #newaliases/usr/libexec/sendmail/sendmail #hoststat/usr/libexec/sendmail/sendmail #purgestat/usr/libexec/sendmail/sendmail sendmail/usr/local/sbin/ssmtp send-mail/usr/local/sbin/ssmtp mailq/usr/local/sbin/ssmtp newaliases/usr/local/sbin/ssmtp hoststat/usr/bin/true purgestat/usr/bin/true
Для проверки работы SSMTP
echo test | mail -v -s "testing ssmtp setup" it@adminunix.ru
Если вы хотите настроить отправку писем для своего веб-сайта на php, измените файл php.ini:
#for apache sudo nano /etc/php5/apache2/php.ini #for nginx and php-fpm sudo nano /etc/php5/fpm/php.ini[/bash]
Найдите строку sendmail_path (она задокументирована с помощью 😉 и ниже неё вставьте:
sendmail_path = ssmtp -t
Отправка писем из скриптов bash/shell
Теперь давайте копнем глубже и попробуем отправить письмо из скрипта оболочки. Ниже простой скрипт, отправляющий информацию по использованию диска.
#!/bin/bash du -sh | mail -s "disk usage report" it@adminunix.ru
Откройте новый файл, вставьте в него приведенные выше строки, сохраните и запустите. Вы получите письмо, содержащее вывод команды «du -sh».
И последняя хитрость в письмах из командной сроки — добавление вложений к письмам, отправляемым из скриптов. Предположим, вам необходимо сделать резервную копию директории с конфигурационными файлами, заархивировать ее и отправить в качестве вложения с помощью mutt:
#!/bin/bash tar -zcf /home/user/backup.tar.gz /home/user/files_to_backup echo "Archived configuration files" | mutt -a /home/user/backup.tar.gz -s "backup data" it@adminunix.ru
Команда echo в начале третьей строки добавляет текст «Archived configuration files» в тело письма.
#!/bin/bash df -h > /tmp/mail_report.log free -m >> /tmp/mail_report.log mail -s “disk and RAM report” it@adminunix.ru < /tmp/mail_report.log
настройка Mdadm
Отредактируем настройки mdadm
sudo nano /etc/mdadm/mdadm.conf
Находим строку MAILADDR и вписываем туда адрес получателя уведомлений:
MAILADDR it@adminunix.ru
перезапускаем Mdadm
sudo /etc/init.d/mdadm restart
Теперь нам необходимо протестировать отправку уведомлений от Mdadm, в командной строке пишем:
mdadm --monitor --scan -1 --mail=it@adminunix.ru --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_]
Значит все отлично, система работает, уведомления отправляются и в случае чего, вы будете готовы все поднимать, а в нашей индустрии, быстро поднятое не считается упавшим…