Uygulamanızın durumunu daha iyi görmek için Stackdriver'ın izleme ve günlük kaydını kullanma

Bu codelab'de, Google Cloud Platform hizmetleri ve sanal makineleriyle ilgili performans metriklerini ve günlükleri izlemek ve incelemek için Stackdriver'ı kullanmaya nasıl başlayabileceğinizi öğreneceksiniz.

Bu codelab'de

  • Stackdriver ana sayfası hakkında bilgi edinin.
  • Kontrol panellerini ve grafikleri anlayın.
  • Çalışma denetimi oluşturun.
  • Basit bir uyarı politikası oluşturun.
  • Uyarı olaylarıyla çalışın.
  • Günlük Görüntüleyici'de gezinme.

Stackdriver ile ilgili deneyiminiz nedir?

İzleme - Bu nedir? Daha önce Stackdriver'ı hiç kullanmadım, ancak uygulamaları izleme deneyimim var. Stackdriver lastiklerini vurdum, ancak derin gitmedim.

Rehbersiz ortam kurulumu

Google Hesabınız (Gmail veya Google Apps) yoksa bir hesap oluşturmanız gerekir.

Google Cloud Platform Console'da (console.developers.google.com) oturum açın ve yeni bir proje oluşturun:

Proje kimliğini (tüm Google Cloud projeleri genelinde benzersiz bir ad) unutmayın. Bu, daha sonra bu codelab'de PROJECT_ID olarak adlandırılacaktır.

Çok Önemli - Compute Engine API'yi etkinleştirmeye başlamak için Compute Engine sayfasını ziyaret edin:

Sonra: Compute → Compute Engine → Sanal Makine Örnekleri

Bunu ilk yaptığınızda, Compute Engine hazırlanıyor mesajı içeren bir ekran görürsünüz. Bu işlem bir dakika veya daha uzun sürebilir. Aşağıdaki Google Cloud Shell'e giriş yapmaya devam edebilirsiniz ancak bu işlem tamamlanana kadar sanal makine oluşturamazsınız.

İşin büyük bir kısmını Google Cloud Shell, Cloud'da çalışan bir komut satırı ortamından yaparsınız. Bu Debian tabanlı sanal makine, ihtiyacınız olan tüm geliştirme araçlarıyla yüklenmiş olup 5 GB kalıcı ana dizin sunar. Ekranın sağ üst kısmındaki simgeyi tıklayarak Google Cloud Shell'i açın:

Son olarak, Cloud Shell'i kullanarak varsayılan alt bölgeyi ve proje yapılandırmasını ayarlayın:

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

Farklı bölgeler de seçebilirsiniz. Bölgeler ve Alt Bölgeler dokümantasyonunda alt bölgeler hakkında daha fazla bilgi edinebilirsiniz.

Bu bölümde, Cloud Başlatıcı'yı kullanarak nginx+ çalıştıran Compute Engine örnekleri oluşturacaksınız. İzleme ve uyarıları göstermek için bu örneklere ihtiyacımız olacaktır. Grafik konsolundan veya komut satırından bir Compute Engine örneği oluşturabilirsiniz. Bu laboratuvar komut satırlarında size yol gösterecektir.

Şimdi başlayalım.

Proje kimliğinizi belirlemek için gcloud'u kullanın:

$ gcloud config set project PROJECT_ID



Ardından, &kopyasını kopyalayıp buraya gelecek şekilde yapıştırın:

$ 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

Disk boyutuyla ilgili uyarı mesajları ve ardından her sanal makine oluşturulurken aşağıdaki çıkış gösterilir:

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
...

Daha sonra önemli olan EXTERNAL_IP not edin.

Bu işlemlerin tamamlanması birkaç dakika sürebilir.

Google Cloud Platform varsayılan olarak yalnızca az sayıda bağlantı noktası erişimine izin verir. Nginx'e yakında erişeceğimiz için güvenlik duvarı yapılandırmasında 80 numaralı bağlantı noktasını etkinleştirelim:

$ 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

Bu işlem, aşağıdaki varsayılan değerlere sahip allow-80 adında bir güvenlik duvarı kuralı oluşturur:

  • Gelen bağlantılar oluşturmasına izin verilen IP adresi blokları listesi (--source-ranges) 0.0.0.0/0 (Her Yer) olarak ayarlanır.
  • Ağdaki gelen bağlantıları kabul edebilecek örnek grubunu belirten örnek etiketlerinin listesi yok değerine ayarlanır. Bu, güvenlik duvarı kuralının tüm örnekler için geçerli olduğu anlamına gelir.

