Bu codelab'de; Google Cloud Platform hizmetleri ve sanal makineler ile ilgili performans metriklerini ve günlükleri izleyip incelemek için Stackdriver kullanmaya nasıl başlayacağınızı öğreneceksiniz.
Bu codelab'de şunları yapacaksınız:
- Stackdriver ana sayfası hakkında bilgi edinin.
- Kontrol panellerini ve grafikleri anlama
- Çalışma denetimi oluşturun.
- Basit bir uyarı politikası oluşturun.
- Uyarı olaylarıyla çalışma
- Günlük Görüntüleyici'de gezinme
Stackdriver ile ilgili deneyiminiz nedir?
Kendi hızınızda ilerleyebileceğiniz ortamda kurulum
Henüz bir Google Hesabınız (Gmail veya Google Apps) yoksa oluşturmanız gerekir.
Google Cloud Platform Console'da (console.developers.google.com) oturum açın ve yeni bir proje oluşturun:
Tüm Google Cloud projelerinde benzersiz bir ad olan proje kimliğini unutmayın. Bu codelab'in ilerleyen kısımlarında PROJECT_ID
olarak adlandırılacaktır.
Çok Önemli: Compute Engine API'yi etkinleştirmeyi başlatmak için Compute Engine sayfasını ziyaret edin:
Ardından: Compute → Compute Engine → VM Instances
Bunu ilk yaptığınızda "Compute Engine hazırlanıyor. 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 VM oluşturamazsınız.
Çalışmaların büyük kısmını Google Cloud Shell'de ( bulutta çalışan bir komut satırı ortamı) yapacaksınız. Bu Debian tabanlı sanal makine, ihtiyaç duyacağınız tüm geliştirme araçları yüklü olarak gelir ve 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ölgeleri 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 Launcher'ı kullanarak nginx+ çalıştıran Compute Engine örnekleri oluşturacaksınız. İzleme ve uyarı özelliklerini göstermek için bu örneklere ihtiyacımız olacak. Grafik konsoldan veya komut satırından Compute Engine örneği oluşturabilirsiniz. Bu laboratuvarda komut satırları adım adım açıklanacaktır.
Şimdi başlayalım.
Proje kimliğinizi ayarlamak için gcloud'u kullanın:
$ gcloud config set project PROJECT_ID
Ardından, bunu olduğu gibi kopyalayıp yapıştırdığınızdan emin olun:
$ 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ı görürsünüz. Ardından, her sanal makine oluşturuldukça 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 ...
EXTERNAL_IP
değerini not edin. Bu değer daha sonra önemli olacaktır.
Bu işlemlerin tamamlanması birkaç dakika sürebilir.
Google Cloud Platform, varsayılan olarak yalnızca birkaç bağlantı noktasına erişime izin verir. Yakında Nginx'e 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 adlı bir güvenlik duvarı kuralı oluşturur:
- Gelen bağlantı oluşturmasına izin verilen IP adresi bloklarının listesi (
--source-ranges
)0.0.0.0/0
(Her yerde) olarak ayarlanır. - Ağdaki gelen bağlantıları kabul edebilecek örnekler kümesini belirten örnek etiketleri listesi "yok" olarak ayarlanmıştı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
komutunu çalıştırın.
İlk örnek oluşturulduktan sonra, EXTERNAL_IP
yerine nginx-plus-1'in herkese açık IP'sini girerek http://EXTERNAL_IP/ adresine gidip nginx'in çalışıp çalışmadığını ve erişilebilir olup olmadığını test edebilirsiniz. Nginx sayfasını görmeniz gerekir:
Ayrıca, çalışan örneklerinizi görmek için şunu yazabilirsiniz:
$ gcloud compute instances list
Google Stackdriver, bulut destekli uygulamalarınızın izlenmesini ve analiz edilmesini kolaylaştırmak için çeşitli araçları entegre eden güçlü bir izleme çözümüdür. Stackdriver'ı kullanarak performans metriklerini görüntüleyebilir, uyarılar ayarlayıp alabilir, kendi özel kontrol panellerinizi ve metriklerinizi ekleyebilir, günlükleri ve izleri görüntüleyebilir, entegre kontrol panelleri oluşturabilirsiniz. Tüm bunları tek bir merkezi yerden yapabilirsiniz.
Sonraki adımlarda Stackdriver'ı etkinleştirme ve konsolla çalışma süreci açıklanmaktadır.
Google Stackdriver şu anda varsayılan olarak beta sürümündedir ve yeni projeler için etkinleştirilmemiştir. Özelliği 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.
Ö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 "İzlemeye git"i tıklayın. Google ile giriş yapmanız gerekir. Ardından projeniz için Stackdriver konsoluna yönlendirilirsiniz. İzlemeyle ilgili görevleri burada gerçekleştirip analiz edersiniz.
Ana sayfayı tanıyalım.
- Üst menü: Farklı görünümleri / bağlamları seçmek ve kullanılabilen tüm Stackdriver işlemlerine erişmek için kullanılır.
- Kontrol panelleri: Bunlar, izlenen metriklerin ve etkinliklerin kontrol panelleridir. Başlangıçta bunlar, projenizdeki kaynaklara dayalı olarak önceden tanımlanmış sistem kontrol panelleridir ancak kendi özel kontrol panellerinizi de oluşturabilirsiniz.
- Çalışma süresi denetimleri: Bunlar, kullanıcıya yönelik kaynakların kullanılabilirliğini düzenli olarak kontrol eder ve bu kaynaklar kullanılamaz hale geldiğinde uyarı gönderilmesini sağlar.
- Gruplar listesi: Gruplar, özellikleri ve karakteristikleri ortak olan kaynakları bir araya getirmek için kullanılır. Böylece bu kaynaklar, izleme ve uyarı gibi görevler için grup veya küme olarak ele alınabilir. Bunlar otomatik olarak keşfedilebileceği gibi kullanıcı tarafından da tanımlanabilir.
- Olaylar bölmesi: Olaylar bölmesi, uyarı olaylarını izler. Uyarı politikalarını tanımlayana kadar burada herhangi bir şey görmezsiniz.
- Etkinlik günlüğü: İzlenen kaynaklarınızla ilgili etkinlikleri (ör. örnek değişiklikleri, olay etkinlikleri vb.) listeler.
Grafikleri incelemeden önce, çoğu satırın ilk örnek başlatma işleminden sonra düzleştiğini fark edeceksiniz. Örneklerden birinde yük oluşturarak bazılarını "düzleştirmeyi geri alıp alamayacağımıza" bakalım.
Cloud Shell komut satırından örneğe SSH ile bağlanmak 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. (Üretim aşamasında parola girdiğinizden emin olun.) Ayrıca, parola eklemeniz istenmeyebileceğini de unutmayın.
Alternatif olarak, Compute Engine > VM Instances'a (Sanal Makine Örnekleri) gidip SSH'ı tıklayarak doğrudan konsoldan da örnekte SSH kullanabilirsiniz.
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 örneğinin CPU'su yükleniyor. Stackdriver kontrol paneli sekmesine geri dönüp keşfetmeye başlayabiliriz ancak Stackdriver kontrol paneli sayfasına dönmeden önce Cloud Logging aracısını yükleyelim.
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
Üretim ortamında yükleme yaparken SHA-256 karma oluşturma işlemini kontrol ettiğinizden emin olun. Yükleme süreci hakkında daha fazla bilgiyi burada bulabilirsiniz.
Şimdi Google Stackdriver Console'a geri dönme zamanı.
Kontrol panellerinde ve grafiklerde gezinme ve bunları kullanma konusunda bilgi edinmek için zaman ayırın. Fareyle grafik çizgilerinin üzerine gelerek neler olduğunu görün. Grafiklerin zaman süresini değiştirin (denetimler sağ üst köşededir). Konsolun sol üst köşesindeki Stackdriver logosunu tıklayarak dilediğiniz zaman "ana sayfa" görünümüne geri 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 fazla metrik görüntülenebilir).
- Gri yatay çizgi, fareyle üzerine gelinen zaman noktasını gösterir.
- En altta, seçilen zamandaki değerle birlikte kaynağın adı yer alır.
- Grafiğin üst kısmında, Etkinlik Günlüğü'nde ayrıntılı olarak açıklanan etkinlikleri temsil eden renkli noktalar bulunur. Etkinliklerin listesini görmek için bunları tıklayabilirsiniz. Not: Henüz etkinliğiniz yoksa herhangi bir etkinlik görmeyebilirsiniz.
- Grafiğin sağ üst kısmında üç kontrol bulunur (soldan sağa):
- Grafiğin altındaki metrik listesini gizleme/gösterme arasında geçiş yapma
- Tam ekran modunu açma/kapatma
- Çeşitli özelliklerin bulunduğu menü (Çok ayrıntılı bir grafik oluşturduğunuzda mutlaka X-ışını modunu denemelisiniz!). "Günlükleri Görüntüle" seçeneğini unutmayın. Bu seçeneğe daha sonra değineceğiz.
Ç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üde Alerting > Uptime Checks'i (Uyarılar > Çalışma Süresi Denetimleri) seçerek denetimlerinizi ve durumlarını görüntüleyebilirsiniz. Google Stackdriver kontrol panelinde ve belirli kaynaklara ayrılmış sayfalarda Çalışma Süresi Kontrolleri bölümlerini de bulabilirsiniz. Bir kaynak grubunu kapsayan çalışma süresi denetimleri için denetimi genişleterek grubun tek tek üyelerinin durumunu gösterebilirsiniz.
Çalışma denetimi oluşturalım. Stackdriver ana ekranında çalışma denetimi widget'ını bulun:
Yeni bir pop-up gösterilir. Tek bir kaynak veya kaynak grubu için çalışma denetimlerini yapılandırabilir, özel başlıklar ve yükler kullanabilir, kimlik doğrulama ve diğer seçenekleri ekleyebiliriz. Şimdilik, otomatik olarak oluşturulan nginx grubunu her dakika kontrol eden 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 erişilebildiğinden emin olmak için "Test" düğmesini tıklayın (3 yeşil onay işareti görmelisiniz) ve Kaydet'i tıklayın. Not: Onay almazsanız laboratuvara devam edebilirsiniz. Bu durum, yalnızca test kontrolü zamanlamasıyla ilgili bir sorun olabilir.
Ardından "Çalışma Denetimi Oluşturuldu" kutusunu görürsünüz ve bu denetim için uyarı politikası oluşturmak isteyip istemediğiniz sorulur. Bunu bir sonraki bölümde yapacağız. Şimdilik hiçbir şeyi 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ı türde metrik ve durum denetimi sağlar.
Bir uyarı politikasının koşulları ihlal edildiğinde bir olay oluşturulur ve Stackdriver konsolunun Olay bölümünde gösterilir. Olay yanıt sorumluları, bildirimin alındığını onaylayabilir ve çözüme kavuşturulduktan sonra olayı kapatabilir.
"Uyarı Politikası Oluştur"u tıklayın ve politikayı yapılandırmaya geçelim.
Şimdi şu ekranı görmelisiniz:
Politika için bir ad girin: "nginx grubu için çalışma denetimi"
Şimdi 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 en altına gidin ve "Save Policy" (Politikayı Kaydet) seçeneğini tıklayın.
Sol üst köşedeki logoyu tıklayarak Stackdriver ana sayfasına geri dönün.
Artık oluşturduğunuz çalışma denetimini kontrol panelinin çalışma denetimleri bölümünde görmeniz gerekir. Şimdilik durum yeşil olmalıdır.
Olay günlüğüne gidin. Burada, uyarı politikası oluşturulduğu etkinliğini görürsünüz.
Şimdi biraz sorun yaratalım :)
Nginx hizmetini durdurduğumuzda ne olacağına bakalım.
Cloud Shell komut satırından örneğe tekrar SSH ile bağlanın:
$ gcloud compute ssh nginx-plus-1
Şunu yazın:
yourusername@nginx-plus-1:~$ sudo service nginx stop
Şimdi oluşturduğumuz çalışma süresi denetimi başarısız olmalıdır. Bu durumda bir olay oluşturulur ve yukarıda girdiğiniz adrese bir uyarı bildirimi e-postası gönderilir. Koşulun algılanması bir dakika sürer (çalışma süresi denetimini ayarlarken 1 dakikalık süreyi unutmayın). Şimdi nginx grubu sayfasını inceleyelim.
Belirli bir kaynak grubunun kontrol paneline gitmenin birkaç yolu vardır:
- Ana sayfada grubun adını tıklayabilirsiniz. Bu işlem, grubun kaynaklarını izlemek için özel olarak oluşturulmuş bir kontrol paneline geçiş yapar. Bu kontrol panelini de özelleştirebilirsiniz.
- En üst düzeydeki menüden Gruplar'ı seçin ve ardından grubunuzu bulun.
Artık kontrol panellerinin otomatik olarak yenilendiğinden emin olmak için otomatik yenileme düğmesini tıklayın. Simge kırmızıya döner.
Artık otomatik olarak oluşturulan nginx grubuna özel bir kontrol paneli görüyorsunuz. Sağ tarafta, grupla ilgili birkaç önemli metriğin grafikleri yer alır. Başka bir deyişle, bu grafikler nginx grubundaki tüm kaynaklarla (daha önce oluşturduğumuz 3 nginx+ VM'miz) ilgili metrikleri gösterir.
Sol tarafta grupla ilgili çeşitli bilgiler gösterilir:
- Olay durumu
- Çalışma denetimleri
- Olay günlüğü
- Kaynakların listesi (ör. örnekler, birimler)
Bunların yalnızca grupla ilgili olduğunu ve bu nedenle etkinlik günlüğünde yalnızca grupla ilgili etkinliklerin listelendiğini unutmayın.
Farklı kaynakları veya alt grupları tıklayarak kendi özel kontrol panellerine geçebilirsiniz. Örneğin, nginx-plus-1'i tıkladığınızda yalnızca bu örnekle ilgili metrikler ve kontrollerden oluşan bir kontrol paneline yönlendirilirsiniz. Hemen deneyin:
Bir dizi uyarı koşulu belirli bir ölçütü karşıladığında Stackdriver olayları açılır. Bizim durumumuzda, şu anda nginx-plus-1'de başarısız olan nginx çalışma denetimi için bir uyarı ayarladık. Olaylar, mevcut koşulları izlemenize ve sorunlar üzerinde çalışırken diğer ekip üyeleriyle ortak çalışma yapmanıza yardımcı olur.
Olayı onaylayalım ve diğer ekip üyelerine durumu araştırdığımızı bildirelim:
Bu işlemin, olayın durumunu Açık'tan Onaylandı'ya değiştirdiğini unutmayın. Durum devam ediyor (uyarı politikası koşulları hâlâ ihlal ediliyor) ancak ekip üyelerine konuyla ilgilendiğinizi bildiriyorsunuz. Bu durum etkinlik günlüğüne de kaydedilir.
Olaylar manuel olarak veya otomatik olarak çözülebilir. İkincisini görmek için nginx-plus-1'e SSH ile bağlanın ve sorunu düzeltin:
yourusername@nginx-plus-1:~$ sudo service nginx start
Artık çalışma süresi kontrolü normale döndüğünde olay otomatik olarak çözülecek. Çöz menü öğesini seçerek sorunu kendiniz de çözebilirsiniz.
Cloud Logging, birden fazla kaynaktan gelen günlükleri görüntülemek ve sorgulamak için uygun ve merkezi bir yer sunan bir 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) aktarmak için de kullanabilirsiniz.
Cloud Logs Viewer'a erişmek için Cloud Console'un sol menüsünden seçin:
Günlük görüntüleyiciye yönlendirilirsiniz. Burada önceden tanımlanmış sorguları kullanabilir veya kendi özel sorgularınızı oluşturup kaydedebilir, bulut dağıtımınızdaki birden fazla kaynaktan gelen günlüklerin canlı akışını alabilir, günlüklerden metrikler oluşturabilir, dışa aktarabilir ve daha birçok işlem yapabilirsiniz.
İlgili bilgilere hızlıca filtre uygulayabileceğiniz bazı kullanışlı kontroller vardır:
- Kaynak türlerine göre filtreleme
- Seçilen kaynakların belirli günlük türlerine göre filtreleme
- Belirli günlük düzeylerini filtreleme
- Geçmişteki sorunları incelemek için belirli tarihlere göre filtreleme
- Sürekli yayını açma/kapatma
- Metin, etiket veya normal ifade araması için bir arama kutusu
Şimdi de belirli günlükleri daraltma alıştırması yapalım.
Kaynak türü seçiciden (ekran görüntüsünde 1) Compute Engine -> Tüm kaynak türleri'ni seçin.
Ardından, tüm erişim günlüklerini görüntülemek için günlük türü seçiciden (ekranda 2) nginx-access'i seçin.
Günlükleri geldikçe izlemek için sürekli akışı etkinleştirin (5). Yeni günlük görmüyorsanız tarayıcınıza nginx-plus sanal makinelerinizden birinin harici IP adresini girmeyi deneyin.
Bu codelab, günlükler üzerinde ayrıntılı olarak durmasa da temizlik yapmadan önce günlükleri inceleyebilirsiniz. Görüntüleyicide gezinme hakkında daha fazla bilgiyi burada bulabilirsiniz. Cloud Logging'i hangi amaçlarla kullanabileceğiniz hakkında daha kapsamlı bilgi edinmek isterseniz ilgili dokümanların üst düzey dizinini burada bulabilirsiniz.
Code Lab sırasında oluşturulan bilgi 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'daki sol bölme menüsünden"Monitoring") gidip oluşturduğumuz çalışma denetimini ve uyarı politikalarını kaldırın. Bu işlemi üst düzey menü öğeleri olan Uyarılar -> Politikalara genel bakış ve Uyarılar -> Çalışma denetimleri'nden yapabilirsiniz.
Artık bulut destekli uygulamalarınızı izlemeye hazırsınız.
İşlediğimiz konular
- Stackdriver ana sayfası hakkında bilgi edinme
- Kontrol panellerini ve grafikleri anlama
- Çalışma denetimi oluşturma
- Basit bir uyarı politikası oluşturma.
- 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 farklı seçenekleri keşfedin.
- Cloud Logging'i kullanırken yararlanabileceğiniz farklı seçenekleri keşfedin.
Daha fazla bilgi
- İzleme API'si'ni kullanma hakkında daha fazla bilgi edinin.
- Özel metrikler kullanın.
Geri bildirimlerinizi bizimle paylaşın
- Lütfen birkaç dakikanızı ayırarak çok kısa anketimizi doldurun.