У меня есть несколько NT-боксов, расположенных на EC2, за которыми я хотел бы следить. Проблема в том, что блок Nagios должен знать IP-адрес, к которому он может подключиться, чтобы выполнять мониторинг, а IP-адреса экземпляров меняются каждый раз при запуске.
Есть ли хороший способ сделать это, или меня заставят написать программу, которая будет опрашивать API EC2?
Вы можете заглянуть в Эластичные IP-адреса если вам нужны статические IP-адреса. Это IP-адреса, принадлежащие вашей учетной записи AWS, которые вы можете назначить любому запускаемому экземпляру.
Эластичные IP-адреса - это статические IP-адреса, предназначенные для динамических облачных вычислений. Эластичный IP-адрес связан с вашей учетной записью, а не с конкретным экземпляром, и вы контролируете этот адрес, пока не решите явно освободить его. Однако, в отличие от традиционных статических IP-адресов, эластичные IP-адреса позволяют маскировать сбои экземпляра или зоны доступности путем программного переназначения ваших общедоступных IP-адресов на любой экземпляр, связанный с вашей учетной записью.
Вы можете использовать динамический DNS. Установите клиент Dynamic-DNS на каждый из ваших серверов, и IP-адрес будет обновляться при его изменении.
Вам нужно будет настроить Nagios с именами хостов вместо IP-адресов. Вероятно, вам нужен низкий TTL на DNS-сервере, чтобы старый IP-адрес не кэшировался слишком долго.
Мы используем Nagios для мониторинга наших экземпляров Windows на EC2:
Получите эластичные IP-адреса (вам нужны статические IP-адреса).
Открыть ping в брандмауэре EC2 (по умолчанию заблокирован)
Готово!
В Groundwork Open Source 6.4 есть Cloud Connector, который использует EC2 API для автоматического обнаружения и добавления / удаления хостов - это удобно для приложений / веб-сайтов, которые масштабируются вверх и вниз.