Użyj usługi Amazon CloudWatch Contributor Insights do ogólnej analizy logów NGINX

16 czerwca 2023

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Klienci budują, wdrażają i utrzymują miliony aplikacji internetowych w AWS, a wielu klientów wdraża te aplikacje za pomocą NGINX. Serwer aplikacji NGINX oferuje konfigurowalność, skalowalność i możliwość obsługi milionów jednoczesnych żądań. Wydajność aplikacji internetowych ma kluczowe znaczenie w nowoczesnej infrastrukturze i aplikacjach korporacyjnych. Klienci wykorzystują CloudWatch do monitorowania czasów odpowiedzi, dostępności i zapewniania umów SLA. Zespoły inżynieryjne śledzą również kilka punktów danych i metryk, takich jak wydajność serwera w przypadku zmiany natężenia ruchu, a zespoły inżynieryjne wiedzą, że słaba wydajność pogorszy jakość obsługi klienta. Prowadzi to do niższych wyników w przychodach, co może mieć wpływ na zgodność lub grozić przestojami operacyjnymi.

Warto wiedzieć, że klienci mogą wykorzystać reguły Contributor Insights, funkcję Amazon CloudWatch, do analizy logów aplikacji internetowych. Klienci mogą oceniać wzorce w ustrukturyzowanych zdarzeniach dziennika, gdy są one przesyłane strumieniowo do dzienników CloudWatch, w tym wszelkich niestandardowych dzienników wysyłanych przez aplikacje w chmurze lub z serwerów lokalnych, takich jak dzienniki aplikacji serwera WWW NGINX. CloudWatch Contributor Insights umożliwia zespołom produktowym i inżynieryjnym przeglądanie, badanie i rozwiązywanie problemów występujących w aplikacjach internetowych. Po skonfigurowaniu Contributor Insights działa nieprzerwanie bez ręcznej interwencji, pomagając operatorom izolować, diagnozować, rozumieć i rozwiązywać problemy występujące podczas zdarzenia operacyjnego.

Ten artykuł pokaże Ci, jak monitorować i przeprowadzać analizę logów NGINX za pomocą CloudWatch Contributor Insights. Dzienniki NGINX zapewniają wgląd w aplikacje internetowe, takie jak błędy, czasy odpowiedzi i wydajność aplikacji internetowych. Oprócz CloudWatch Contributor Insights klienci mogą następnie aktywować CloudWatch Metrics i CloudWatch Alarms w celu kompleksowego monitorowania systemu.

Wymagania wstępne

W przypadku tego tutorialu należy spełnić następujące wymagania wstępne:

  1. Włącz serwer NGINX, aby działał na koncie AWS. W tym przykładzie aplikacja internetowa NodeJS i interfejs API zostaną zainstalowane, skonfigurowane i wdrożone przy użyciu dołączonego szablonu CloudFormation.
  2. Serwer aplikacji sieciowych NGINX działający na koncie AWS z włączonymi dziennikami sieciowymi w formacie JSON (patrz konfiguracja NGINX poniżej).

Omówienie rozwiązania

Powyższy rysunek pokazuje, w jaki sposób dzienniki aplikacji serwera sieci Web NGINX są wysyłane do CloudWatch za pośrednictwem wstępnie zainstalowanego agenta CloudWatch w instancjach. Wszystkie AMI Amazon Linux 2 zawierają agenta CloudWatch. Te dzienniki są analizowane przez reguły Contributor Insights, a raport jest wyświetlany na pulpicie nawigacyjnym CloudWatch.

Przegląd

W konsoli zarządzania AWS przejdź do CloudWatch, aby utworzyć grupę dzienników.

Krok 1: Wybierz opcję Create log group.

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

W CloudWatch przejdź do Contributor Insights. Na stronie głównej Contributor Insights wybierz Create a Rule.

  1. Wybierz grupę dzienników NGINX według nazwy z listy rozwijanej.
  2. Wybierz Custom rule dla Typ reguły.
  3. W sekcji Contribution – wprowadź unikalne klucze „remote_addr” i „status”, aby wyodrębnić zdalny adres żądania i status żądania. Zostaną one zwizualizowane na pulpicie nawigacyjnym CloudWatch.
  4. Podaj nazwę reguły.
  5. Wybierz Create.

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX 4

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Po utworzeniu reguły może upłynąć do 5 minut, zanim pojawią się raportowane dane. W tym momencie wdróż stos CloudFormation, który utworzy instancję EC2 z uruchomionym NGINX i aplikację internetową Node Express z dwoma punktami końcowymi API, aby symulować aplikację internetową i przykładowy interfejs API.

