Sistem Durumu denetimini kullanarak App Service örneklerini izleme
Not
1 Haziran 2024'den itibaren, yeni oluşturulan tüm App Service uygulamaları adlandırma kuralını <app-name>-<random-hash>.<region>.azurewebsites.net
kullanarak benzersiz bir varsayılan ana bilgisayar adı oluşturma seçeneğine sahip olacaktır. Mevcut uygulama adları değişmeden kalır.
Örnek: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Diğer ayrıntılar için App Service Kaynağı için Benzersiz Varsayılan Ana Bilgisayar Adı'na bakın.
Bu makalede, App Service örneklerini izlemek için Azure portalında Sistem Durumu denetiminin nasıl kullanılacağı açıklanmaktadır. Sistem durumu denetimi, istekleri iyi durumda olmayan örneklerden uzağa yönlendirerek ve iyi durumda kalmaları durumunda örnekleri değiştirerek uygulamanızın kullanılabilirliğini artırır. Bunu, seçtiğiniz bir yol aracılığıyla web uygulamanıza dakikada bir ping göndererek yapar.
/api/health'in yalnızca bir örnek olduğunu unutmayın. Varsayılan Sistem Durumu denetim yolu yoktur. Seçtiğiniz yolun uygulamanızın içinde var olan geçerli bir yol olduğundan emin olmalısınız.
Sistem durumu denetimi nasıl çalışır?
- Uygulamanızda bir yol verildiğinde, Sistem Durumu denetimi App Service uygulamanızın tüm örneklerinde 1 dakikalık aralıklarla yola ping atar.
- Belirli bir örnekte çalışan bir web uygulaması 10 istekten sonra 200 ile 299 (dahil) arasında bir durum koduyla yanıt vermezse, App Service örneğin iyi durumda olmadığını belirler ve web uygulamasının yük dengeleyicisinden kaldırır. Bir örneğin iyi durumda olmadığını kabul etmek için gereken başarısız istek sayısı en az iki istekle yapılandırılabilir.
- Örnek kaldırıldıktan sonra Sistem durumu denetimi ping işlemi yapmaya devam eder. Örnek iyi durumdaki bir durum koduyla (200-299) yanıt vermeye başlarsa, örnek yük dengeleyiciye döndürülür.
- Bir örnekte çalışan web uygulaması bir saat boyunca iyi durumda değilse, örnek yenisiyle değiştirilir.
- Ölçeği genişletirken App Service, yeni örneklerin hazır olduğundan emin olmak için Sistem Durumu denetim yoluna ping atar.
Not
- Sistem durumu denetimi 302 yeniden yönlendirmelerini izlemez.
- App Service Planı başına günde en fazla üç örnek olacak şekilde saat başına en fazla bir örnek değiştirilir.
- Durum denetimi durumunu
Waiting for health check response
gönderiyorsa, 307 HTTP durum kodundan dolayı denetim başarısız olabilir. Bu durum, HTTPS yeniden yönlendirmeyi etkinleştirdiyseniz ancakHTTPS Only
devre dışı bırakdıysanız gerçekleşebilir.
Sistem Durumu denetimini etkinleştirme
- Sistem durumu denetimini etkinleştirmek için Azure portalına gidin ve App Service uygulamanızı seçin.
- İzleme'nin altında Sistem durumu denetimi'ne tıklayın.
- Etkinleştir'i seçin ve uygulamanız için veya
/api/health
gibi/health
geçerli bir URL yolu sağlayın. - Kaydet'i seçin.
Not
- App Service planınız, Sistem Durumu denetimini tam olarak kullanmak için iki veya daha fazla örneğe ölçeklendirilmelidir.
- Sistem durumu denetim yolu, uygulamanızın kritik bileşenlerini denetlemelidir. Örneğin, uygulamanız bir veritabanına ve mesajlaşma sistemine bağımlıysa Sistem durumu denetimi uç noktasının bu bileşenlere bağlanması gerekir. Uygulama kritik bir bileşene bağlanamıyorsa, yolun uygulamanın iyi durumda olmadığını belirtmek için 500 düzeyinde bir yanıt kodu döndürmesi gerekir. Ayrıca, yol bir dakika içinde yanıt döndürmezse sistem durumu denetimi ping'i iyi durumda değil olarak kabul edilir.
- Sistem durumu denetim yolunu seçerken, yalnızca uygulama tamamen ısındığında 200 durum kodu döndüren bir yol seçtiğinizden emin olun.
- Bir işlev uygulamasında Sistem durumu denetimini kullanmak için premium veya ayrılmış bir barındırma planı kullanmanız gerekir.
- İşlev uygulamalarıyla ilgili sistem durumu denetimiyle ilgili ayrıntıları burada bulabilirsiniz: Sistem durumu denetimini kullanarak işlev uygulamalarını izleme.
Dikkat
Sistem durumu denetimi yapılandırma değişiklikleri uygulamanızı yeniden başlatır. Üretim uygulamaları üzerindeki etkiyi en aza indirmek için hazırlama yuvalarını yapılandırmanızı ve üretimle değiştirmenizi öneririz.
Yapılandırma
Sistem durumu denetimi seçeneklerini yapılandırmaya ek olarak, aşağıdaki uygulama ayarlarını da yapılandırabilirsiniz:
Uygulama ayarı adı | İzin verilen değerler | Açıklama |
---|---|---|
WEBSITE_HEALTHCHECK_MAXPINGFAILURES |
2 - 10 | Bir örneğin iyi durumda olmadığını kabul etmek ve yük dengeleyiciden kaldırılması için gerekli başarısız istek sayısı. Örneğin, bu olarak ayarlandığında 2 örnekleriniz 2 başarısız ping'in ardından kaldırılır. (Varsayılan değer. 10 ) |
WEBSITE_HEALTHCHECK_MAXUNHEALTHYWORKERPERCENT |
1 - 100 | Varsayılan olarak, kalan iyi durumdaki örneklerin aşırı yüklenmesini önlemek için örneklerin yarısından fazlası aynı anda yük dengeleyicinin dışında tutulmaz. Örneğin, bir App Service planı dört örneğe ölçeklendirilirse ve üç örnek iyi durumda değilse, ikisi hariç tutulur. Diğer iki örnek (biri iyi durumda, biri iyi durumda değil) istekleri almaya devam eder. Tüm örneklerin iyi durumda olmadığı bir senaryoda, hiçbiri dışlanmaz. Bu davranışı geçersiz kılmak için, bu uygulama ayarını ile 100 arasında 1 bir değere ayarlayın. Daha yüksek bir değer, daha iyi durumda olmayan örneklerin kaldırıldığı anlamına gelir. (Varsayılan değer. 50 ). |
Kimlik doğrulaması ve güvenlik
Sistem durumu denetimi, App Service kimlik doğrulaması ve yetkilendirme özellikleriyle tümleşir. Bu güvenlik özellikleri etkinse başka ayar gerekmez.
Kendi kimlik doğrulama sisteminizi kullanıyorsanız Sistem durumu denetim yolu anonim erişime izin vermelidir. Sistem durumu denetimi uç noktasının güvenliğini sağlamak için, uygulama erişimini kısıtlamak için önce IP kısıtlamaları, istemci sertifikaları veya sanal ağ gibi özellikleri kullanmanız gerekir. Bu özelliklere sahip olduktan sonra üst bilgiyi x-ms-auth-internal-token
inceleyip ortam değişkeninin WEBSITE_AUTH_ENCRYPTION_KEY
SHA256 karmasıyla eşleşip eşleşmediğini doğrulayarak Sistem Durumu denetimi isteğinin kimliğini doğrulayabilirsiniz. Eşleşiyorsa Sistem durumu denetimi isteği geçerli ve App Service'ten geliyor demektir.
Not
Azure İşlevleri kimlik doğrulaması için Sistem durumu denetimi uç noktası işlevi görecek işlevin anonim erişime izin vermesi gerekir.
using System;
using System.Text;
/// <summary>
/// Method <c>HeaderMatchesEnvVar</c> returns true if <c>headerValue</c> matches WEBSITE_AUTH_ENCRYPTION_KEY.
/// </summary>
public Boolean HeaderMatchesEnvVar(string headerValue) {
var sha = System.Security.Cryptography.SHA256.Create();
String envVar = Environment.GetEnvironmentVariable("WEBSITE_AUTH_ENCRYPTION_KEY");
String hash = System.Convert.ToBase64String(sha.ComputeHash(Encoding.UTF8.GetBytes(envVar)));
return hash == headerValue;
}
Not
Üst x-ms-auth-internal-token
bilgi yalnızca Windows için App Service'te kullanılabilir.
Örnekler
Sistem durumu denetimi etkinleştirildikten sonra, örnekler sekmesinden uygulama örneklerinizin durumunu yeniden başlatabilir ve izleyebilirsiniz. Örnekler sekmesi, örneğinizin adını ve bu uygulamanın örneğinin durumunu gösterir. Örneği bu sekmeden el ile de yeniden başlatabilirsiniz.
Uygulama örneğinizin durumu "iyi durumda değilse" tablosundaki yeniden başlatma düğmesini kullanarak örneği el ile yeniden başlatabilirsiniz. Örnekle aynı App Service planında barındırılan diğer uygulamaların da yeniden başlatmadan etkileneceğini unutmayın. Örnekle aynı App Service planını kullanan başka uygulamalar varsa, bunlar yeniden başlatma düğmesinin açılış dikey penceresinde listelenir.
Örneği yeniden başlatırsanız ve yeniden başlatma işlemi başarısız olursa, size çalışanı değiştirme seçeneği verilir. (Saatte yalnızca bir örnek değiştirilebilir.) Bu, aynı App Service planını kullanan tüm uygulamaları da etkiler.
Windows uygulamaları için işlemleri İşlem Gezgini aracılığıyla da görüntüleyebilirsiniz. Bu, iş parçacığı sayısı, özel bellek ve toplam CPU süresi dahil olmak üzere örneğin işlemleri hakkında daha fazla içgörü sağlar.
Tanılama bilgisi toplama
Windows uygulamaları için Sistem Durumu Denetimi sekmesinde tanılama bilgilerini toplama seçeneğiniz vardır. Tanılama koleksiyonunun etkinleştirilmesi, iyi durumda olmayan örnekler için bellek dökümleri oluşturan ve bunları belirlenmiş bir depolama hesabına kaydeden bir otomatik düzeltme kuralı ekler. Bu seçeneğin etkinleştirilmesi, otomatik düzeltme yapılandırmalarını değiştirir. Mevcut otomatik düzeltme kuralları varsa, bunu App Service tanılaması aracılığıyla ayarlamanızı öneririz.
Tanılama koleksiyonu etkinleştirildikten sonra bir depolama hesabı oluşturabilir veya dosyalarınız için mevcut bir hesap seçebilirsiniz. Yalnızca uygulamanızla aynı bölgedeki depolama hesaplarını seçebilirsiniz. Kaydetmenin uygulamanızı yeniden başlatdığını unutmayın. Kaydettikten sonra, sürekli ping işlemleri sonrasında site örneklerinizin iyi durumda olmadığını fark ederseniz depolama hesabı kaynağınıza gidebilir ve bellek dökümlerini görüntüleyebilirsiniz.
İzleme
Uygulamanızın Sistem Durumu denetim yolunu sağladıktan sonra Azure İzleyici'yi kullanarak sitenizin durumunu izleyebilirsiniz. Portaldaki Sistem durumu denetimi dikey penceresinde üstteki araç çubuğunda Ölçümler'i seçin. Bu, sitenin sistem durumu geçmişini görebileceğiniz ve yeni bir uyarı kuralı oluşturabileceğiniz yeni bir dikey pencere açar. Sistem durumu denetimi ölçümleri, başarılı ping'leri ve görüntüleme hatalarını yalnızca sistem durumu denetimi yapılandırmasına göre örneğin iyi durumda olmadığını kabul ettiğinde toplar. Sitelerinizi izleme hakkında daha fazla bilgi için bkz. hizmet kotaları ve uyarıları Azure Uygulaması.
Sınırlamalar
- Ücretsiz ve Paylaşılan App Service planları için sistem durumu denetimi etkinleştirilebilir, böylece sitenin sistem durumuyla ilgili ölçümlere sahip olabilir ve uyarıları ayarlayabilirsiniz. Ancak, Ücretsiz ve Paylaşılan siteler ölçeği genişletemediğinden, iyi durumda olmayan örnekler değiştirilmez. ölçeği iki veya daha fazla örneğe genişletebilmek ve Sistem Durumu denetiminden tam olarak yararlanabilmek için Temel katmana veya daha yüksek bir katmana yükseltmeniz gerekir. Bu, uygulamanızın kullanılabilirliğini ve performansını artırdığından üretime yönelik uygulamalar için önerilir.
- App Service planında saatte en fazla bir iyi durumda olmayan örnek ve günde en fazla üç örnek değiştirilebilir.
- Ölçek birimi başına sistem durumu denetimi ile değiştirilen toplam örnek sayısı üzerinde yapılandırılamaz bir sınır vardır. Bu sınıra ulaşılırsa, iyi durumda olmayan örnekler değiştirilmez. Bu değer 12 saatte bir sıfırlanır.
Sık sorulan sorular
Uygulamam tek bir örnekte çalışıyorsa ne olur?
Uygulamanız yalnızca bir örneğe ölçeklendirilir ve iyi durumda değilse yük dengeleyiciden kaldırılmaz çünkü bu durum uygulamanızı tamamen çöker. Ancak, bir saatlik sürekli iyi durumda olmayan pinglerden sonra örnek değiştirilir. Sistem durumu denetiminin yeniden yönlendirme avantajını elde etmek için ölçeği iki veya daha fazla örneğe genişletin. Uygulamanız tek bir örnekte çalışıyorsa, uygulamanızın durumunu izlemek için Sistem Durumu denetimi izleme özelliğini kullanmaya devam edebilirsiniz.
Sistem durumu denetimi istekleri neden web sunucusu günlüklerimde gösterilmiyor?
Sistem durumu denetimi istekleri sitenize dahili olarak gönderilir, bu nedenle istek web sunucusu günlüklerinde gösterilmez. Sistem durumu denetim yolunuza ping atıldığında günlükleri tutmak için Sistem Durumu denetim kodunuza günlük deyimleri ekleyebilirsiniz.
Durum denetimi istekleri HTTP veya HTTPS üzerinden mi gönderiliyor?
Windows ve Linux için App Service'te, sitede Yalnızca HTTPS etkinleştirildiğinde Durum denetimi istekleri HTTPS aracılığıyla gönderilir. Aksi takdirde, BUNLAR HTTP üzerinden gönderilir.
Sistem durumu denetimi, varsayılan etki alanı ile özel etki alanı arasında uygulama kodu tarafından yapılandırılmış yeniden yönlendirmeleri takip ediyor mu?
Hayır, Sistem durumu denetimi özelliği web uygulamasının varsayılan etki alanının yoluna ping işlemi oluşturur. Varsayılan etki alanından özel bir etki alanına yeniden yönlendirme varsa, Sistem Durumu denetiminin döndürdüğü durum kodu 200 olmaz. Bu, çalışanı iyi durumda değil olarak işaretleyen bir yeniden yönlendirme (301) olacaktır.
Aynı App Service planında birden çok uygulamam varsa ne olur?
İyi durumda olmayan örnekler, App Service planındaki diğer uygulamalardan (içinde WEBSITE_HEALTHCHECK_MAXUNHEALTHYWORKERPERCENT
belirtilen yüzdeye kadar) bağımsız olarak yük dengeleyici döndürmesinden her zaman kaldırılır. Bir örnekteki bir uygulama bir saatten fazla iyi durumda olmadığında, örnek yalnızca Sistem Durumu denetiminin etkinleştirildiği diğer tüm uygulamalar da iyi durumda değilse değiştirilir. Sistem durumu denetimi etkin olmayan uygulamalar dikkate alınmaz.
Örnek
Sistem durumu denetiminin etkin olduğu iki uygulamanız (veya yuvalı bir uygulamanız) olduğunu düşünün. Bunlara Uygulama A ve Uygulama B denir. Bunlar aynı App Service planındadır ve planın ölçeği dört örneğe genişletilir. Uygulama A iki örnekte iyi durumda değilse, yük dengeleyici bu iki örnekte Uygulama A'ya istek göndermeyi durdurur. İstekler, Uygulama B'nin iyi durumda olduğu varsayılarak bu örneklerde Uygulama B'ye yönlendirilmeye devam eder. Uygulama A bu iki örnekte bir saatten uzun süre iyi durumda değilse, örnekler yalnızca Bu örneklerde Uygulama B de iyi durumda değilse değiştirilir. Uygulama B iyi durumdaysa örnekler değiştirilmez.
Not
Planda Sistem Durumu denetimi etkinleştirilmemiş başka bir site veya yuva (Uygulama C) varsa, örneğin değiştirilmesi dikkate alınmaz.
Tüm örneklerim iyi durumda değilse ne olur?
Uygulamanızın tüm örnekleri iyi durumda değilse App Service yük dengeleyiciden örnekleri kaldırmaz. Bu senaryoda, tüm iyi durumda olmayan uygulama örneklerinin yük dengeleyici döndürmesinin dışına alınması, uygulamanız için etkili bir kesintiye neden olur. Ancak, örnek değiştirme işlemi yine de gerçekleşir.
Sistem durumu denetimi App Service Ortamı çalışıyor mu?
Evet, sistem durumu denetimi App Service Ortamı v3 için kullanılabilir, ancak 1 veya 2 sürümleri için kullanılamaz. App Service Ortamı'ın eski sürümlerini kullanıyorsanız, App Service Ortamı sürüm 3'e geçirmek için geçiş özelliğini kullanabilirsiniz.
Sonraki adımlar
- Aboneliğinizdeki tüm Otomatik Ölçeklendirme altyapısı işlemlerini izlemek için Etkinlik Günlüğü Uyarısı oluşturma
- Aboneliğinizde başarısız olan tüm otomatik ölçeklendirme ölçeğini/ölçeği genişletme işlemlerini izlemek için Etkinlik Günlüğü Uyarısı oluşturma
- Ortam değişkenleri ve uygulama ayarları başvurusu