Konfigurowanie usługi Amazon Cloudwatch w celu otrzymywania powiadomienia o awarii serwera

13

Mam instancję działającą na Amazon EC2, którą zamieniłem w serwer WWW.

Teraz patrzę na chmurkę, ale nie wiem, czy jest to właściwe narzędzie do pracy. Zasadniczo chcę być informowany o awarii serwera z jakiegokolwiek powodu.

Może serwer został zhakowany lub serwer został zamknięty z jakiegokolwiek powodu, chcę otrzymać powiadomienie.

Włączyłem clouwatch i próbowałem skonfigurować alert, ale widzę tylko takie rzeczy, jak wejście sieciowe lub użycie procesora, czy metryka. Teraz nie wiem, czy to załatwi sprawę.

Saif Bechan
źródło
1
kasa CloudKick. Wiem, że nie powinniśmy rozpowszechniać opinii, ale CloudKick jest moim ulubionym rozwiązaniem do monitorowania. pingdom jest dość bezużyteczny, ponieważ twoja strona może być pingowana (apache / nginx), ale twoje proxy również procesy php / java / ruby ​​mogą nie działać. uderzanie w rzeczywisty adres URL za pomocą CloudKick co 3 minuty i sprawdzanie obecności określonego tekstu lub sukces 2xx jest znacznie bardziej przydatne i zapewnia, że ​​cały stos działa. mam konfigurację monitorów pod kątem obciążenia, użycia pamięci, połączenia agenta (serwer offline lub połączenie zostało przerwane), sukces HTTP 2xx na stronach itp.
iainlbc
Masz tutaj rację. Jeśli tylko php nie działa, nadal otrzymasz 200 odpowiedzi. Podany link jest dobrą alternatywą. Przyjrzę się temu, kiedy podejmę ostateczną decyzję.
Saif Bechan,
@iainlbc Możesz ustawić Pingdom tak, aby trafiał w rzeczywisty adres URL i sprawdzał określony tekst.
ceejayoz,

Odpowiedzi:

11

Jedną z rekomendacji jest monitorowanie metryki, która powinna zawsze mieć wartość liczbową - taką jak użycie procesora, i wyzwalanie alarmu, gdy stan metryki to „niewystarczająca ilość danych”, możesz użyć SNS Amazon, aby powiadomić cię o tym.

Alternatywnie możesz skonfigurować niestandardowe metryki, które zwracają stan binarny dla określonych usług (httpd, mysql itp.) I generują alert za każdym razem, gdy którykolwiek z tych odczytów 0. To podejście oferuje możliwość uzyskania znacznie dokładniejszych szczegółów - połącz to z „niewystarczającymi danymi „na wszystkie przypadki.

Możesz odnieść większy sukces, korzystając z czegoś, co faktycznie monitoruje twoją stronę (np. Pingdom, UptimeRobot itp.).

cyberx86
źródło
Patrzyłem na usługi takie jak pingdom iz pewnością je włączę. Co więcej, myślałem również o spojrzeniu na procesor, ale pomyślałem, co się stanie, gdy tylko serwer WWW zostanie zhakowany. Test na httpd, mysql itp. Z pewnością by pomógł. Czy możesz mi podpowiedzieć, jak włączyć tę metrykę stanu binarnego .
Saif Bechan
W skrócie: określ sposób uzyskania statusu interesującej usługi (np. Ps | grep dla pid / name; sprawdź port w użyciu itp.) - tj. Skrypt watchdog. Zmodyfikuj taki skrypt, aby wywoływał Cloudwatch API (PutMetricData), przekazując mu wartość 0 (w dół) lub 1 (w górę) - najlepiej byłoby użyć jednego z zestawów SDK, które istnieją w tym celu (np. Ruby, PHP, itp); wersja wiersza polecenia mon-put-data jest wolniejsza. Uruchom wszystko z cronem.
cyberx86,
1
Ok, to brzmi trochę skomplikowane. Myślę, że usługa taka jak uptimerobot byłaby dla mnie lepszym wyborem osobistym. Dzięki za wszelką pomoc.
Saif Bechan,
3

Możesz użyć OpsGenie ( http://www.opsgenie.com ), aby wysłać bogaty alert dla CloudWatch. Currenly CloudWatch ma ograniczony zestaw mechanizmów ostrzegania, w tym wiadomości e-mail i SMS za pośrednictwem mechanizmu SNS.

Możesz skonfigurować CloudWatch, aby dzwonił do interfejsu API usług sieciowych OpsGenie, aby szybko otrzymywać powiadomienia odpowiednich osób za pomocą powiadomień push do aplikacji na iPhone'a / Androida, SMS-ów, połączeń głosowych itp. Zgodnie z preferencjami odbiorców.

Szczegółowe informacje można znaleźć w następującym poście na blogu:

http://www.opsgenie.com/blog/2012/09/04/aws-cloudwatch-alarms-on-your-mobile-with-opsgenie.html

enguzekli
źródło
2

Możesz utworzyć alarm w Cloudwatch i ustawić alarm, aby powiadamiał cię, gdy przejdzie w stan „niewystarczających danych”. Większość już dostępnych danych pochodzi z hosta VM, który nie ma rzeczywistego pojęcia o tym, co dzieje się na twoim komputerze.

Na początek polecam zainstalowanie narzędzi Amazon w twoim wystąpieniu i skonfigurowanie skryptu, aby coś raportował (cokolwiek: użycie procesora, cokolwiek) i alarmował, jeśli ta metryka przestanie wysyłać dane (więc metryka przechodzi w stan niewystarczających danych ).

To tylko absolutne minimum, ale powinno być dobrym miejscem do rozpoczęcia.

Zobacz sekcję dotyczącą skryptów monitorowania w podręczniku programisty Cloudwatch: http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html

Matt Connolly
źródło
Świetnie, właśnie tego szukałem.
GivP,
2

Możesz użyć trasy 53 i jej „kontroli stanu”. Dzięki temu możesz wysyłać alerty SNS, a także przekierowywać użytkowników na inną dodatkową stronę internetową lub ekran błędu. Myślę, że to lepsze rozwiązanie dla twojego problemu niż Cloudwatch.

Petr
źródło
2

Możesz wdrożyć kontrolę stanu EC2 . Odbywa się to z deski rozdzielczej EC2. Przejdź do instancji, wybierz instancję, wybierz kartę kontroli stanu (obok opisu instancji) Kliknij przycisk Utwórz alarm kontroli stanu Domyślne ustawienie „Kontrola statusu nie powiodła się (dowolna)” powinno być dobre. Zawsze ustawiam interwał na więcej niż jeden, więc nie przejmuję się przejściowymi problemami.

Możliwe jest również ustawienie EC2, aby automatycznie odzyskiwał instancję, jeśli z jakiegoś powodu ulegnie awarii.

Polecam także dodatkowy system monitorowania. Głupi jest dobry do tego. Skonfigurowałem narzędzie linux mon skierowane na mój serwer z innego hosta. Jeśli nie uda mu się uzyskać kodu odpowiedzi 200 dwa razy z rzędu, otrzymam wiadomość e-mail.

Jorfus
źródło
1

Jeśli chcesz monitorować punkty końcowe HTTP, takie jak interfejs API lub witryna sieci Web, sprawdź mój post na blogu, w jaki sposób to osiągnąć dzięki sprawdzeniom kondycji trasy 53 (nawet jeśli nie używasz trasy 53 dla DNS):

http://eladnava.com/monitoring-http-health-email-alerts-aws/

Elad Nava
źródło