Как настроить сервер для отправки электронных писем после запуска (т.е. не в качестве почтового сервера)?

Windows Server 2012 R2 с графическим интерфейсом, система ИБП

Я настраиваю свой первый сервер. Это хост Hyper-V, который будет содержать несколько серверов виртуальных машин. Система находится на ИБП.

Когда ИБП обнаруживает сбой питания переменного тока, ИБП отправляет электронное письмо через почтовый сервер SMTP, расположенный в другом месте, а затем выполняет постепенное отключение сервера, если питание не восстанавливается по истечении определенного периода времени. Когда питание восстанавливается, BIOS хост-машины настраивается на автоматическую перезагрузку.

Я хотел бы получать электронные письма с различных серверов, которые они перезагрузили после восстановления питания. Мой ИБП не отправляет электронные письма при восстановлении переменного тока, но даже если бы он это сделал, это не сказало бы мне, что серверы были восстановлены. Я хотел бы, чтобы каждый сервер отправлял электронное письмо после того, как оно вернется в онлайн.

Какие шаги / методологии необходимо использовать для достижения этой цели? Под методологией я имею в виду спросить, нужно ли мне писать сценарий, или есть встроенный инструмент для этого и т. Д.?

У меня есть информация о SMTP-сервере, порты, учетные данные для входа в систему и т. Д., Чтобы отправить электронное письмо, я просто не понимаю, как заставить сервер делать это при включении питания, или каков стандартный / лучший метод для такого уведомления, чтобы нормально быть обработанным.

Благодарю.

2 ответа

Один из способов сделать это без написания скрипта Powershell - это сервис мониторинга. У вас есть какой-либо тип мониторинга в настоящее время? Большинство служб мониторинга уведомят, что сервер недоступен, а затем отправят "полностью очищенное" электронное письмо, когда сервер будет восстановлен. Некоторые из бесплатных инструментов с открытым исходным кодом, которые я использовал, это Zabbix и Nagios. Они могут работать с установленным агентом или в режиме без агента с использованием SNMP. Они также являются инструментами ManageEngine, которые бесплатны для отслеживаемых до 20 серверов. https://www.manageengine.com/free-windows-health-monitor/free-windows-health-monitor-index.html

Я думаю, что этот подход лучше, потому что он также дает вам возможность отслеживать другие ключевые метрики (если они еще не отслеживаются).

Мое предложение:

На каждом сервере VM вы создаете два файла:

  1. Первый; Файл.eml. Это текстовый файл, который используется в качестве шаблона электронной почты. Заполните его конкретной системной информацией, которую вы хотите получить при запуске конкретного сервера. Файл должен начинаться так:

От: sender@domain.com

To: youremail@yourdomain.com

Тема: Сервер запуска системы nnn

  1. Во-вторых, Пакетный файл для копирования файла.eml в папку раскладки вашего сервера Exchange. Папка раскладки находится по адресу: "C:\Program Files\Microsoft\Exchange Server\V14\TransportRoles\pickup" вашего сервера обмена.

  2. Наконец, на каждом сервере VM создайте задачу в планировщике задач (taskschd.msc), которая запускается при запуске системы и выполняет действие для запуска вышеуказанного командного файла.

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

Надеюсь это поможет.

Изменить: если у вас не работает сервер Exchange, моя идея запустить пакетный файл с планировщиком задач в сочетании с этим вопросом может дать https://stackoverflow.com/questions/709635/sending-mail-from-batch-file Вы желаемый результат, а также.

Другие вопросы по тегам