Zarządzanie Operational Insights opartych na ML z Amazon DevOps Guru do strumienia zdarzeń Datadog
Amazon DevOps Guru to w pełni zarządzana usługa AIOps, która wykorzystuje uczenie maszynowe (ML) do szybkiego identyfikowania, kiedy aplikacje zachowują się poza ich normalnymi wzorcami działania i jednocześnie generuje wgląd w swoje ustalenia. Te spostrzeżenia generowane przez DevOps Guru mogą być używane do ostrzegania dyżurnych zespołów o reagowaniu na anomalie w krytycznych obciążeniach biznesowych. Jeśli już używasz Datadog do automatyzacji monitorowania infrastruktury, monitorowania wydajności aplikacji i zarządzania dziennikami w celu obserwowania całego stosu technologicznego w czasie rzeczywistym, ten artykuł jest dla Ciebie.
Być może już używasz Datadog do skonsolidowanego widoku interfejsu Datadog Events do wyszukiwania, analizowania i filtrowania zdarzeń z wielu różnych źródeł w jednym miejscu. Zdarzenia Datadog to zapisy znaczących zmian istotnych dla zarządzania operacjami IT i rozwiązywania problemów, takich jak kod, wdrożenia, stan usług, zmiany konfiguracji i alerty monitorowania.
Gdziekolwiek DevOps Guru wykryje zdarzenia operacyjne w Twoim środowisku AWS, które mogą prowadzić do przestojów, generuje spostrzeżenia i rekomendacje. Te spostrzeżenia/zalecenia są następnie przekazywane do punktu końcowego Datadog, specyficznego dla użytkownika przy użyciu interfejsu API zdarzeń Datadog. Następnie możesz tworzyć pulpity nawigacyjne, zdarzenia, alarmy lub podejmować zautomatyzowane działania naprawcze w oparciu o te spostrzeżenia i zalecenia w Datadog.
Datadog gromadzi i ujednolica wszystkie dane przesyłane strumieniowo z tych złożonych środowisk, integrując je jednym kliknięciem w celu pobierania metryk i tagów z ponad 90 usług AWS. Firmy mogą wdrażać agenta Datadog bezpośrednio na swoich hostach i instancjach obliczeniowych w celu zbierania metryk o większej szczegółowości – z dokładnością do jednej sekundy. A dzięki gotowym do użycia pulpitom integracyjnym Datadog firmy zyskują nie tylko ogólny wgląd w kondycję swojej infrastruktury i aplikacji, ale także głębszy wgląd w poszczególne usługi, takie jak AWS Lambda i Amazon EKS.
Poniższy artykuł w przystępny sposób pokaże Ci, jak wykorzystać Amazon DevOps Guru z Datadog, aby uzyskać wgląd w czasie rzeczywistym i rekomendacje dotyczące Twojej infrastruktury AWS. Autorzy zademonstrują, w jaki sposób wgląd wygenerowany przez Amazon DevOps Guru dla anomalii może być automatycznie przesyłany do strumieni zdarzeń Datadog, które następnie można wykorzystać do tworzenia pulpitów nawigacyjnych, tworzenia alarmów i alertów w celu podjęcia działań naprawczych.
Omówienie rozwiązania
Kiedy tworzony jest wgląd Amazon DevOps Guru, reguła Amazon EventBridge jest używana do przechwytywania wglądu jako zdarzenia i kierowania do celu AWS Lambda Function. Funkcja lambda współdziała z Datadog za pomocą interfejsu API REST w celu wypychania odpowiednich zdarzeń DevOps Guru przechwyconych przez Amazon EventBridge.
Regułę EventBridge można dostosować w celu przechwytywania wszystkich szczegółowych informacji DevOps Guru lub zawęzić je do określonych szczegółowych informacji. W tym artykule autorzy zgromadzili wszystkie spostrzeżenia DevOps Guru i wykonają działania w Datadog dla poniższych wydarzeń DevOps Guru:
- DevOps Guru New Insight Open
- DevOps Guru New Anomaly Association
- DevOps Guru Insight Severity Upgraded
- DevOps Guru New Recommendation Created
- DevOps Guru Insight Closed
Etapy wdrażania rozwiązania
Wymagania wstępne
Przed wdrożeniem rozwiązania wykonaj następujące kroki.
- Konfiguracja konta Datadog: Połączy swoje konto AWS z Datadog. Jeśli nie masz konta Datadog, możesz poprosić o bezpłatną próbną instancję deweloperską za pośrednictwem Datadog.
- Poświadczenia Datadog: Zbierz poświadczenia kluczy Datadog, które będą używane do łączenia się z AWS. Wykonaj poniższe czynności, aby utworzyć klucz API i klucz aplikacji.
Dodaj klucz API lub token klienta:
- Aby dodać klucz Datadog API lub token klienta:
- Przejdź do ustawień organizacji, a następnie kliknij klucze API lub tokeny klienta
- Kliknij przycisk Nowy klucz lub Nowy token klienta, w zależności od tego, który tworzysz.
- Wprowadź nazwę swojego klucza lub tokena.
- Kliknij Utwórz klucz API lub Utwórz token klienta.
- Zanotuj nowo wygenerowaną wartość klucza API. Będziesz tego potrzebować w późniejszych krokach
Dodaj klucze aplikacji.
- Aby dodać klucz aplikacji Datadog, przejdź do Ustawienia organizacji > Klucze aplikacji. Jeśli masz uprawnienia do tworzenia kluczy aplikacji, wybierz Nowy klucz. Zanotuj nowo wygenerowany klucz aplikacji. Będziesz tego potrzebować w późniejszych krokach.
Dodaj klucz aplikacji i klucz API do AWS Secrets Manager: Secrets Manager umożliwia zastąpienie zakodowanych na stałe poświadczeń w kodzie, w tym haseł, wywołaniem API do Secrets Manager w celu programowego pobrania klucza tajnego. Pomaga to zapewnić, że klucz nie może zostać naruszony przez osobę badającą Twój kod, ponieważ klucz już nie istnieje w kodzie. Wykonaj poniższe czynności, aby utworzyć nowy secret w AWS Secrets Manager.
- Otwórz konsolę Secrets Manager pod adresem https://console.aws.amazon.com/secretsmanager/
- Wybierz Store a new secret.
- Na stronie Choose secret type wykonaj następujące czynności:
- W polu Secret type wybierz other type of secret.
- W parach Key/value wprowadź swój klucz tajny w polu Key/value
Kliknij Dalej i wpisz „DatadogSecretManager” jako tajną nazwę, a następnie Przejrzyj i Zakończ.
- Włącz DevOps Guru dla swoich aplikacji, wykonując następujące kroki, aby wdrożyć przykładową aplikację bezserwerową, której można użyć do generowania spostrzeżeń DevOps Guru dotyczących anomalii wykrytych w aplikacji.
- AWS Cloud9 jest zalecany do stworzenia środowiska, ponieważ AWS Serverless Application Model (SAM) CLI i AWS Command Line Interface (CLI) są preinstalowane i można uzyskać do nich dostęp z terminala bash.
- Zainstaluj i skonfiguruj SAM CLI – Zainstaluj SAM CLI.
- Pobierz i skonfiguruj Javę. Wersja powinna być zgodna ze środowiskiem wykonawczym zdefiniowanym w szablonie SAM. Konfiguracja funkcji yaml Serverless – Zainstaluj pakiet Java SE Development Kit 11.
- Maven – zainstaluj Maven
Opcja 1: Wdróż aplikację Datadog Connector z repozytorium AWS Serverless
Aplikacja DevOps Guru Datadog Connector jest dostępna w AWS Serverless Application Repository, które jest zarządzanym repozytorium dla aplikacji bezserwerowych. Aplikacja jest spakowana z szablonem AWS Serverless Application Model (SAM), definicją wykorzystywanych zasobów AWS oraz linkiem do kodu źródłowego. Wykonaj poniższe czynności, aby szybko wdrożyć tę bezserwerową aplikację na swoim koncie AWS.
- Zaloguj się do konsoli zarządzania AWS konta, na którym planujesz wdrożyć to rozwiązanie.
- Przejdź do aplikacji DevOps Guru Datadog Connector w AWS Serverless Repository i kliknij „Deploy”.
- Zostanie wyświetlony ekran wdrażania aplikacji Lambda, na którym można wprowadzić nazwę aplikacji Datadog
- Po pomyślnym wdrożeniu na stronie aplikacji AWS Lambda zostanie wyświetlony status „Create complete” dla aplikacji serverlessrepo-DevOps-Guru-Datadog-Connector. Szablon CloudFormation tworzy cztery zasoby,
- Funkcja Lambda, która posiada logikę do integracji z Datadog
- Reguła Event Bridge dla DevOps Guru Insights
- Pozwolenie Lambdy
- Rola IAM
- Teraz pomiń opcję 2 i wykonaj czynności opisane w sekcji „Testowanie rozwiązania”, aby wywołać pewne spostrzeżenia/zalecenia DevOps Guru i sprawdzić, czy zdarzenia są tworzone i aktualizowane w Datadog.
Opcja 2: Zbuduj i wdróż przykładową aplikację Datadog Connector przy użyciu interfejsu wiersza poleceń AWS SAM
Jak widać powyżej, możesz bezpośrednio wdrożyć przykładową aplikację bezserwerową z repozytorium bezserwerowego za pomocą jednego kliknięcia. Alternatywnie możesz sklonować źródłowe repozytorium GitHub i wdrożyć je za pomocą SAM CLI ze swojego terminala.
Serverless Application Model Command Line Interface (SAM CLI) to rozszerzenie AWS CLI, które dodaje funkcjonalność do tworzenia i testowania aplikacji bezserwerowych. CLI udostępnia polecenia, które umożliwiają sprawdzenie czy pliki szablonów AWS SAM są napisane zgodnie ze specyfikacją, lokalne wywoływanie funkcji Lambda, debugowanie funkcji Lambda krok po kroku, pakowanie i wdrażanie aplikacji bezserwerowych w chmurze AWS itd. Aby uzyskać szczegółowe informacje na temat korzystania z interfejsu AWS SAM CLI, w tym pełny opis poleceń AWS SAM CLI, zobacz AWS SAM reference – AWS Serverless Application Model.
Zanim przejdziesz dalej, upewnij się, że na początku wypełniłeś sekcję wymagań wstępnych, która powinna skonfigurować AWS SAM CLI, Maven i Java na twoim lokalnym terminalu. Musisz także zainstalować i skonfigurować Dockera, aby uruchamiać swoje funkcje w środowisku Amazon Linux, które pasuje do Lambda.
Sklonuj kod źródłowy z repozytorium github.
git clone https://github.com/aws-samples/amazon-devops-guru-connector-datadog.git
Zbuduj przykładową aplikację przy użyciu SAM CLI.
To polecenie zbuduje źródło Twojej aplikacji poprzez zainstalowanie zależności zdefiniowanych w Functions/pom.xml, utworzenie pakietu wdrożeniowego i zapisanie go w. folder aws-sam/build.
Wdróż przykładową aplikację przy użyciu SAM CLI.
$sam deploy --guided
To polecenie spakuje i wdroży twoją aplikację w AWS, z serią monitów, na które powinieneś odpowiedzieć, jak pokazano poniżej:
- Nazwa stosu: Nazwa stosu do wdrożenia w CloudFormation. Powinno to być unikalne dla Twojego konta i regionu, a dobrym punktem wyjścia byłoby coś pasującego do nazwy Twojego projektu.
- Region AWS: Region AWS, w którym chcesz wdrożyć swoją aplikację.
- Potwierdź zmiany przed wdrożeniem: Jeśli ustawiono na Y, wszystkie zestawy zmian zostaną wyświetlone przed wykonaniem w celu ręcznego przeglądu. Jeśli ustawiono wartość N, AWS SAM CLI automatycznie wdroży zmiany w aplikacji.
- Zezwól na tworzenie ról SAM CLI IAM: Wiele szablonów AWS SAM, w tym ten przykład, tworzy role AWS IAM wymagane przez funkcje AWS Lambda w celu uzyskania dostępu do usług AWS. Domyślnie są one ograniczone do minimalnych wymaganych uprawnień. Aby wdrożyć stos AWS CloudFormation, który tworzy lub modyfikuje role IAM, należy podać wartość CAPABILITY_IAM dla możliwości. Jeśli w tym monicie nie podano uprawnień, aby wdrożyć ten przykład, należy jawnie przekazać opcję --capabilities CAPABILITY_IAM do tego samego polecenia wdrażania.
- Wyłącz wycofywanie zmian [T/N]: Jeśli ustawione na Y, zachowuje stan wcześniej udostępnionych zasobów, gdy operacja się nie powiedzie.
- Zapisz argumenty w pliku konfiguracyjnym (samconfig.toml): Jeśli ustawione na Y, twoje wybory zostaną zapisane w pliku konfiguracyjnym wewnątrz projektu, dzięki czemu w przyszłości będziesz mógł po prostu ponownie uruchomić sam wdrażania bez parametrów, aby wdrożyć zmiany w swoim aplikacja.
Po wprowadzeniu parametrów powinieneś zobaczyć coś takiego, jeśli podałeś Y, aby wyświetlić i potwierdzić zestawy zmian. Przejdź tutaj, podając „Y”, aby wdrożyć zasoby.
Po pomyślnym wdrożeniu powinno być możliwe zobaczenie pomyślnego utworzenia zasobów. Możesz także znaleźć swoją Lambdę, rolę IAM i regułę EventBridge w wartościach wyjściowych stosu CloudFormation.
Możesz także przetestować i debugować swoją funkcję lokalnie za pomocą przykładowych zdarzeń przy użyciu lokalnej funkcjonalności SAM CLI. Przetestuj pojedynczą funkcję, wywołując ją bezpośrednio za pomocą zdarzenia testowego. Zdarzenie to dokument JSON reprezentujący dane wejściowe, które funkcja otrzymuje ze źródła zdarzenia. Więcej informacji można znaleźć w linku Wywoływanie funkcji Lambda lokalnie – AWS Serverless Application Model tutaj.
$ sam local invoke Functions -e ‘event/event.json’
Gdy wykonasz powyższe kroki, przejdź do sekcji „Testowanie rozwiązania” poniżej, aby wywołać pewne spostrzeżenia DevOps Guru i zweryfikować, czy zdarzenia są tworzone i przesyłane do Datadog.
Przetestuj rozwiązanie
Aby przetestować rozwiązanie, przeprowadź symulację DevOps Guru Insight. Po wykryciu anomalii w aplikacji DevOps Guru tworzy wgląd, jak pokazano poniżej.
W przypadku wglądu DevOps Guru pokazanego powyżej odpowiednie zdarzenie jest tworzone automatycznie i przekazywane do Datadog, jak pokazano poniżej. Oprócz tworzenia zdarzeń, wszelkie nowe anomalie i zalecenia od DevOps Guru są również powiązane ze zdarzeniami.
Porządkowanie
Aby usunąć utworzoną przykładową aplikację, otwórz nowy terminal w swoim środowisku Cloud 9. Teraz wpisz poniższe polecenie AWS CLI i przekaż nazwę stosu podaną w kroku wdrażania.
aws cloudformation delete-stack --stack-name
Alternatywnie możesz również użyć konsoli AWS CloudFormation, aby usunąć stos.
Wnioski
W tym artykule opisano, w jaki sposób Amazon DevOps Guru monitoruje zasoby w określonym regionie konta AWS, automatycznie wykrywając problemy operacyjne, przewidując potencjalne wyczerpanie zasobów, identyfikując prawdopodobne przyczyny i zalecając działania naprawcze. Opisuje szyte na miarę rozwiązanie umożliwiające integrację spostrzeżeń DevOps Guru z Datadog, usprawniając zarządzanie i nadzór nad usługami AWS. To rozwiązanie pomaga klientom korzystającym z Datadog zwiększyć efektywność operacyjną, dostarczając spersonalizowane spostrzeżenia, alerty w czasie rzeczywistym i możliwości zarządzania bezpośrednio z DevOps Guru, oferując ujednolicony interfejs do szybkiego przywracania usług i systemów.
Aby rozpocząć uzyskiwanie wglądu operacyjnego w swoją infrastrukturę AWS za pomocą Datadog, przejdź do strony dokumentacji Amazon DevOps Guru.
Źródło: AWS