Varsayılan değerlerin tümünü görmek için gcloud compute firewall-rules create --help öğesini çalıştırın.

İlk örnek oluşturulduktan sonra http://EXTERNAL_IP/ adresine giderek nginx'in çalışıp çalışmadığını test edebilirsiniz. Burada EXTERNAL_IP nginx-plus-1'in herkese açık IP'sidir ve Nginx sayfasını görebilirsiniz:

Çalışan örneklerinizi aşağıdakileri yazarak da görebilirsiniz:

$ gcloud compute instances list

Google Stackdriver, bulutla desteklenen uygulamalarınızı izleyip analiz etmenizi sağlayan çeşitli araçları entegre eden güçlü bir izleme çözümüdür. Performans metriklerini görüntülemek, uyarı oluşturmak ve almak, kendi özel kontrol panellerinizi ve metriklerinizi eklemek, günlükleri ve izleri görüntülemek, entegre kontrol panelleri ayarlamak ve bunların tümünü merkezi bir yerden yapmak için Stackdriver'ı kullanabilirsiniz.

Sonraki adımlar, Stackdriver'ı etkinleştirme ve konsolla çalışma konusunda size yol gösterecektir.

Google Stackdriver varsayılan olarak Beta sürümündedir ve yeni projeler için etkinleştirilmemiştir. Etkinleştirmek için sol gezinme çubuğuna gidip "İzleme"yi tıklayın (bulmak için aşağı kaydırmanız gerekebilir).

Sonraki ekranda, "İzlemeyi Etkinleştir"i tıklayın ve etkinleştirilmesi için bir dakika bekleyin.

Bu özellik etkinleştirildikten sonra içerik değişir ve aşağıdaki metni görürsünüz. Keşfetmeye başlamak için "İzleme'ye Git" seçeneğini tıklayın. Google ile giriş yapmanız ve projeniz için Stackdriver konsoluna gitmeniz gerekiyor. Burada izlemeyle ilgili görevleri gerçekleştirecek ve analiz edeceksiniz.

Ana sayfayı daha yakından tanımalıyız.

  1. Üstteki menü: Farklı görünümler / bağlamlar seçmek ve mevcut tüm Stackdriver işlemlerine erişmek için kullanın.
  2. Gösterge tabloları: Bunlar, izlenen metrik ve etkinliklerin gösterge tablolarıdır. İlk olarak, bunlar projenizdeki kaynaklara dayalı, önceden tanımlanmış sistem gösterge tablolarıdır, ancak kendi özel gösterge tablolarınızı da oluşturabilirsiniz.
  3. Çalışma denetimleri: Bunlar, kullanılabilirlik için düzenli olarak kullanıcıya yönelik kaynakları kontrol eder ve kullanılamaz hale geldiğinde uyarı etkinleştirir.
  4. Gruplar listesi: İzleme ve uyarı gibi görevler için bir grup veya küme olarak ele alınabilmesi amacıyla, özellikleri ve özellikleri paylaşan kaynakları gruplandırmak üzere gruplar kullanılır. Otomatik olarak keşfedilebilir ve kullanıcı tarafından tanımlanabilir.
  5. Olaylar bölmesi: Olaylar bölmesi, uyarı olaylarını izler. Uyarı politikaları tanımlamadığınız sürece burada hiçbir şey gösterilmez.
  6. Olay Günlüğü: Örnek değişiklikleriniz, olay etkinlikleriniz gibi izlenen kaynaklarınızla ilgili etkinlikleri listeler.

Grafikleri incelemeden önce ilk örneğin başlatılmasından sonra çoğu satırın düzleştiğini göreceksiniz. Şimdi, örneklerden birinde yük üreterek bunlardan bazılarının dengelenip bozulamayacağını görelim.

Cloud Shell komut satırından örneğe SSH uygulamak için:

$ 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:~$

İşte bu kadar kolay! (Üretimde, bir parola girdiğinizden emin olun :) Ayrıca, bir parola eklemenizin istenmeyebileceğini unutmayın.

Alternatif olarak, Compute Engine > Sanal Makine Örnekleri'ne gidip SSH'yi tıklayarak doğrudan konsoldan örneğinize SSH uygulayabilirsiniz.

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 &

Şimdi nginx-plus-1 CPU yükleniyor. Stackdriver kontrol paneli sekmesine dönüp keşif yapmaya başlayabiliriz. Ancak Stackdriver kontrol panelleri sayfasına dönmeden önce Cloud Logging aracısını yüklememize izin verelim.

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

