Microsoft Exchange Server ‘in sağlıklı çalışması ve istenilen performans da hizmet verebilmesi için bir çok bileşene ihtiyacı bulunmaktadır ve Microsoft Exchange Server için ASP.NET bileşeni de zorunlu bir gereksinimdir. Microsoft Exchange Server ‘in çalışmış olduğu Windows Server işletim sisteminin bir özelliği olarak yüklenen ASP.NET özelliği ve sahip olduğu ASP.Net Counters sayaçları Microsoft Exchange Server ‘in performasına bire-bir etki etmektedir.

Microsoft Exchange Server ASP.NET Counters makalesi içinde aşağıda ki performans değerlerine odaklanacağız.

  • ASP.NET\Application Restarts
  • ASP.NET\Worker Process Restarts
  • ASP.NET\Request Wait Time
  • ASP.NET Applications(*)\Requests In Application Queue
  • ASP.NET Applications(*)\Requests Executing
  • ASP.NET Applications(*)\Requests/Sec

1. ASP.NET Nedir?

ASP.NET alt yapısı benim için Exchange Server Kurulum işlemlerinin başarılı bir şekilde tamamlanması ve çalışmış olduğu süre içinde sağlıklı bir şekilde hizmet vermesi için zorunlu bir uygulamadır. ASP.NET alt yapısı arka tarafta ne yapar diye sorarsanız benim verecek olduğum cevap, Exchange Server ‘in kullanmış olduğu IIS alt yapısında ki düzenlemeleri yapan, performans sayaçlarını iyileştiren bir yazılım diyebilirim.

ASP.NET Counters Nedir sorusu için daha fazla cevap beklentiniz varsa bu soruyu devoloper kökenli arkadaşlara yönlendirmekte ve Vikipedi üzerinde ki aşağıda ki açıklamayı da buraya bırakmaktayım.

ASP.NET, Microsoft tarafından geliştirilmiş bir web uygulama gelişimi teknolojisidir. Özdevinimli (dinamik) web sayfaları, web uygulamaları ve XML tabanlı web hizmetleri geliştirilmesine olanak sağlar. Aynı işletme tarafından geliştirilen .Net çatısı’nın framework parçası, ve artık işletmece desteklenmeyen ASP teknolojisinin devamını teşkil etmiştir.

Her ne kadar isim benzerliği olsa da ASP.NET, ASP’ye oranla çok ciddi bir değişim geçirmiştir. ASP.NET kodu ortak dil çalışma zamanı (ingilizce – common language runtime) altyapısına dayalı çalışır, diğer bir deyişle, yazılımcılar .Net çatısı tarafından desteklenen tüm dilleri ASP.NET uygulamaları geliştirmek için kullanabilirler. Yani, Java teknolojisinde olduğu gibi, yazılımcı tarafından yazılan kod, çalıştırılmadan önce sanal bir yazılım katmanı tarafından ortak bir dile çevirilmektedir.

2. Exchange Server ve ASP.NET Versions

Microsoft Exchange Server Kurulum işlemlerine başlamadan önce kurulacak olduğu Windows Server üzerinde bir takım ön koşullar vardır. Microsoft Exchange Server ‘in her bir sürümü Windows Server ‘in her bir sürümüne yüklenemez. Örnek olarak Exchange Server 2016 sürümünü ve Exchange Server 2016 ‘ın sahip olduğu hiç bir Cumulative Update sürümünü Windows Server 2019 üzerinde çalıştıramayız. Aynı durum Microsoft Exchange Server 2019 içinde geçerli olup Exchange Server 2019 ve onun sahip olduğu hiç bir Cumulative Update sürümünü Windows Server 2016 üzerinde çalıştıramayız.

