Jak nadążasz za konfiguracjami Nagios / Capistrano podczas korzystania z EC2?

11

Używam Amazon EC2 do mojej aplikacji mobilnej. W zależności od obciążenia aplikacji w danym momencie mogę odradzać nowe instancje, a następnie je usuwać, gdy obciążenie jest niższe, aby zaoszczędzić koszty.

Jak nadążyć za konfiguracjami Nagios w tak dynamicznym środowisku? Jeśli chodzi o zarządzany sprzęt, pliki konfiguracyjne są przewidywalne. W takim przypadku należałoby dodać Nagios, Capistrano i kilka innych plików konfiguracyjnych. Capistrano musi wiedzieć, gdzie wdrożyć nową wersję dla serwera aplikacji. Nagios musi wiedzieć, aby usunąć istniejące wystąpienie lub dodać nowe wystąpienie do monitorowania. Nagios musi również wiedzieć, czy węzeł został celowo usunięty lub czy host nie działa z powodu błędu.

Jak to zrobić ze wspaniałym światem instancji VPS / dynamicznych?

obdarzony wyobraźnią
źródło

Odpowiedzi:

9

Używamy narzędzia do zarządzania konfiguracją (w naszym przypadku Chef), które zapisuje konfigurację Nagios na podstawie informacji o węźle.

cjc
źródło
1
Jasne, użycie Puppet / Chef jest oczywiste. Ale sztuczka polega na tym, jak zarządzać konfiguracją dla poszczególnych węzłów (np. Nie trzeba replikować list węzłów w konfiguracji Puppet serwera Nagios) i nadal pobierać na serwerze Nagios śledzenie dodanych / usuniętych / zmienionych węzłów. Dotykam tego punktu w mojej odpowiedzi poniżej.
Amos Shapira,
3

Napisałem własny zestaw skryptów php, które zapisują konfiguracje nagios do pliku. Nagios jest łatwy, ponieważ jest to tylko plik tekstowy, więc wszystko, co musisz zrobić, to utworzyć szablon dla każdego typu serwera. Następnie, gdy serwer zacznie dodawać plik za pomocą szablonu. Jedynymi danymi, które zmieniają się w pliku, jest adres IP hosta i nazwa.

Dla bardziej statycznych serwerów stworzyłem skrypt, który działa ec2-describe-instancesi tworzy plik dla każdej zwracanej instancji. Każde wystąpienie jest oznaczone tagiem: Cel = XXXX, więc wiem, który szablon zastosować.

Dla naszych grup automatycznego skalowania konfigurujemy powiadomienie za pomocą as-put-notification-configurationpolecenia, które wysyła komunikat do kolejki SQS. Skrypt php jest wykonywany przez crontab. Podczas wykonywania skryptu sprawdza kolejkę pod kątem nowych serwerów. Ilekroć znajdzie nowy serwer, tworzy nowy plik. To samo dzieje się, gdy serwer zostanie usunięty. Prawdopodobnie łatwiejszy w użyciu szef kuchni lub coś takiego, jeśli już go używasz, ale jeśli nie, możesz napisać prostą usługę php, taką jak moja, w ciągu kilku dni.

bwight
źródło
1

Korzystamy z Opsview , który jest kolejnym pakietem nagios + baza danych + opakowanie rest-api. Nie wiem, czy jest to najlepsze rozwiązanie dla wszystkich (a nawet nas), ale pozwala nam dynamicznie konfigurować serwer Nagios za pomocą prostego interfejsu API REST z węzła (lub innego węzła administracyjnego), gdy się pojawi i usunąć go z konfiguracja po zakończeniu. Używam definicji szablonów hostów jako części manifestu kukiełkowego serwera Opsview (/ Nagios), a monitorowani hosty rejestrują się w nim i dołączają do odpowiedniego szablonu hosta jako część manifestu kukiełkowego.

Bardziej „ogólnym” podejściem, które powinno działać z praktycznie wszystkim, nawet oryginalnym Nagios i jego plikami statycznymi, jest konfiguracja przechowywanych marionetek - pozwala ona na napisanie skryptu w celu skonfigurowania dowolnego narzędzia, jakie chcesz, w zależności od informacji, które marionetka zbiera jego manifest.

Sugeruję, że do celów kryminalistycznych nie powinieneś całkowicie usuwać konfiguracji węzła, gdy jest on zdejmowany, ale spróbuj go zarchiwizować, a informacje monitorowania zebrane o nim podczas jego działania.

Amos Shapira
źródło
1

Kilka sposobów

  • Korzystanie ze wstępnie skonfigurowanych szablonów Amazon EC2.

  • Używanie manifestu marionetkowego z różnymi szablonami.

  • Skonfiguruj VPN między siecią nagios a maszyną wirtualną amazon. Następnie wszystkie maszyny wirtualne amazon będą miały statyczne IP, możesz nawet skonfigurować na nich DNS. Mamy nagios działające i monitorujące wszystkie nasze wystąpienia Amazon. Nie potrzebujemy nawet elastycznego ip. Używamy openvpn dla naszej sieci VPN.

  • Zbuduj Nagios, który nasłuchuje zewnętrznego polecenia i odpowiednio zaktualizuj jego konfigurację. W końcu maszyny mogą się zarejestrować, wyrejestrować, zawiesić, wznowić je na Nagios.

Czakri
źródło
0

Nie mam srebrnej kuli do rozwiązania tego problemu z nagios. Ale dla capistrano istnieje capify-ec2 , rozszerzenie dla capistrano, które rozwiązuje listy ról serwera za pomocą funkcji oznaczania Amazon.

teista
źródło