Üretimde yükleme yaparken, SHA-256 karmasını kontrol ettiğinizden emin olun. Yükleme işlemiyle ilgili daha fazla bilgiyi burada bulabilirsiniz.

Şimdi Google Stackdriver konsoluna dönme zamanı.

Kontrol paneli ve grafiklerde gezinme ve bunları kullanma konusunda bilgi edinin. Farenizi kullanarak grafik çizgilerinin üzerine gelin ve ne olduğunu görün. Grafiklerin süresini değiştirin (kontroller sağ üst köşededir). Konsolun sol üst köşesindeki Stackdriver logosunu tıklayarak istediğiniz zaman "ana sayfa" görünümüne dönebilirsiniz.

CPU kullanımı grafiğine bakalım:

Grafikteki bazı öğeler şunlardır:

  • Vurgulanan çizgi şu anda seçili olan metriktir (bir grafikte birden çok metrik görüntülenebilir).
  • Gri yatay çizgi, fareyle üzerine gelindiğinde işaret edilen noktayı temsil eder.
  • Alt kısımda, kaynağın adı ve seçilen zamandaki değer bulunur.
  • Grafiğin üst kısmında, Olay Günlüğü'nde ayrıntılı olarak açıklanan etkinlikleri temsil eden renkli noktalar bulunur. Etkinliklerin listesini almak için bu etkinlikleri tıklayabilirsiniz. Not: Henüz bir etkinliğiniz yoksa etkinlik göremeyebilirsiniz.
  • Grafiğin sağ üst kısmında üç kontrol bulunur (soldan sağa):
  • Grafiğin altındaki metriklerin listesini gizle/gizle
  • Tam ekran moduna geçer
  • Çeşitli tatlılar içeren menü (çok ayrıntılı bir grafik oluşturduktan sonra röntgen modunu denemelisiniz!). "Günlükleri Göster" seçeneğine dikkat edin. Bu konuyu daha sonra ele alacağız.

Çalışma denetimleri sayesinde dilediğiniz web sayfasının, örneğin veya kaynak grubunun durumunu hızla doğrulayabilirsiniz. Yapılandırılmış her denetimle dünya genelindeki çeşitli konumlardan düzenli olarak iletişim kurulur. Çalışma denetimleri, uyarı politikası tanımlarında koşul olarak kullanılabilir.

Üst menüden Uyarılar & g; Çalışma Kontrolleri'ni seçerek kontrollerinizi ve durumlarını görüntüleyebilirsiniz. Google Stackdriver kontrol panelinde ve belirli kaynaklara ayrılmış sayfalarda Çalışma Denetimleri bölümlerini de bulabilirsiniz. Bir kaynak grubunu kapsayan çalışma denetimleri için kontrolü, grubun bağımsız üyelerinin durumunu gösterecek şekilde genişletebilirsiniz.

Çalışma denetimi oluşturalım. Stackdriver kontrol ekranında çalışma denetimi widget'ını bulun:

Yeni bir pop-up gösterilir. Tek bir kaynak veya kaynak grubu için çalışma denetimleri yapılandırabilir, özel üstbilgiler ve yükleri kullanabilir, kimlik doğrulama ve diğer seçenekleri ekleyebiliriz. Şimdilik, otomatik olarak oluşturulmuş nginx grubunu her 1 dakikada bir kontrol edecek varsayılan bir http kontrolü kullanacağız.

Farklı seçenekleri doldurmak için aşağıdaki ekran görüntüsünü kullanın:

Uç noktalarınıza ulaşılabildiğinden emin olmak için "Test" düğmesini (3 yeşil onay kutusu kullanmanız gerekir) tıklayın ve Kaydet'i tıklayın. Not: Testleri geri almazsanız laboratuvara devam edebilirsiniz. Çünkü bu bir test kontrolü zamanlama sorunu olabilir.

Ardından, "Çalışma Denetimi Oluşturuldu" kutusu görüntülenir ve bu denetim için uyarı politikası oluşturmak isteyip istemediğiniz sorulur. Bu işlemi bir sonraki bölümde yapalım; henüz tıklamayın.

Bulut hizmetlerinizin ve platformlarınızın normal şekilde çalışıp çalışmadığını belirleyen koşullar tanımlamak için uyarı politikaları oluşturabilirsiniz. Cloud Monitoring, politikalarda kullanabileceğiniz birçok farklı metrik ve durum denetimi sağlar.