Microsoft Exchange Server 2010, Exchange Server 2013 için Windows Server işletim sistemi esnekliği bulunuyor olsa bile Exchange Server 2016 ve Exchange Server 2019 için bu gibi sınırlamalar gelmiştir. Bu sınırlamalar, Windows Server ‘in desteklemiş olduğu ASP.NET Version ları içinde geçerli dir ve her bir Windows Server üzerinde farklı ASP.NET versiyonları bulunmaktadır. Exchange Server Kurulum işlemlerini yapmış olduğumuz Windows Server ‘in sürümüne bağlı olarak da desteklenen ASP.NET sürümü Exchange Server Kurulum işlemlerine başlamadan önce tamamlanması gerekli olan ön koşuldur.

2.1 Exchange 2019 prerequisites ASP.Net

Exchange Server 2019 sürümü Windows Server 2019 ve Windows Server 2022 üzerinde çalışmaktadır ve bu Windows Server üzerinde de Web-Asp-Net45, NET-Framework–45-Features ‘ları Exchange Server Kurulum işlemlerinden önce yüklenmesi gerekmektedir.

Desktop Experience özelliğine sahip Windows Server 2019 ve Windows Server 2022 işletim sistemleri için ön koşul olan ASP.NET  ve diğer zorunlu bileşenleri yükleyebileceğiniz komut paylaşılmıştır.

Copy to Clipboard

Server Core özelliğine sahip Windows Server 2019 ve Windows Server 2022 işletim sistemleri için ön koşul olan ASP.NET ve diğer zorunlu bileşenleri yükleyebileceğiniz komut paylaşılmıştır.

Copy to Clipboard

2.2 Exchange 2016 prerequisites ASP.Net (Windows Server 2016)

Windows Server 2016 işletim sistemlerine Exchange Server 2016 Mailbox Role yüklemek için ön koşul olan ASP.NET ve diğer zorunlu bileşenleri yükleyebileceğiniz komut paylaşılmıştır.

Copy to Clipboard

2.3 Exchange 2016 prerequisites ASP.Net (Windows Server 2012)

Windows Server 2012 işletim sistemlerine Exchange Server 2016 Mailbox Role yüklemek için ön koşul olan ASP.NET ve diğer zorunlu bileşenleri yükleyebileceğiniz komut paylaşılmıştır.

Copy to Clipboard

3. Exchange Server ASP.NET Counters

Microsoft Exchange Server ‘in kullanmış olduğu ASP.NET Counters değerleri aşağıda listelenmiştir.

  • ASP.NET\Application Restarts: Exchange Server ‘in çalışmış olduğu süre boyunca Web Server ve IIS uygulamasının kaç kez yeniden başlatıldığını gösterir. Sağlıklı bir Exchange Server üzerinde bu sayının sıfır olması beklenmektedir.
  • ASP.NET\Worker Process Restarts: Exchange Server ‘in çalışmış olduğu süre boyunca Web Server ve IIS uygulamasının kaç kez yeniden başlatıldığını gösterir. Sağlıklı bir Exchange Server üzerinde bu sayının sıfır olması beklenmektedir.
  • ASP.NET\Request Wait Time: Exchange Server üzerinde beklemekte olan ASP.NET isteklerinin kuyrukta bekleme süresini MS cinsinden gösterir. Sağlıklı bir Exchange Server üzerinde bu sayının sıfır olması beklenmektedir.
  • ASP.NET Applications(*)\Requests In Application Queue: Exchange Server üzerinde beklemekte olan ASP.NET Uygulama isteklerinin kuyrukta bekleme süresini MS cinsinden gösterir. Sağlıklı bir Exchange Server üzerinde bu sayının sıfır olması beklenmektedir.
  • ASP.NET Applications(*)\Requests Executing: Exchange Server üzerinde aktif yürütülmekte olan ASP.NET sayısını gösterir. Sağlıklı bir Exchange Server üzerinde bu sayının sıfır olması beklenmektedir. Bu sayaç Exchange Server ‘in sahip olduğu kaynak değerlerine bağlı olarak belirlenir ve tek düzey bir sayacı bulunmamaktadır.
  • ASP.NET Applications(*)\Requests/Sec: Exchange Server üzerinde her bir saniye de aktif yürütülmekte olan ASP.NET sayısını gösterir. Bu sayaç Exchange Server ‘in sahip olduğu kaynak değerlerine bağlı olarak belirlenir ve tek düzey bir sayacı bulunmamaktadır.

