Korzystanie z usługi Stackdriver na potrzeby monitorowania i logowania w celu lepszego wglądu w stan aplikacji

Z tego modułu dowiesz się, jak zacząć używać usługi Stackdriver do monitorowania i sprawdzania danych i dzienników wydajności usług oraz maszyn wirtualnych Google Cloud Platform.

Podczas tych ćwiczeń

  • Zapoznaj się ze stroną główną Stackdriver.
  • Omówienie paneli i wykresów.
  • Utwórz kontrolę dostępności.
  • Utwórz prostą zasadę tworzenia alertów.
  • Pracuj z incydentami alertów.
  • Przejdź do przeglądarki logów.

Jak oceniasz usługę Stackdriver?

Co to jest monitorowanie? Usługa Stadia nie była dla mnie używana, ale mam doświadczenie w monitorowaniu. Utworzyłem opony usługi Stackdriver, ale nie udało mi się zagłębić się w szczegóły.

Konfiguracja środowiska do samodzielnego ukończenia

Jeśli nie masz jeszcze konta Google (Gmail lub Google Apps), musisz je utworzyć.

Zaloguj się w konsoli Google Cloud Platform (console.developers.google.com) i utwórz nowy projekt:

Pamiętaj identyfikator projektu, czyli unikalną nazwę we wszystkich projektach Google Cloud. W ćwiczeniach nazywamy je później PROJECT_ID.

Bardzo ważne – aby rozpocząć włączanie interfejsu Compute Engine API, otwórz stronę Compute Engine:

A potem: Compute → Compute Engine → Instancje maszyn wirtualnych

Gdy pierwszy raz wykonasz tę czynność, zobaczysz ekran z komunikatem „Compute Engine”. Może to chwilę potrwać. Możesz nadal logować się do Google Cloud Shell, ale maszyna wirtualna będzie można tworzyć dopiero po zakończeniu tej operacji.

Większość pracy będziesz wykonywać w Google Cloud Shell, środowisku wiersza poleceń działającym w chmurze. Ta maszyna wirtualna oparta na Debianie jest wyposażona w wszystkie potrzebne narzędzia dla programistów, które są potrzebne do trwałego katalogu domowego o pojemności 5 GB. Otwórz ikonę Google Cloud Shell, klikając ikonę w prawym górnym rogu ekranu:

Na koniec za pomocą Cloud Shell ustaw domyślną strefę i konfigurację projektu:

$ gcloud config set compute/zone us-central1-b
$ gcloud config set compute/region us-central

Możesz też wybierać i wybierać różne strefy. Dowiedz się więcej o strefach z dokumentacji o regionach i strefach.

W tej sekcji utworzysz instancje Compute Engine z nginx+ za pomocą programu uruchamiającego Cloud. Będziemy potrzebować tych instancji, aby zademonstrować monitorowanie i alerty. Instancję Compute Engine możesz utworzyć z poziomu konsoli graficznej lub za pomocą wiersza poleceń. W tym module nauczysz się używać poleceń.

Teraz możemy zacząć.

Użyj gcloud, aby ustawić identyfikator projektu:

$ gcloud config set project PROJECT_ID



Następnie skopiuj & wklej ją w niezmienionej postaci:

$ for i in {1..3}; do \
gcloud compute instances create "nginx-plus-$i" \
--machine-type "n1-standard-1" \
--metadata  "google-cloud-marketplace-solution-key=nginx-public:nginx-plus" \
--maintenance-policy "MIGRATE" --scopes default="https://www.googleapis.com/auth/cloud-platform" \
--tags "http-server","google-cloud-marketplace" \
--image "https://www.googleapis.com/compute/v1/projects/nginx-public/global/images/nginx-plus-ubuntu1404-v20150916-final" \
--boot-disk-size "10" --boot-disk-type "pd-standard" \
--boot-disk-device-name "nginx-plus-$i"; done

Zobaczysz komunikaty ostrzegawcze o rozmiarze dysku, a potem te dane wyjściowe po utworzeniu każdej maszyny wirtualnej:

NAME         ZONE          MACHINE_TYPE  PREEMPTIBLE INTERNAL_IP EXTERNAL_IP     STATUS
nginx-plus-1 us-central1-b n1-standard-2                X.X.X.X  X.X.X.X      RUNNING
...

Zapisz EXTERNAL_IP – to później ważne.

Może to potrwać kilka minut.

Domyślnie Google Cloud Platform zezwala na dostęp tylko do kilku portów. Ponieważ wkrótce Nginx będzie miał dostęp do Nginx, włączmy port 80 w konfiguracji zapory sieciowej:

$ gcloud compute firewall-rules create allow-80 --allow tcp:80 --target-tags "http-server"
Created [...].
NAME     NETWORK SRC_RANGES RULES  SRC_TAGS TARGET_TAGS
allow-80 default 0.0.0.0/0  tcp:80 http-server

Spowoduje to utworzenie reguły zapory sieciowej o nazwie allow-80, która będzie zawierała te wartości domyślne:

  • Lista blokad adresów IP, które mogą nawiązywać połączenia przychodzące (--source-ranges) jest ustawiona na 0.0.0.0/0 (wszędzie).
  • Lista tagów instancji wskazujących na zbiór instancji w sieci, które mogą akceptować połączenia przychodzące, jest ustawiona na brak, co oznacza, że reguła zapory sieciowej ma zastosowanie do wszystkich instancji.

Uruchom gcloud compute firewall-rules create --help, aby zobaczyć wszystkie ustawienia domyślne.

Po utworzeniu pierwszej instancji możesz sprawdzić, czy nginx jest uruchomiony i dostępny, przechodząc pod adres http://EXTERNAL_IP/, gdzie EXTERNAL_IP to publiczny adres IP nginx-plus-1, a powinna być widoczna strona Nginx:

Uruchomione instancje możesz też wyświetlić, wpisując:

$ gcloud compute instances list

Google Stackdriver to zaawansowane rozwiązanie monitorujące, które integruje różne narzędzia, aby ułatwić monitorowanie i analizowanie aplikacji działających w chmurze. Za pomocą usługi Stackdriver możesz w jednym miejscu wyświetlać wskaźniki wydajności, ustawiać i otrzymywać alerty, dodawać własne panele informacyjne i wskaźniki, wyświetlać logi i logi czasu oraz konfigurować zintegrowane panele.

Kolejne kroki będą dotyczyć włączenia usługi Stackdriver i pracy z konsolą.

Domyślnie usługa Google Stackdriver jest obecnie w wersji beta i nie jest włączona w nowych projektach. Aby go włączyć, w lewym pasku nawigacyjnym kliknij „Monitorowanie” (konieczne może być przewinięcie strony w dół).

Na następnym ekranie kliknij "Enable Monitoring" i poczekaj chwilę, aż zostanie włączone.

Po włączeniu tej funkcji zmieni się treść i zobaczysz poniższy tekst. Aby rozpocząć odkrywanie, kliknij "Przejdź do monitorowania. Musisz zalogować się w Google, a następnie przejść do konsoli Stackdriver dla swojego projektu, gdzie będziesz wykonywać i analizować zadania związane z monitorowaniem.

Zapoznajmy się ze stroną główną.

  1. Menu u góry: służy do wybierania różnych widoków / kontekstów oraz daje dostęp do wszystkich dostępnych działań w usłudze Stackdriver.
  2. Panele informacyjne: to wskaźniki pozwalające monitorować dane i zdarzenia. Początkowo są to wstępnie zdefiniowane panele systemowe utworzone na podstawie zasobów projektu, ale możesz też tworzyć własne panele.
  3. Kontrole dostępności: służą do okresowego sprawdzania dostępności zasobów dostępnych dla użytkowników i włączania alertów, gdy stają się one niedostępne.
  4. Lista grup: służy do grupowania zasobów o wspólnych właściwościach i cechach, dzięki czemu można je wykorzystywać jako grupy lub klastry dla zadań takich jak monitorowanie i alerty. Mogą być wykrywane automatycznie, a także definiowane przez użytkownika.
  5. Okienko incydentów: panele incydentów śledzą alerty o incydentach. Dopóki nie określisz zasad tworzenia alertów, nie zobaczysz tu nic.
  6. Dziennik zdarzeń: zawiera listę zdarzeń powiązanych z monitorowanymi zasobami, takich jak zmiany wystąpień, zdarzenia incydentów itp.

Zanim przeanalizujemy te wykresy, zauważysz, że większość wierszy spłaszczyła się po pierwszym uruchomieniu instancji. Sprawdźmy, czy uda nam się &"&"; zapewnić kompatybilność z niektórymi z tych źródeł, generując pewne obciążenia w jednej z instancji.

Aby nawiązać połączenie SSH z wierszem poleceń Cloud Shell:

$ gcloud compute ssh nginx-plus-1
...
Do you want to continue (Y/n)? Y
...
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): [Hit Enter]
Enter same passphrase again: [Hit Enter]
...