Bir uyarı politikasının koşulları ihlal edildiğinde, bir olay oluşturulur ve Olay bölümündeki Stackdriver konsolunda görüntülenir. Olay yanıt sorumluları, bildirimin alındığını onaylayabilir ve çözüme ulaştırıldıktan sonra olayı kapatabilir.

"Uyarı Politikası Oluştur"u tıklayın ve politikayı yapılandırmaya devam edelim.

Şimdi şu ekranı göreceksiniz:

Politika için bir ad girin: "nginx grubu için Çalışma Denetimi"

Artık bildirim yöntemi bölümünde "Bildirim Ekle"yi tıklayın.

Google Cloud Hesabınızla ilişkili e-posta adresini girin. Ekranın alt kısmına gidip "Politikayı Kaydet"i tıklayın.

Stackdriver ana sayfasına geri dönün (sol üst köşedeki logoyu tıklayarak).

Artık kontrol panelinin çalışma denetimleri bölümünde oluşturduğunuz çalışma denetimini görürsünüz. Şimdilik durum yeşil renkte olmalıdır.

Olay Günlüğüne ilerleyin. Bir uyarı politikasının oluşturulduğu etkinliği görmeniz gerekir.

Şimdi de sorun oluşturalım :)

Ngnix hizmetini durdurduğumuzda ne olacağını görelim.

Cloud Shell komut satırından örneğe SSH yeniden uygulayın:

$ gcloud compute ssh nginx-plus-1

Ve şunu yazın:

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

Oluşturduğumuz çalışma denetimi artık başarısız oluyor. Bunun sonucunda bir olay oluşur ve yukarıda girdiğiniz adrese bir uyarı bildirimi e-postası gönderilir. Bir koşulun tespit edilmesi bir dakika sürer (çalışma kontrolünü ayarlarken 1 dakikalık süreyi unutmayın). Şimdi gidip nginx grubu sayfasını inceleyelim.

Belirli bir kaynak grubunun kontrol paneline gitmenin birkaç yolu vardır:

  1. Ana sayfada grubun adını tıklayabilirsiniz. Bu sayede, grubun kaynaklarını izlemek için özel olarak geliştirilmiş bir kontrol paneline geçilir. Bu kontrol panelini de özelleştirebilirsiniz.



  2. Üst düzey menüden Gruplar'ı seçin ve istediğiniz grubu bulun.

Şimdi, kontrol panellerinin otomatik olarak yenilendiğinden emin olmak için otomatik yenileme düğmesini tıklayın. Simge kırmızı olur.

Şu anda otomatik olarak oluşturulan nginx grubuna özel bir kontrol paneline bakıyorsunuz. Sağ tarafta, gruba ilişkin çeşitli temel metriklerin grafikleri bulunur. Başka bir deyişle, nginx grubundaki tüm kaynaklarla ilgili metrikleri (daha önce oluşturduğumuz 3 nginx+ sanal makinemiz) gösterir.

Sol tarafta, grupla ilgili çeşitli bilgiler görürsünüz:

  • Olay durumu
  • Çalışma denetimleri
  • Olay günlüğü
  • Kaynakların listesi (örnekler, hacimler vb.)

Bunların yalnızca grupla ilgili olduğunu, dolayısıyla etkinlik günlüğünde yalnızca grubun etkinliklerini listelediğini unutmayın.

Kendi gösterge tablolarına geçmek için farklı kaynakları veya alt grupları tıklayabilirsiniz. Örneğin, nginx-plus-1 düğmesini tıkladığınızda, yalnızca söz konusu örnekle ilgili metriklerden ve kontrollerden oluşan bir kontrol paneli açılır. Hemen deneyin:

Bir dizi uyarı koşulu belirli ölçütleri karşıladığında Stackdriver olayları açılır. Bu örnekte, nginx çalışma denetimi için bir uyarı ayarlamaktayız. Bu denetim, şu anda nginx-plus-1'de başarısız olmaktadır. Olaylar, mevcut koşulları izlemenize ve sorunlar üzerinde çalışırken diğer ekip üyeleriyle ortak çalışmanıza yardımcı olur.

Bu olayı onaylayarak diğer ekip üyelerinin konuyu araştırdığımızı bilmelerini sağlayın:

Bu işlemin, durumu Açık'tan Kabul Edildi olarak değiştirdiğini unutmayın. Bu durum devam etmektedir (uyarı politikası koşulları hâlâ ihlal edilmektedir), ancak ekip üyelerini konuyla ilgili uyardığınız anlamına gelir. Bu işlem, olay günlüğüne de kaydedilir.

Olaylar manuel olarak veya otomatik olarak çözülebilir. İkincisini görmek için nginx-plus-1 adresine giderek sorunu giderin:

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

Artık çalışma denetimi normale döndüğünde olay otomatik olarak çözülecektir. Sorunu çöz menü öğesini seçerek sorunu kendiniz de çözebilirsiniz.

Cloud Logging, birden fazla kaynaktan günlükleri görüntüleme ve sorgulamanın kolay ve merkezi bir yolunu sunan hizmet olarak günlük kaydı çözümüdür. Günlükleri diğer hedeflere (Google Cloud Storage, Google BigQuery veya Google Cloud Pub/Sub) dışa aktarmak için de kullanabilirsiniz.

Cloud Logging Görüntüleyici'ye erişmek için Cloud Console'un sol menüsünden menüden seçin:

Önceden tanımlanmış sorguları kullanabileceğiniz veya kendi özel sorgularınızı oluşturup kaydedebileceğiniz, bulut dağıtımınızdaki birden fazla kaynaktan gelen günlüklerin canlı akışını alabileceğiniz, günlüklerden metrik oluşturabileceğiniz, dışa aktarabileceğiniz ve daha fazlasını yapabileceğiniz günlük görüntüleyiciye yönlendirilirsiniz.

Alakalı bilgileri hızlıca filtrelemek için bazı kullanışlı kontroller vardır:

  1. Kaynak türlerine göre filtreleme
  2. Seçilen kaynakların belirli günlük türlerine göre filtrele
  3. Belirli günlük düzeylerini filtreleme
  4. Geçmiş sorunları incelemek için belirli tarihlere göre filtreleyin
  5. Sürekli akışı aç/kapat
  6. Metin, etiket veya normal ifade araması için arama kutusu

Şimdi, günlüklerin kapsamını daraltalım.

Kaynak türü seçicide (ekran görüntüsünde 1 adet) Compute Engine -> Tüm kaynak türleri'ni seçin

Ardından, günlük türü seçicide (ekran görüntüsünde 2 adet) tüm erişim günlüklerini görüntülemek için nginx-access'i seçin

Şimdi, sürekli gelen günlükleri izlemek için (5) kesintisiz yayın özelliğini açın. Yeni günlük görmüyorsanız tarayıcınızda nginx-plus sanal makinelerinden biri için harici IP adresini girmeyi deneyin.

Bu codelab günlüklere çok fazla odaklanmıyor olsa da daha sonra temizlemeden önce bir şeyler keşfedebilirsiniz. İzleyicinin gezinmesi hakkında daha fazla bilgiyi burada bulabilirsiniz. Cloud Logging'i ne için kullanabileceğinizle ilgili daha kapsamlı bilgi için ilgili dokümanların üst düzey dizinine buradan ulaşabilirsiniz.

Kod laboratuvarı sırasında oluşturulan işlem kaynaklarını serbest bırakalım. Cloud Shell'de aşağıdaki komutları çalıştırın:

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

Ardından, Google Stackdriver konsoluna (Cloud Console sol bölme menüsünden "İzleme") gidin ve oluşturduğu çalışma denetimi ve uyarı politikalarını kaldırın. Bunu, üst düzey menü öğelerinden Uyarı -> Politikalara genel bakış ve Uyarılar -> Çalışma denetimleri aracılığıyla yapabilirsiniz.

Artık bulutla desteklenen uygulamalarınızı izlemeye hazırsınız.

Değindiğimiz konular

  • Stackdriver ana sayfası hakkında bilgi edinin.
  • Kontrol panellerini ve grafikleri anlama.
  • Çalışma denetimi oluşturuluyor.
  • Basit bir uyarı politikası oluşturuluyor.
  • Uyarı olaylarıyla çalışma.
  • Günlük Görüntüleyici'de gezinme.

Sonraki Adımlar

  • Özel kontrol panelleri oluşturmayı deneyin.
  • Uyarı politikası oluştururken sunulan farklı seçenekleri inceleyin.
  • Cloud Logging'i kullanırken yararlanabileceğiniz farklı seçenekleri keşfedin.

Daha fazla bilgi edinin

Görüşlerinizi bildirin

  • Lütfen birkaç dakikanızı ayırarak çok kısa anketimizi tamamlayın