4. Azure Monitor ile Microsoft Exchange Server ASP.NET Counters İzleme

Microsoft Exchange Server ASP.NET Counters değerlerinin tespitini #Azure Monitor ile yapılabilmekteyiz. Azure Monitor ile bu değerleri incelemek için bir takım ön gereksinimler vardır ve bu ön gereksinimleri sırası ile aşağıda paylaşmaktayım.

  1. Azure Log Analytics Workspace Oluşturma işleminin Azure Tenant üzerinde yapılmış olması gerekmekte.
  2. Oluşturulan Azure Log Analytics Workspace üzerinde Azure Log Analytics Workspace Agents Configuration işlemlerinin tamamlanmış olması ve Azure Log Analytics Advanced settings bölümünde Exchange Server Memory Counters değerlerinin tanımlanması gerekmektedir. Bunlar özel sorgular olduğu için bu sorguları istediğimizi Azure Monitor aracına öğretmemiz gerekmektedir.
  3. Exchange Server Organizasyonu içinde bulunan her bir Microsoft Exchange Server üzerine ve Exchange Server ‘in kullanmış olduğu sunuculara Azure Monitoring Agent Kurulum Adımları ‘nın tamamlanmış olması gerekmekte.
  4. Exchange Server Organizasyonu içinde bulunan her bir Microsoft Exchange Server üzerinde Exchange Server Diagnostics ve Health Manager Mimarisi ‘nin yapılandırılmış olması gerekmekte.
  5. Azure Monitor ile talep edilen sorguların sağlıklı olması için Exchange Server Daily Performance Logs Dizini Değiştirme işlemlerinin tamamlanmış olması gerekmekte.
  6. Azure Monitor ile talep edilen sorguların var olması dolayısı ile Exchange Server Log ve ETL Files Temizleme işleminin sorgu zamanları için hazır olması gerekmekte.

Yukarıda paylaşılan 6 temel gereksinim tamamlandıktan sonra Azure Monitor ile Exchange Server ASP.NET Counters değerlerini sorgulayabiliriz. Azure Monitor sorgu sonuçlarının sağlıklı oluşması için Windows Server Performans ve Virtual Memory ayarlarının da yapılmış olması önerilmektedir. Virtual Memory ve Page File ayarları Windows Server ‘in daha performanslı çalışmasını sağlayacak olan ince ayarlardır.

5. Azure Monitor ile Exchange Server ASP.NET Counters Query

Azure Monitor için paylaşmış olduğum aşağıda ki Azure Monitor Exchange Server ASP.NET Counters Query sorguları son 4 saat içinde ki sorguları her 1 ve 5 Dakikalık aralıklarla çalıştırmak üzere paylaşılmıştır.

Her bir sorgu, izlenmekte olan Exchange Server üzerinde ki  ASP.NET kaynak tüketimi ve bu kaynakları hangi Exchange Servisi, uygulaması yada işlemin izlediğini belirlemek için kullanılmaktadır.

Bu sorguları ihtiyaçlarınız çerçevesinde özelleştirebilirsiniz.

5.1 MS Exchange ASP.NET Application Restarts Count Computer

Aşağıda paylaşmış olduğum Azure Monitor Query ile Microsoft Exchange Server ‘ların son 4 Saat içinde ASP.NET Application Restarts temizleme işleminin hangi Exchange Server tarafından ne zaman yapıldığını görebilmekteyiz.

Copy to Clipboard
MS Exchange ASP.NET Application Restarts Count Computer

MS Exchange ASP.NET Application Restarts Count Computer

5.2 MS Exchange ASP.NET Worker Process Count Computer