Krok 2: Wdróż następujący szablon CFT:

https://nginx-app-server-cw-00.s3.us-west-2.amazonaws.com/Nginx-Web-App-Server-Express-App-Monitor-CloudWatch.yaml

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Zajmie to 5-10 minut. Możesz wyświetlić stan wdrożenia.

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Po wdrożeniu stosu sprawdź kartę danych wyjściowych dla adresu URL NGINX:

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX 4

Krok 3: Wdrożenie trwa 5–10 minut. Po zakończeniu kliknij adres URL witryny, aby wyświetlić następującą aplikację monitorującą działającą z dwoma punktami końcowymi API zakończonymi niepowodzeniem i OK. Aplikacja działa i loguje się do dzienników sieciowych NGINX w formacie JSON. Te dzienniki są przesyłane strumieniowo do CloudWatch w grupie dzienników access_json_log w celu analizy.

Po wyświetleniu monitu z następującą stroną kliknij przycisk continue to HTTP Site:

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Krok 4: Wyświetl status serwera aplikacji sieci Web NGINX, a następnie kliknij /admin/health/x1 i /return-status/200, aby otworzyć w nowych kartach (otwieraj wiele razy, aby zasymulować dostęp do API):

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Krok 5: Teraz, gdy przykładowa aplikacja internetowa i interfejs API są uruchomione, utwórz pulpit nawigacyjny CloudWatch, aby wyświetlić kody odpowiedzi 5XX, 4XX, 3XX z aplikacji. Następnie utworzysz metryki CloudWatch dla kodów odpowiedzi 5XX 4XX 3XX, które będą używane do alarmów CloudWatch.

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Wyszukaj komunikaty dziennika z kodem odpowiedzi 3XX.

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Wyszukaj komunikaty dziennika z kodem odpowiedzi 4XX.

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Wyszukaj komunikaty dziennika z kodem odpowiedzi 5XX.

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Krok 6: Teraz utwórz filtr metryk, który będzie używany do wizualizacji na pulpicie nawigacyjnym CloudWatch i do alarmu CloudWatch.

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

W podobny sposób utwórz nowy filtr metryczny dla kodów stanu 2XX, 4XX, 5XX.

Krok 7: Po utworzeniu tych wskaźników zagregowane dane pomogą w raportowaniu wkładu w Contributor Insights. Teraz dodaj regułę Contributor Insight do pulpitu nawigacyjnego CloudWatch. Wybierz opcję Add to dashboard, aby dodać do istniejącego pulpitu nawigacyjnego lub utworzyć nowy pulpit nawigacyjny. Tutaj dodasz reguły CI oraz wcześniej utworzony Alarm, aby pokazać pojedynczą taflę szkła dla 5XX.

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Uzyj uslugi Amazon CloudWatch Contributor Insights do ogolnej analizy logow NGINX

Podsumowanie

Poprzez ten artykuł autorzy wyjaśnili, jak przesyłać strumieniowo dzienniki NGINX z instancji EC2 do CloudWatch, analizować dzienniki za pomocą filtrów, tworzyć wykresy do wizualizacji kodów stanu NGINX i tworzyć alarmy dla kodów stanu, a wszystko to w jednym okienku.

Monitorowanie i obserwowalność aplikacji internetowych/API ma kluczowe znaczenie dla przedsiębiorstw i ich działalności. Zespoły produktowe i inżynieryjne mogą przeglądać, badać i rozwiązywać problemy występujące w aplikacjach internetowych, gdy dzienniki serwera sieciowego są przesyłane strumieniowo do CloudWatch, korzystając z szerokich możliwości CloudWatch Contributor Insights, CloudWatch Logs, CloudWatch Metrics i CloudWatch Alarms.

Źródło: AWS

 

Case Studies
Referencje

Firma Hostersi pozwoliła nam osadzić ogólne zagadnienia programu Well Architected Framework w kontekście naszej firmy. Oszczędziło nam to wiele czasu i pozwoliło znaleźć lepiej dopasowane rozwiązania do specyfiki naszego biznesu. WAF był świetnym katalizatorem do wprowadzenie szeregu zmian w obszarze niezawodności, szybkości i bezpieczeństwa edrone. 

Piotr Stachowicz
CTO
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.