yourusername@nginx-plus-1:~$

To bardzo proste. (W wersji produkcyjnej wpisz hasło :). Pamiętaj też, że prośba o dodanie hasła może nie być wyświetlana.

Możesz też połączyć się z instancją przez SSH bezpośrednio z konsoli, przechodząc do Compute Engine > instancji maszyn wirtualnych i klikając SSH.

In the SSH window, type:

yourusername@nginx-plus-1:~$ sudo apt-get install rand
yourusername@nginx-plus-1:~$ for i in {1..10}; do dd if=/dev/zero of=/dev/null count=$(rand -M 80)M; sleep 60; done &

Wczytuję instancję procesora nginx-plus-1. Możemy wrócić do karty panelu Stackdriver i rozpocząć przeglądanie, ale zanim wrócimy do strony paneli usługi Stackdriver, zainstaluj agenta Cloud Logging.

Fetch and install the script:

yourusername@nginx-plus-1:~$ curl -sS https://dl.google.com/cloudagents/add-logging-agent-repo.sh | sudo bash /dev/stdin --also-install

Pamiętaj, aby przed zainstalowaniem danych w środowisku produkcyjnym sprawdzić identyfikator SHA-256. Więcej informacji o procesie instalacji znajdziesz tutaj.

Czas wrócić do Google Stackdriver Console.

Poświęć trochę czasu na zapoznanie się z nawigacją i korzystaniem z paneli informacyjnych oraz wykresów. Najedź kursorem na linie wykresu, aby zobaczyć, co się dzieje. Zmiana czasu trwania wykresów (elementy sterujące znajdują się w prawym górnym rogu). Zawsze możesz wrócić do widoku &strony głównej, klikając logo Stackdriver w lewym górnym rogu konsoli.

Spójrzmy na wykres wykorzystania procesora:

Niektóre elementy wykresu:

  • Wyróżniona linia to aktualnie wybrane dane (wykres może zawierać wiele rodzajów danych).
  • Szara pozioma linia wskazuje punkt, nad którym znajduje się kursor myszy.
  • Na dole widać nazwę zasobu wraz z wartością w wybranym punkcie czasowym.
  • U góry wykresu znajdują się kolorowe kropki przedstawiające wydarzenia uwzględnione w dzienniku zdarzeń. Możesz je kliknąć, aby wyświetlić listę zdarzeń. Uwaga: jeśli nie masz jeszcze żadnych wydarzeń, być może nie będziesz ich widzieć.
  • W prawym górnym rogu wykresu znajdziesz 3 elementy sterujące (od lewej do prawej):
  • Pokaż/ukryj listę danych pod wykresem
  • Przełącz tryb pełnoekranowy
  • Menu z różnymi smakołykami (MUSISZ użyć trybu rentgenowskiego, jeśli masz bardzo szczegółowy wykres). Zwróć uwagę na opcję „Wyświetl dzienniki” – zajmiemy się tym później.

Kontrole dostępności umożliwiają szybkie sprawdzenie stanu dowolnej strony internetowej, instancji lub grupy zasobów. W przypadku każdej skonfigurowanej kontroli występuje regularny kontakt z różnych lokalizacji na całym świecie. Kontroli dostępności można używać jako warunków w definicjach zasad tworzenia alertów.

Aby wyświetlić czeki i ich stan, wybierz Alerty &gt Kontrole dostępności w menu u góry. W panelu Google Stackdriver oraz na stronach poświęconych konkretnym zasobom znajdziesz też sekcje Kontrole dostępności. W przypadku kontroli dostępności obejmującej grupę zasobów możesz rozwinąć kontrolę, aby zobaczyć stan poszczególnych członków grupy.

Utwórz kontrolę dostępności. Znajdź widżet kontroli dostępności na ekranie głównym usługi Stackdriver:

Pojawi się nowe wyskakujące okienko. Możemy skonfigurować kontrolę dostępności dla pojedynczego zasobu lub grupy zasobów, użyć niestandardowych nagłówków i ładunków, dodać uwierzytelnianie i inne opcje. Na razie użyjemy domyślnego sprawdzenia http, które będzie co 1 minutę sprawdzać automatycznie utworzoną grupę nginx.

Oto opcje dostępne na zrzucie ekranu poniżej:

Kliknij przycisk „Przetestuj”, aby upewnić się, że Twoje punkty końcowe są osiągalne (powinny być 3 zielone wartości OK), a następnie kliknij Zapisz. Uwaga: jeśli wszystko się zgadza, nadal możesz kontynuować moduł, ponieważ może to być po prostu problem z czasem sprawdzania testów.

