Z tego przewodnika dowiesz się, jak zacząć korzystać z usługi Stackdriver do monitorowania i sprawdzania wskaźników wydajności oraz logów usług i maszyn wirtualnych Google Cloud Platform.
W tym ćwiczeniu z programowania:
- Zapoznaj się ze stroną główną Stackdriver.
- Poznaj panele i wykresy.
- Utwórz kontrolę dostępności.
- Utwórz prostą zasadę tworzenia alertów.
- Praca z incydentami alertów.
- Poruszaj się po przeglądarce logów.
Jakie masz doświadczenie z usługą Stackdriver?
Konfigurowanie środowiska do samodzielnej nauki
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:
Zapamiętaj identyfikator projektu, czyli unikalną nazwę we wszystkich projektach Google Cloud. W dalszej części tego laboratorium będzie on nazywany PROJECT_ID
.
Bardzo ważne: aby rozpocząć włączanie Compute Engine API, otwórz stronę Compute Engine:
Następnie: Compute → Compute Engine → Instancje maszyn wirtualnych
Gdy zrobisz to po raz pierwszy, zobaczysz ekran z komunikatem „Przygotowujemy Compute Engine. Może to potrwać minutę lub dłużej”. Możesz kontynuować logowanie się w Google Cloud Shell poniżej, ale nie możesz tworzyć maszyn wirtualnych, dopóki ta operacja się nie zakończy.
Większość zadań wykonasz w Google Cloud Shell, czyli środowisku wiersza poleceń działającym w chmurze. Ta maszyna wirtualna oparta na Debianie zawiera wszystkie potrzebne narzędzia dla programistów i oferuje trwały katalog domowy o pojemności 5 GB. Otwórz Google Cloud Shell, klikając ikonę w prawym górnym rogu ekranu:
Na koniec w 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ż wybrać 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ą Cloud Launchera. Będziemy potrzebować tych instancji do zademonstrowania monitorowania i alertów. Instancję Compute Engine możesz utworzyć w konsoli graficznej lub wierszu poleceń. W tym module nauczysz się korzystać z wiersza poleceń.
Zacznijmy.
Użyj polecenia gcloud, aby ustawić identyfikator projektu:
$ gcloud config set project PROJECT_ID
Następnie skopiuj i wklej ten tekst w niezmienionej formie:
$ 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
Pojawią się ostrzeżenia dotyczące rozmiaru dysku, a następnie podczas tworzenia poszczególnych maszyn wirtualnych zobaczysz te dane wyjściowe:
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 ...
Zanotuj EXTERNAL_IP
– będzie Ci później potrzebne.
Wykonanie tych operacji może potrwać kilka minut.
Domyślnie Google Cloud Platform zezwala tylko na dostęp do kilku portów. Wkrótce uzyskamy dostęp do Nginx, więc 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 ma te wartości domyślne:
- Lista bloków adresów IP, które mogą nawiązywać połączenia przychodzące (
--source-ranges
), jest ustawiona na0.0.0.0/0
(Wszędzie). - Lista tagów instancji wskazująca 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.
Aby zobaczyć wszystkie wartości domyślne, uruchom polecenie gcloud compute firewall-rules create --help
.
Po utworzeniu pierwszej instancji możesz sprawdzić, czy nginx działa i jest dostępny, otwierając adres http://EXTERNAL_IP/, gdzie EXTERNAL_IP
to publiczny adres IP instancji nginx-plus-1. Powinna się wyświetlić strona Nginx:
Możesz też wyświetlić uruchomione instancje, wpisując:
$ gcloud compute instances list
Google Stackdriver to zaawansowane rozwiązanie do monitorowania, które integruje różne narzędzia ułatwiające monitorowanie i analizowanie aplikacji działających w chmurze. Za pomocą Stackdriver możesz wyświetlać wskaźniki wydajności, ustawiać i otrzymywać alerty, dodawać własne panele i własne wskaźniki, wyświetlać logi i ślady oraz konfigurować zintegrowane panele – wszystko w jednym miejscu.
W kolejnych krokach dowiesz się, jak włączyć Stackdriver i korzystać z konsoli.
Domyślnie Google Stackdriver jest obecnie w wersji beta i nie jest włączony w nowych projektach. Aby ją włączyć, na pasku nawigacyjnym po lewej stronie kliknij „Monitorowanie” (konieczne może być przewinięcie w dół).
Na następnym ekranie kliknij „Włącz monitorowanie” i poczekaj minutę, aż zostanie włączone.
Po włączeniu tej opcji treść ulegnie zmianie i zobaczysz tekst poniżej. Kliknij „Przejdź do monitorowania”, aby rozpocząć eksplorowanie. Musisz zalogować się w Google, a następnie przejść do konsoli Stackdriver dla swojego projektu. To w niej będziesz wykonywać i analizować zadania związane z monitorowaniem.
Zapoznajmy się ze stroną główną.
- Menu u góry: służy do wybierania różnych widoków i kontekstów oraz uzyskiwania dostępu do wszystkich dostępnych działań Stackdriver.
- Panele: są to panele wskaźników i zdarzeń, które są monitorowane. Początkowo są to wstępnie zdefiniowane panele systemowe oparte na zasobach w projekcie, ale możesz też tworzyć własne panele niestandardowe.
- Kontrole dostępności: okresowo sprawdzają dostępność zasobów dla użytkowników i umożliwiają generowanie alertów, gdy staną się niedostępne.
- Lista grup: grupy służą do grupowania zasobów, które mają wspólne właściwości i cechy, dzięki czemu można nimi zarządzać jako grupą lub klastrem w przypadku zadań takich jak monitorowanie i alerty. Mogą być wykrywane automatycznie lub definiowane przez użytkownika.
- Panel Incydenty: śledzi incydenty alertów. Dopóki nie zdefiniujesz zasad tworzenia alertów, nie zobaczysz tu żadnych informacji.
- Dziennik zdarzeń: zawiera listę zdarzeń związanych z monitorowanymi zasobami, np. zmiany instancji, zdarzenia związane z incydentami itp.
Zanim przyjrzymy się wykresom, zauważysz, że po początkowej inicjalizacji instancji większość linii się spłaszczyła. Sprawdźmy, czy uda nam się „odpłaszczyć” niektóre z nich, generując obciążenie na jednej z instancji.
Aby połączyć się z instancją przez SSH z wiersza 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 wszystko. Całkiem proste. (W środowisku produkcyjnym wpisz hasło). Pamiętaj też, że może nie pojawić się prośba o dodanie hasła.
Możesz też połączyć się z instancją przez SSH bezpośrednio z konsoli. W tym celu otwórz Compute Engine > Instancje maszyn wirtualnych i kliknij 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 &
Teraz wczytuję procesor instancji nginx-plus-1. Możemy wrócić do karty panelu Stackdriver i zacząć eksplorować, ale zanim to zrobimy, zainstalujmy 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, że podczas instalacji w środowisku produkcyjnym musisz sprawdzić identyfikator SHA-256. Więcej informacji o procesie instalacji znajdziesz tutaj.
Teraz wróć do konsoli Google Stackdriver.
Poświęć trochę czasu na zapoznanie się z nawigacją i korzystaniem z paneli oraz wykresów. Najedź kursorem myszy na linie wykresu i sprawdź, co się stanie. Zmień czas trwania wykresów (elementy sterujące znajdują się w prawym górnym rogu). W dowolnym momencie możesz wrócić do widoku „strony głównej”, klikając logo Stackdriver w lewym górnym rogu konsoli.
Przyjrzyjmy się wykresowi wykorzystania procesora:
Wykres zawiera te elementy:
- Podświetlona linia to obecnie wybrany rodzaj danych (wykres może wyświetlać wiele rodzajów danych).
- Szara linia pozioma wskazuje punkt w czasie, na który wskazuje kursor myszy.
- U dołu znajduje się nazwa zasobu wraz z wartością w wybranym momencie.
- U góry wykresu znajdują się kolorowe kropki reprezentujące zdarzenia, które są szczegółowo opisane w Dzienniku zdarzeń. Możesz je kliknąć, aby wyświetlić listę zdarzeń. Uwaga: jeśli nie masz jeszcze żadnych zdarzeń, możesz ich nie widzieć.
- W prawym górnym rogu wykresu znajdują się 3 elementy sterujące (od lewej do prawej):
- Przełączanie widoczności listy danych pod wykresem
- Przełącz tryb pełnoekranowy
- Menu z różnymi dodatkami (koniecznie wypróbuj tryb rentgenowski, gdy masz bardzo rozbudowany wykres!). Zwróć uwagę na opcję „Wyświetl dzienniki” – wrócimy do niej 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. Kontrole dostępności mogą zostać użyte jako warunki w definicjach zasad tworzenia alertów.
Aby wyświetlić kontrole i ich stan, w menu u góry wybierz Alerty > Kontrole dostępności. Sekcje Kontrole dostępności znajdziesz też w panelu Google Stackdriver i na stronach poświęconych konkretnym zasobom. W przypadku kontroli dostępności obejmujących grupę zasobów możesz rozwinąć kontrolę, aby wyświetlić stan poszczególnych elementów grupy.
Utwórzmy kontrolę dostępności. Znajdź widżet kontroli dostępności na ekranie głównym Stackdriver:
Pojawi się nowe wyskakujące okienko. Możemy skonfigurować testy dostępności dla pojedynczego zasobu lub grupy zasobów, używać niestandardowych nagłówków i ładunków, dodawać uwierzytelnianie i inne opcje. Na razie użyjemy domyślnego sprawdzania HTTP, które będzie sprawdzać automatycznie utworzoną grupę nginx co minutę.
Skorzystaj ze zrzutu ekranu poniżej, aby wypełnić różne opcje:
Kliknij przycisk „Testuj”, aby sprawdzić, czy punkty końcowe są dostępne (powinny pojawić się 3 zielone znaczniki potwierdzenia), a następnie kliknij Zapisz. Uwaga: jeśli nie otrzymasz odpowiedzi „ok”, możesz kontynuować moduł, ponieważ może to być tylko problem z czasem sprawdzania testu.
Następnie pojawi się okno „Utworzono kontrolę dostępności” z pytaniem, czy chcesz utworzyć zasady tworzenia alertów dla tej kontroli. Zrobimy to w następnej sekcji – na razie nic nie klikaj.
Możesz skonfigurować zasady tworzenia alertów, aby określić warunki, które decydują o tym, czy usługi i platformy w chmurze działają prawidłowo. Cloud Monitoring udostępnia wiele różnych rodzajów danych i kontroli stanu, których możesz używać w zasadach.
Gdy warunki zasad tworzenia alertów są naruszone, zostaje utworzony incydent, który wyświetla się w konsoli Stackdriver w sekcji Incydenty. 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ź do konfigurowania zasady.
Powinien być teraz widoczny ten ekran:
Wpisz nazwę zasady: „Kontrola dostępności grupy nginx”.
W sekcji metody powiadamiania kliknij „Dodaj powiadomienie”.
Wpisz adres e-mail powiązany z Twoim kontem Google Cloud. Przewiń na dół ekranu i kliknij „Zapisz zasady”.
Wróć na stronę główną Stackdriver (klikając logo w lewym górnym rogu).
Utworzona kontrola dostępności powinna być teraz widoczna w sekcji kontroli dostępności w panelu. Obecnie stan powinien być zielony.
Przewiń w dół do dziennika zdarzeń. Powinno być w nim widoczne zdarzenie informujące o utworzeniu zasady tworzenia alertów.
Teraz stwórzmy trochę problemów :)
Zobaczmy, co się stanie, gdy zatrzymamy usługę Nginx.
Ponownie połącz się z instancją przez SSH z wiersza poleceń Cloud Shell:
$ gcloud compute ssh nginx-plus-1
Wpisz:
yourusername@nginx-plus-1:~$ sudo service nginx stop
Utworzona przez nas kontrola dostępności powinna teraz zakończyć się niepowodzeniem. W wyniku tego zostanie utworzone zgłoszenie, a na podany powyżej adres e-mail zostanie wysłane powiadomienie o alercie. Wykrycie warunku zajmie minutę (pamiętasz czas trwania 1 minuty podczas konfigurowania kontroli dostępności?), więc przejdźmy do strony grupy nginx.
Panel konkretnej grupy zasobów możesz otworzyć na kilka sposobów:
- Na stronie głównej możesz kliknąć nazwę grupy. Spowoduje to przejście do panelu utworzonego specjalnie do monitorowania zasobów grupy. Możesz też dostosować ten panel.
- W menu najwyższego poziomu wybierz Grupy, a potem znajdź konkretną grupę.
Teraz kliknij przycisk automatycznego odświeżania, aby panele odświeżały się automatycznie. Ikona zmieni kolor na czerwony.
Wyświetli się panel dotyczący automatycznie utworzonej grupy nginx. Po prawej stronie znajdują się wykresy kilku kluczowych danych dotyczących grupy. Innymi słowy, te wykresy pokazują dane dotyczące wszystkich zasobów w grupie nginx (czyli 3 maszyn wirtualnych nginx+, które utworzyliśmy wcześniej).
Po lewej stronie zobaczysz różne informacje dotyczące grupy:
- Stan incydentu
- Kontrole dostępności
- Dziennik zdarzeń
- Lista zasobów (instancji, woluminów itp.)
Pamiętaj, że dotyczą one tylko grupy, więc dziennik zdarzeń zawiera tylko zdarzenia dotyczące grupy.
Możesz klikać różne zasoby lub podgrupy, aby przechodzić do ich paneli. Na przykład kliknięcie nginx-plus-1 spowoduje przejście do panelu, który zawiera tylko dane i sprawdzanie dotyczące tej instancji. Wypróbuj tę funkcję już teraz:
Incydenty Stackdriver są otwierane, gdy zestaw warunków alertu spełnia określone kryteria. W naszym przypadku ustawiliśmy alert dla kontroli dostępności nginx, która obecnie kończy się niepowodzeniem na serwerze nginx-plus-1. Incydenty pomagają śledzić bieżące warunki i współpracować z innymi członkami zespołu podczas rozwiązywania problemów.
Potwierdźmy incydent, aby poinformować innych członków zespołu, że badamy sytuację:
Pamiętaj, że zmienia to stan incydentu z „Otwarte” na „Potwierdzone”. Sytuacja nadal trwa (warunki zasady tworzenia alertów są nadal naruszane), ale sygnalizujesz członkom zespołu, że się nią zajmujesz. Zostanie to również zarejestrowane w dzienniku zdarzeń.
Incydenty można rozwiązywać ręcznie lub automatycznie. Aby to zrobić, połącz się przez SSH z instancją nginx-plus-1 i rozwiąż problem:
yourusername@nginx-plus-1:~$ sudo service nginx start
Teraz incydent zostanie rozwiązany automatycznie, gdy sprawdzanie czasu działania wró do normy. Możesz też rozwiązać ten problem samodzielnie, wybierając element menu „Rozwiąż”.
Cloud Logging to usługa logowania, która zapewnia wygodne, centralne miejsce do wyświetlania i wykonywania zapytań dotyczących logów z wielu źródeł. Możesz też używać logów do eksportowania ich do innych miejsc docelowych (Google Cloud Storage, Google BigQuery lub Google Cloud Pub/Sub).
Aby otworzyć przeglądarkę logów Cloud, wybierz ją w menu po lewej stronie w konsoli Cloud:
Zostaniesz przekierowany(-a) do przeglądarki logów, w której możesz używać wstępnie zdefiniowanych zapytań lub tworzyć i zapisywać własne zapytania niestandardowe, uzyskiwać strumień logów na żywo pochodzących z wielu zasobów w ramach wdrożenia w chmurze, tworzyć dane z logów, eksportować je i wykonywać wiele innych czynności.
Dostępne są przydatne elementy sterujące, które umożliwiają szybkie filtrowanie informacji:
- Filtrowanie według typów zasobów
- Filtrowanie według określonych typów logów wybranych zasobów
- Filtrowanie określonych poziomów logowania
- Filtrowanie według konkretnych dat w celu sprawdzenia problemów z przeszłości
- Przełączanie ciągłego przesyłania strumieniowego
- Pole wyszukiwania tekstu, etykiety lub wyrażenia regularnego
Przećwiczmy teraz zawężanie wyników do konkretnych logów.
W selektorze typu zasobu (1 na zrzucie ekranu) wybierz Compute Engine –> Wszystkie typy zasobów.
Następnie w selektorze typu logu (2 na zrzucie ekranu) wybierz nginx-access, aby wyświetlić wszystkie logi dostępu.
Teraz włącz ciągłe przesyłanie strumieniowe (5), aby oglądać logi na bieżąco. Jeśli nie widzisz żadnych nowych logów, spróbuj wpisać w przeglądarce zewnętrzny adres IP jednej z maszyn wirtualnych nginx-plus.
Ten przewodnik nie skupia się na logach, ale możesz je później przejrzeć przed usunięciem. Więcej informacji o poruszaniu się po przeglądarce znajdziesz tutaj. Jeśli chcesz uzyskać więcej informacji o tym, do czego możesz wykorzystać Cloud Logging, tutaj znajdziesz katalog najwyższego poziomu z odpowiednią dokumentacją.
Zwolnijmy zasoby obliczeniowe utworzone podczas modułu. Uruchom w Cloud Shell te polecenia:
$ 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 (w menu po lewej stronie w Cloud Console wybierz „Monitorowanie”) i usuń utworzone przez nas kontrole dostępności oraz zasady alertów. Możesz to zrobić, wybierając kolejno elementy menu najwyższego poziomu Alerty –> Przegląd zasad i Alerty –> Kontrole dostępności.
Możesz teraz monitorować aplikacje działające w chmurze.
Omówione zagadnienia
- Zapoznaj się ze stroną główną Stackdriver.
- Informacje o panelach i wykresach.
- Tworzenie kontroli dostępności.
- Tworzenie prostej zasady tworzenia alertów.
- Praca z incydentami alertów.
- Poruszanie się po przeglądarce logów.
Następne kroki
- Spróbuj utworzyć panel niestandardowy.
- Poznaj różne opcje tworzenia zasad tworzenia alertów.
- Poznaj różne opcje dostępne podczas korzystania z Cloud Logging.
Dowiedz się więcej
- Dowiedz się więcej o korzystaniu z interfejsu Monitoring API.
- Korzystaj z danych niestandardowych.
Prześlij nam swoją opinię
- Poświęć chwilę na wypełnienie naszej krótkiej ankiety.