Aşağıda paylaşmış olduğum Azure Monitor Query ile Microsoft Exchange Server ‘ların son 4 Saat içinde ASP.NET Worker Process Count işleminin hangi Exchange Server tarafından ne zaman yapıldığını görebilmekteyiz.

Copy to Clipboard
MS Exchange ASP.NET Worker Process Count Computer

MS Exchange ASP.NET Worker Process Count Computer

5.3 MS Exchange ASP.NET Request Wait Time Count Computer

Aşağıda paylaşmış olduğum Azure Monitor Query ile Microsoft Exchange Server ‘ların son 4 Saat içinde ASP.NET Request Wait Time Count işleminin hangi Exchange Server tarafından ne zaman yapıldığını görebilmekteyiz.

Copy to Clipboard
MS Exchange ASP.NET Request Wait Time Count Computer

MS Exchange ASP.NET Request Wait Time Count Computer

5.4 MS Exchange ASP.NET Requests In Application Queue Computer

Aşağıda paylaşmış olduğum Azure Monitor Query ile Microsoft Exchange Server ‘ların son 4 Saat içinde ASP.NET Requests In Application Queue Count işleminin hangi Exchange Server tarafından ne zaman yapıldığını görebilmekteyiz.

Copy to Clipboard
MS Exchange ASP.NET Requests In Application Queue Computer

MS Exchange ASP.NET Requests In Application Queue Computer

5.5 MS Exchange ASP.NET Requests In Application Queue InstanceName

Aşağıda paylaşmış olduğum Azure Monitor Query ile Microsoft Exchange Server ‘ların son 4 Saat içinde ASP.NET Requests In Application Queue Count işleminin hangi Exchange Serverin Servisi tarafından ne zaman yapıldığını görebilmekteyiz.

Copy to Clipboard
MS Exchange ASP.NET Requests In Application Queue InstanceName

MS Exchange ASP.NET Requests In Application Queue InstanceName

5.6 MS Exchange ASP.NET Requests Executing Computer

Aşağıda paylaşmış olduğum Azure Monitor Query ile Microsoft Exchange Server ‘ların son 4 Saat içinde ASP.NET Requests Executing Computer Count işleminin hangi Exchange Serverin tarafından ne zaman yapıldığını görebilmekteyiz.

Copy to Clipboard
MS Exchange ASP.NET Requests Executing Computer

MS Exchange ASP.NET Requests Executing Computer

5.7 MS Exchange ASP.NET Requests Executing InstanceName

Aşağıda paylaşmış olduğum Azure Monitor Query ile Microsoft Exchange Server ‘ların son 4 Saat içinde ASP.NET Requests Executing InstanceName Count işleminin hangi Exchange Serverin Servisi tarafından ne zaman yapıldığını görebilmekteyiz.

Copy to Clipboard
MS Exchange ASP.NET Requests Executing InstanceName

MS Exchange ASP.NET Requests Executing InstanceName

5.8 MS Exchange ASP.NET Request Application Sec Computer

Aşağıda paylaşmış olduğum Azure Monitor Query ile Microsoft Exchange Server ‘ların son 4 Saat içinde ASP.NET Request Application Sec Computer Count işleminin hangi Exchange Serverin tarafından ne zaman yapıldığını görebilmekteyiz.

Copy to Clipboard
MS Exchange ASP.NET Request Application Sec Computer

MS Exchange ASP.NET Request Application Sec Computer

5.9 MS Exchange ASP.NET Request Application Sec InstanceName

Aşağıda paylaşmış olduğum Azure Monitor Query ile Microsoft Exchange Server ‘ların son 4 Saat içinde ASP.NET Request Application Sec InstanceName Count işleminin hangi Exchange Serverin Servisi tarafından ne zaman yapıldığını görebilmekteyiz.

Copy to Clipboard
MS Exchange ASP.NET Request Application Sec InstanceName

MS Exchange ASP.NET Request Application Sec InstanceName

Bu makale içinde anlatılan bilgilerin video eğitim içeriğine Microsoft Exchange Server ASP.NET Counters adresi üzerinden erişebilirsiniz.