W następnym polu „Utworzono kontrolę dostępności” pojawi się pytanie, czy chcesz utworzyć zasadę tworzenia alertów dla tej kontroli. Zróbmy to w następnej sekcji – nie klikaj niczego.

Możesz skonfigurować zasady tworzenia alertów, aby określić warunki określające, czy usługi i platformy działające w chmurze działają normalnie. Cloud Monitoring udostępnia wiele różnych rodzajów danych i kontroli stanu, których można używać w zasadach.

Gdy naruszymy zasady tworzenia alertów, w sekcji Zdarzenia incydentów zostanie utworzony i wyświetlony incydent. Osoby odpowiedzialne za monitorowanie incydentów mogą potwierdzać otrzymanie powiadomienia i zamykać incydenty, gdy sprawa jest już pomyślnie rozwiązana.

Kliknij „Utwórz zasadę tworzenia alertów” i przejdźmy do konfiguracji zasady.

Powinien pojawić się ten ekran:

Wpisz nazwę zasady: "Kontrola dostępności grupy nginx"

W sekcji Sposób powiadamiania kliknij „Dodaj powiadomienie”.

Wpisz adres e-mail powiązany z kontem Google Cloud. Przewiń do dołu ekranu i kliknij „Zapisz zasadę”.

Wróć na stronę główną Stackdriver (kliknij logo w lewym górnym rogu).

W sekcji kontroli dostępności w panelu powinny być widoczne utworzone w ten sposób informacje o dostępności. Na razie stan powinien mieć kolor zielony.

Przewiń w dół do dziennika zdarzeń. Powinno być widoczne utworzone zdarzenie zasady tworzenia alertów.

A teraz zróbmy jakieś problemy :)

Zobaczmy, co się stanie, gdy zatrzymamy usługę Ngnix.

Ponownie połącz się z instancją przez SSH z poziomu wiersza poleceń Cloud Shell:

$ gcloud compute ssh nginx-plus-1

I wpisz:

yourusername@nginx-plus-1:~$ sudo service nginx stop

Teraz należy sprawdzić, czy utworzona przez nas konfiguracja powinna zakończyć się niepowodzeniem. W związku z tym zostanie utworzony incydent, a na podany przez Ciebie adres zostanie wysłany e-mail z powiadomieniem o alercie. Wykrycie warunku zajmie minutę (pamiętaj, że trwa to 1 minutę podczas konfigurowania kontroli dostępności), więc możemy przejść do strony grupy nginx.

Istnieje kilka sposobów przechodzenia do panelu konkretnych grup zasobów:

  1. Na stronie głównej możesz kliknąć nazwę grupy. Zostanie przełączony na panel zaprojektowany do monitorowania zasobów grupy. Możesz też dostosować panel.



  2. Z menu najwyższego poziomu wybierz Grupy, a następnie znajdź określoną grupę.

Teraz kliknij przycisk autoodświeżania, aby upewnić się, że panele są odświeżane automatycznie. Ikona zmieni kolor na czerwony.

Patrzysz teraz na panel przeznaczony dla automatycznie utworzonej grupy nginx. Po prawej stronie znajdują się wykresy kilku kluczowych danych dotyczących grupy. Inaczej mówiąc, na tych wykresach widać wskaźniki dotyczące wszystkich zasobów w grupie nginx (3 maszyny wirtualne nginx+ utworzone wcześniej).

Po lewej stronie widoczne są różne informacje na temat grupy:

  • Stan incydentu
  • Kontrole dostępności
  • Dziennik zdarzeń
  • Lista zasobów (instancje, woluminy itp.)

Pamiętaj, że te pola mają zastosowanie tylko do grupy, więc dziennik zdarzeń zawiera tylko zdarzenia związane z grupą.

Możesz klikać różne zasoby lub podgrupy, aby przejść do odpowiednich paneli. Gdy klikniesz np. nginx-plus-1, otworzy się panel zawierający tylko dane i testy dotyczące tej instancji. Zapraszamy już dziś:

Incydenty usługi Stackdriver są otwierane, gdy zestaw warunków tworzenia alertów spełnia określone kryteria. W naszym przypadku utworzyliśmy alert kontroli dostępności nginx, który obecnie kończy się niepowodzeniem nginx-plus-1. Incydenty ułatwiają śledzenie bieżących warunków oraz współpracę z innymi członkami zespołu podczas rozwiązywania problemów.

Powiadom o tym incydent, aby inni członkowie zespołu wiedzieli, że my zbadamy sprawę:

Pamiętaj, że spowoduje to zmianę stanu incydentu na Otwórz lub Potwierdzone. Sytuacja jeszcze się nie rozwinęła (warunki w związku z naruszeniem zasad nadal są naruszane), ale informujesz członków zespołu, że się zajmujesz. Ten wpis będzie też rejestrowany w dzienniku zdarzeń.

Incydenty można naprawić ręcznie albo automatycznie. Aby połączyć się z drugim rozwiązaniem, przez SSH do nginx-plus-1 rozwiąż problem:

yourusername@nginx-plus-1:~$ sudo service nginx start

Teraz incydent zostanie automatycznie uznany za rozstrzygnięty, gdy kontrola dostępności znowu stanie się normalna. Możesz też rozwiązać ten problem samodzielnie, wybierając pozycję menu z rozwiązaniem.

Cloud Logging to rozwiązanie działające jako usługa, które zapewnia wygodne, centralne miejsce do przeglądania logów z wielu źródeł i wysyłania do nich zapytań. Możesz też korzystać z logów do eksportowania danych do innych miejsc docelowych (Google Cloud Storage, Google BigQuery lub Google Cloud Pub/Sub).

Aby uzyskać dostęp do przeglądarki logów Cloud, wybierz ją z menu po lewej stronie Cloud Console:

Otworzy się przeglądarka logów, w której możesz definiować predefiniowane zapytania oraz tworzyć i zapisywać własne zapytania, pobierać transmisje na żywo z logów pochodzących z wielu zasobów w chmurze, tworzyć wskaźniki z logów, eksportować dane i wykonywać wiele innych czynności.

Dostępne są przydatne opcje, które pozwalają szybko filtrować odpowiednie informacje:

  1. Filtruj według typów zasobów
  2. Filtruj do określonych typów logów wybranych zasobów
  3. Filtruj określone poziomy rejestrowania
  4. Filtruj według określonych dat, aby przeanalizować wcześniejsze problemy
  5. Przełącz ciągłe odtwarzanie strumieniowe
  6. Pole wyszukiwania z tekstem, etykietą lub wyrażeniem regularnym

A teraz zajmijmy się zawężeniem do konkretnych logów.

W selektorze typów zasobów (1 na zrzucie ekranu) wybierz Compute Engine -> Wszystkie typy zasobów.

Następnie w selektorze logów (2 na zrzucie ekranu) wybierz nginx-access, aby wyświetlić wszystkie logi dostępu.

Teraz włącz strumieniowe przesyłanie danych (5), by na bieżąco monitorować dzienniki. Jeśli nie widzisz nowych logów, wpisz zewnętrzny adres IP jednej z maszyn wirtualnych nginx-plus w przeglądarce.

Chociaż to ćwiczenie z zakresu programowania nie skupia się na logach, możesz przejrzeć te informacje później, zanim uporządkujesz je. Więcej informacji o poruszaniu się po przeglądarce znajdziesz tutaj. Jeśli chcesz dowiedzieć się więcej o tym, do czego możesz wykorzystać Cloud Logging, zapoznaj się z katalogiem najwyższego poziomu dla odpowiedniej dokumentacji.

Zwolnijmy zasoby obliczeniowe utworzone podczas ćwiczeń z kodu. Uruchom następujące polecenia w Cloud Shell:

$ for i in {1..3}; do \
gcloud -q --user-output-enabled=false compute instances delete nginx-plus-$i ; done

Następnie otwórz konsolę Google Stackdriver (&Monitoring") w menu po lewej stronie panelu Cloud Console i usuń utworzone przez nas zasady kontroli dostępności i alertów. Aby to zrobić, w menu najwyższego poziomu kliknij kolejno Alerty –> Zasady – omówienie i Alerty -&gt. Kontrola dostępności.

Teraz możesz monitorować aplikacje działające w chmurze.

Omawiane zagadnienia

  • Zapoznaj się ze stroną główną Stackdriver.
  • Informacje o panelach i wykresach.
  • Tworzę kontrolę dostępności.
  • Tworzenie prostych zasad tworzenia alertów.
  • Praca z incydentami alertów.
  • Poruszanie się po przeglądarce logów.

Następne kroki

  • Spróbuj utworzyć panele niestandardowe.
  • Zapoznaj się z różnymi opcjami tworzenia zasad tworzenia alertów.
  • Poznaj różne opcje dostępne w Cloud Logging.

Więcej informacji

Prześlij nam swoją opinię

  • Poświęć chwilę na wypełnienie krótkiej ankiety