Azure Monitor ile Remote Desktop Server İzleme Çözümü ,Microsoft firmasının sunmuş olduğu resmi bir izleme çözümü değildir. Makaleye girişi bu bilgi ile yaptık çünkü Microsoft ‘un bir çok Azure Monitor Solution ‘ı bulunsa bile Remote Desktop Server ortamları için resmi bir izleme çözümü bulunmamaktadır.

Fakat, Microsoft tarafından sağlanan resmi Remote Desktop Server İzleme Çözümü olmasa bile Azure Monitor çözümü varsayılan izleme günlükleri ve sayaçlarının haricinde özelleştirilmiş günlük ve sayaçları da izleyebilmektedir.

Azure Monitor ile Remote Desktop Server Çözümü makalesi içinde seneler içinde edinmiş olduğumuz bilgileri, Remote Desktop Server ortamında ki gereksinimleri harmanlayacak ve Remote Desktop Server ortamları için Azure Monitör ile izleme işlemleri nasıl yapılır bunları paylaşacağız.

Azure Monitor ile Remote Desktop Server Çözümü makalesi içinde aşağıda ki bilgiler paylaşılacaktır.

1. Microsoft Azure Monitor Nedir?

Microsoft Azure Monitor Nedir ve Log Analytics Workspace Ayarları konu başlığı ile paylaştığımız makale içinde Azure Monitor nedir, nasıl çalışır ve Azure Monitor Kurulum adımlarını detaylı olarak paylaşmıştık.

Azure Monitor Server Performance Monitor

Azure Monitor Server Performance Monitor

Microsoft Azure Monitor Hizmeti, varsayılan değerde Azure Monitor Agent yüklü bulunan kaynaklar üzerinden aşağıdaki bilgi işlem kaynaklarını ve bu kaynakların alt bileşenlerini toplamaktadır.

  • PROCESSOR UTILIZATION (WINDOWS & UNIX)
  • DISK USAGE (WINDOWS & UNIX)
  • MEMORY (WINDOWS & UNIX)
  • NETWORK USAGE – WINDOWS

Makale başında belirttiğim gibi Azure Monitor ile Remote Desktop Server İzleme Çözümü Microsoft firmasının sunmuş olduğu resmi bir izleme çözümü olmasa da bizler bu makalede yapacak olduğumuz özel ayarlar ile Remote Desktop Server ‘için özel sayaçları ve günlükleri Azure Monitor ‘e öğretecek ve sonrasında Microsoft Azure Monitor çözümünü Remote Desktop Server ortamları için hazır hale getireceğiz.

Azure Monitor Solutions

Azure Monitor Solutions

Yukarıda paylaşmış olduğum ekran görüntüsü içinde Microsoft firmasının resmi Azure Monitor Solutions ‘larını görmektesiniz. Bu makale sonunda benzer bir izleme arayüzüne, Azure Monitor Dashboard ‘a sahip olacak ve panoları özelleştirebilir duruma geleceğiz.

Remote Desktop Server ortamında ihtiyaç duyduğumuz, izlenecek kaynakları Microsoft Azure Monitor ‘ün Log Analytics Workspace alanına öğretecek ve bu öğretme işlemlerinden sonra Microsoft Azure Monitor ile Remote Desktop Server İzleme Çözümüne sahip olacağız.

Azure Monitor hizmeti, Microsoft tarafından ve üçüncü taraf firma (sepago) ve teknik uzmanlar tarafından yazılmış bir çok çözüme sahiptir ve bu çözümler ile Azure Monitor hizmetini zenginleştirebilir ve bilgi işlem varlıkları için tam bir görünürlük sağlanmıştır.

2. Azure Monitor Remote Desktop Server Solutions

Azure Monitor ile Remote Desktop Server ortamlarını izleyebiliriz.

Remote Desktop Server Farmı ister Sanal Masaüstü (Desktop Virtualization, VDI) ister Oturum Sanallaştırma (Session Virtualization) teknolojisi için kurulmuş olsun bu iki platformun ihtiyaç duyulan izleme verilerini Microsoft Azure Monitor Log Analytics Workspace ‘e öğrettiğimiz zaman Azure Monitor hizmeti ile Remote Desktop Server ortamlarını izleyebilir duruma gelebiliriz.

Azure Monitor hizmeti ile Remote Desktop Server ortamlarını izlediğimiz zaman, işlemci, bellek, disk kullanımı, network kullanım değerlerine ek olarak uygulama seviyesinde de görünürlüğe sahip olabilmekteyiz.

Remote Desktop Server ve Sanal Masa üstü ortamlarının yönetimi zordur. Bu iki sanallaştırma çözümünde oluşan bir dar boğazı bulmak, sistem üzerinde ki gecikmeleri tespit etmek dikey ve yatay uzmanlıklara ihtiyaç duymaktadır.

Ortak kullanılan bir Remote Desktop Server üzerinde bir kullanıcının yapmış olduğu iş yükü aynı bilgi işlem kaynaklarını kullanan bir başka uzak masaüstü kullanıcısının çalışmasına etki etmekte ve bu etkide kötü deneyimleri beraberinde getirmektedir.

Azure Monitor Remote Desktop Server Solutions ile Remote Desktop Server ortamında kullanıcı ve uygulama seviyesinde işlemci, bellek, disk kullanımını öğrenecek, ağ üzerinde oluşan dar boğazları tespit edebileceğiz.

Remote Desktop Server üzerinde ki bilgi işlem kaynaklarından bir alt seviyeye inecek ve Remote Desktop Server üzerinde ki kaynakları hangi kullanıcı yada uygulama tarafından aşırı kullanıldığını tespit edeceğiz.

Azure Monitor ile Remote Desktop Server izleme Çözümü

Azure Monitor ile Remote Desktop Server izleme Çözümü

Azure Monitor Remote Desktop Solutions

Hangi kullanıcı hangi Remote Desktop Server üzerinde bulunan paylaşılmış yada ayrılmış bir uygulamayı ne kadar süre kullandı, uygulamaları kullanma sırasında bir gecikme yaşadı m yada Remote Desktop Server üzerinde çalıştırmış olduğu bir uygulamanın iş gücü diğer kullanıcıları etkiledi mi sorularına cevaplar bulacak ve hazırlayacak olduğumuz izleme panoları ile Remote Desktop Server ortamları için görünürlük kazanacağız.

Azure Monitor ile Remote Desktop Server izleme Çözümü makalesinde Remote Desktop Server ortamları için aşağıda bilgileri Azure Log Analytics Workspace alanımıza öğreteceğiz.

  • RDS Processes
  • RDS Session
  • RDS Site and Applications
  • RDS Workers
Azure Log Analytics Advanced settings

Azure Log Analytics Advanced settings

Azure Monitor Nedir ve Log Analytics Workspace Ayarları makalesinde bu özelleştirme işlemlerini detaylı olarak paylaşmıştık ve bu makalede anlatıldığı gibi Remote Desktop Server hizmeti için aşağıda paylaşmış olduğum toplam 79 farklı olay günlüğünü, performans sayacını Remote Desktop Server farm sunucularından talep edilmesini sağlayacağız.

Azure Log Analytics Workspace alanına eklenecek olan Remote Desktop Server sayaçları ve olay günlükleri aşağıda listelenmiştir.

1 FIELD NAME LOG TYPE FIELD TYPE
2 Caption_s RDS_Process_CL Text
3 Category RDS_PerfData_CL Text
4 ClientIP_s RDS_Session_CL Text
5 ClientName_s RDS_Session_CL Text
6 CommandLine_s RDS_Process_CL Text
7 ConnectionState_s RDS_Session_CL Text
8 ConnectTime_t RDS_Session_CL DateTime
9 Counter_s RDS_PerfData_CL Text
10 CreatingProcessID_d RDS_Process_CL Numeric
11 DesktopGroup_s RDS_Application_CL Text
12 DesktopGroup_s RDS_PerfData_CL Text
13 DesktopGroup_s RDS_Process_CL Text
14 DesktopGroup_s RDS_Session_CL Text
15 Domain_s RDS_Worker_CL Text
16 DomainName_s RDS_PerfData_CL Text
17 DomainName_s RDS_Process_CL Text
18 DomainName_s RDS_Session_CL Text
19 EncryptionLevel_d RDS_Session_CL Numeric
20 Event_s RDS_Application_CL Text
21 ExecutablePath_s RDS_Process_CL Text
22 HandleCount_d RDS_Process_CL Numeric
23 IdleTime_s RDS_Session_CL Text
24 Instance_s RDS_PerfData_CL Text
25 IODataBytesPersec_d RDS_Process_CL Numeric
26 IODataOperationsPersec_d RDS_Process_CL Numeric
27 IOOtherBytesPersec_d RDS_Process_CL Numeric
28 IOOtherOperationsPersec_d RDS_Process_CL Numeric
29 IOReadBytesPersec_d RDS_Process_CL Numeric
30 IOReadOperationsPerSec_d RDS_Process_CL Numeric
31 IOWriteBytesPerSec_d RDS_Process_CL Numeric
32 IsAzure_b RDS_Worker_CL Boolean
33 IsBrokered_b RDS_Session_CL Boolean
34 IsPublishedApp_b RDS_Session_CL Boolean
35 LocalTimeZoneId_s RDS_Worker_CL Text
36 Location_s RDS_Worker_CL Text
37 LoginTime_t RDS_Session_CL DateTime
38 Message RDS_Application_CL Text
39 Name_s RDS_Application_CL Text
40 Name_s RDS_Process_CL Text
41 Name_s RDS_Worker_CL Text
42 NameInSession_s RDS_Process_CL Text
43 PageFaultsPersec_d RDS_Process_CL Numeric
44 PageFileBytes_d RDS_Process_CL Numeric
45 PageFileBytesPeak_d RDS_Process_CL Numeric
46 PercentPrivilegedTime_d RDS_Process_CL Numeric
47 PercentProcessorTime_d RDS_Process_CL Numeric
48 PercentUserTime_d RDS_Process_CL Numeric
49 PoolNonpagedBytes_d RDS_Process_CL Numeric
50 PoolPagedBytes_d RDS_Process_CL Numeric
51 Priority_d RDS_Process_CL Numeric
52 PrivateBytes_d RDS_Process_CL Numeric
53 ProcessId_d RDS_Process_CL Numeric
54 ProductID_d RDS_Session_CL Numeric
55 SessionHash_s RDS_PerfData_CL Text
56 SessionHash_s RDS_Process_CL Text
57 SessionHash_s RDS_Session_CL Text
58 SessionId_d RDS_Process_CL Numeric
59 SessionId_d RDS_Session_CL Numeric
60 StationName_s RDS_Session_CL Text
61 ThreadCount_d RDS_Process_CL Numeric
62 Uid_g RDS_Worker_CL Guid
63 UserName_s RDS_PerfData_CL Text
64 UserName_s RDS_Process_CL Text
65 UserName_s RDS_Session_CL Text
66 value_d RDS_PerfData_CL Numeric
67 Version_s RDS_Application_CL Text
68 VirtualBytes_d RDS_Process_CL Numeric
69 VirtualBytesPeak_d RDS_Process_CL Numeric
70 VmSize_s RDS_Worker_CL Text
71 Worker_s RDS_Application_CL Text
72 Worker_s RDS_PerfData_CL Text
73 Worker_s RDS_Process_CL Text
74 Worker_s RDS_Session_CL Text
75 WorkerStartId_g RDS_Session_CL Guid
76 WorkerStartId_g RDS_Worker_CL Guid
77 WorkingSet_d RDS_Process_CL Numeric
78 WorkingSetPeak_d RDS_Process_CL Numeric
79 WorkingSetPrivate_d RDS_Process_CL Numeric

Unutmadan hatırlatma yapmakta fayda var. Talep edecek olduğumuz her bir olay günlüğü Azure Monitoring maliyetlerine bire-bir etki etmektedir. Talep edecek olduğumuz her bir olay günlüğü ve sayaç Azure Monitor Agent ların daha fazla veri göndermesine ve Azure Log Analytics Workspace alanında daha fazla veri saklamasına neden olacaktır.

Azure Monitor Fiyatları Nasıl Hesaplanır makalesi içinde detaylı bilgiler yer almakta. Azure Log Analytics Workspace alanında Remote Desktop Server olay günlükleri ve performans sayaçları için yapacak olduğumuz özelleştirme işlemleri ve ek bilgi talepleri maliyet artışlarına neden olacaktır.

3. Remote Desktop Server Processes İzleme

Remote Desktop Server Processes, Remote Desktop Session Host üzerinde çalışmakta olan uygulamaların, hangi uygulamanın ne kadar bilgi işlem yükü oluşturduğunu tespit edebileceğimiz bir izleme sayacıdır.

Remote Desktop ortamı içinde çalışan bir Remote Desktop Session Host üzerine , Microsoft Office uygulamalarını ve bu uygulamalara ek olarak üçüncü taraf uygulamaları da yükleyebiliriz. Perakende sektöründe çokça kullanmış olduğumuz Nebim yazılımı yada Logo, Netsis gibi yazılımlar bunlara örnek verebiliriz.

Bu uygulamaların her birisi aynı Remote Desktop Server üzerinde çalıştığı için bir kullanıcının Office uygulamalarında yapacak olduğu yüksek bilgi işlem gücü daha az kaynağa ihtiyaç duyan diğer uygulamaların da çalışmasına etki edecektir. Yada Remote Desktop Server  üzerinde Remote Desktop Session Host özelinde iyileştirilme ve optimizasyon süreçleri yapılmamış uygulamaların diğer uyumlu çalışan uygulamalara etki etmesi gibi.

Bu tür performans problemleri Compute olarak adlandırmış olduğumuz katmanda yapılacak olan araştırmalar ile bulunmaz. Bu problemler sadece ve sadece uygulama seviyesinde yapılacak olan araştırmalar ile tespit edilebilir.

Azure Monitor RDS Processes

Azure Monitor RDS Processes

Azure Log Analytics Workspace alanına eklemiş olduğumuz RDS Processes filtrelemeleri ile hangi uygulamanın ne kadar bellek, işlemci, disk I/O kullandığını görebilmekteyiz.

Yukarıda paylaşmış olduğum Azure Monitor RDS Processes ekran görüntüsünde RDS Farmı içinde bulunan Remote Desktop Session Host ‘lar üzerinde yüklü bulunan uygulamalar (NebimV3Pos.exe , NebimV3RDP.exe, iexplore, SQL Server Agent) görülmekte.

Yukarıda paylaşmış olduğum görünürlük haricinde aşağıda paylaşacak olduğum Azure Monitor sorguları ile her bir uygulama ve Remote Desktop Session Host üzerinde alt kırılımları inceleyebilecek ve kendi panolarınızı oluşturabileceksiniz.

Azure Log Analytics Workspace alanında eklemiş olduğumuz olay günlüğü ve sayaçlar ile aşağıda ki sorguları çalıştırabilir ve uygulama seviyesinde yavaşlık, performans problemlerini tespit edebiliriz.

Processes by Worker Count

Process CPU Consumption (Avg) Overall by Process Name %CPU

Process CPU Consumption (Max) Overall by Process Name %CPU

Process Memory Consumption Phy (Avg) Overall by Process Name BYTE

Process Memory Consumption Phy (Max) Overall by Process Name

Process IO Activity (Avg) Overall by Process Name BYTE/s

Process IO Activity (MAX) Overall by Process Name BYTE/s

 

4. Remote Desktop Server Sessions İzleme

Remote Desktop Sessions yani Remomte Desktop Session Host üzerinde çalışmakta olan uzak masaüstü kullanıcılarının ne kadar bilgi işlem yükü oluşturduğunu tespit edeceğimiz izleme yöntemidir.

Aynı Remote Desktop Server ortamında fakat farklı departmanlarda çalışan uzak masaüstü kullanıcıları aynı Remote Desktop Sessions Host üzerinde ortak bir şekilde çalışabilir. Muhasebe departmanında çalışan kullanıcılar ön muhasebe yazılımını kullanırken, iş süreçlerini takip eden, mağazada satış yapan personeller de Remote Desktop Sessions Host üzerinde Nebim gibi perakende yazılımlarını kullanabilir. Remote Desktop Sessions Host üzerinde yeterli kaynaklar ayarlandı isi üst düzey yöneticiler Microsoft Office uygulamaları ile Power Point sunumlarını da yapabilir ve Excel’den güçlü macro içeriğe sahip dosyaları da açabilirler.

Bu kullanıcıların her birisi aynı Remote Desktop Session Host üzerinde barındığı için hangi kullanıcının yada hangi departmanın sne kadar kaynak tükettiğini bulmak zordur.

Bu tür performans problemleri Compute olarak adlandırmış olduğumuz katmanda yapılacak olan araştırmalar ile bulunamaz. Bu problemler sadece ve sadece uygulama seviyesinde yapılacak olan araştırmalar ile tespit edilebilmektedir.

Azure Monitor RDS Sessions

Azure Monitor RDS Sessions

Yukarıda paylaşmış olduğum görünürlük haricinde aşağıda paylaşacak olduğum sorgular ile her bir kullanıcının ve Remote Desktop Session host server üzerinde kullanmış olduğu kaynağı, kullanmış olduğu uygulama kaynağını görebilmekteyiz.

Unique Sessions State

Output Bandwidth Average Bandwidth per Worker bit/s

Input Bandwidth Average Bandwidth per Worker bit/s

TCP RTT Average RTT per Worker MS

Output TCP Line Speed Average Output Line Speed per Worker bit/s

Maximum Values Maximum Output Bandwith

Maximum Values Maximum Input Bandwith

Maximum Values Maximum RTT

 

5. Remote Desktop Server Site and Applications İzleme

Azure Monitor ile Remote Desktop Server üzerinde Site and Applications izleme yönetmi yapılabilmektedir. Remote Desktop Server Farmı içinde bulunan Remote Desktop Session Host üzerinde kullanıcı ve uygulama seviyesinde izleme yapabilecek olduğumuz bir izleme yöntemidir.

Ortak kullanılan Remote Desktop Session Host üzerinde birden fazla ve birden farklı türde çalışan uygulamalar çalışabildiği gibi aynı Remote Desktop Session Host üzerinde birden fazla ve farklı departmanda çalışan uzak masaüstü kullanıcılarına da hizmet sunabiliriz.

Bu tasarım küçük ölçekli firmalarda çok fazla probleme sebep olmasa da büyük ölçekli kullanımlarda ciddi problemlere sebep olmakta ve ne yazık ki bu çalışma mantığı hemen-hemen bütün Remote Desktop Server ortamlarında görebilmekteyiz. Bu doğru yapılmayan bir tasarımdır ve optimizasyon işlemleri yapılsa da Remote Desktop Server ortamlarının verimli çalışmadığını görebilmekteyiz.

Windows Server 2012 ile birlikte gelen RDS Collection özelliği ile bu problem bir nebze düzeldi ve bu yeni yetenek ile Remote Desktop Server Farm mimarisi farklı veri merkezlerinde çalışmak üzere desteklendi. Farklı veri merkezlerinde çalışan Remote Desktop Session Host sunucuları çok şubeli yapılarda merkezi yönetimi ve felaket anında sürekliliği sağladı.

Fakat, RDS Farm mimarisinde ki RDS Collection yapılandırması da doğru bir şekilde yapılmadığı zaman X veri merkezinde çalışan kullanıcıyı Y eri merkezi içinde barınan Remote Desktop Session Host üzerine yönlendirildiğini gördük. Bu yanlış RDS Collection Mimarisi ve Remote Desktop Farm tasarımı da performans ile birlikte uygulamaların cevap verememesine ve kullanıcı deneyimlerinde başarısız çalışmalara sebep olduğu.

Azure monitor üzerinde tanımlamış olduğumuz yeni günlük ve sayaç ayarları sonrasında bu problemi Remote Desktop Server Site and Applications İzleme çözümü ile görebilmekteyiz.

Azure Monitor RDS Site and Applications

Azure Monitor RDS Site and Applications

Bu görünürlük sonrasında Remote Desktop Session Host üzerinde çalışan uygulamaları, kullanıcı ve departmanları analiz edebilir ve doğru RDS Collection Mimarisi ile Remote Desktop Server ortamlarının sağlıklı çalışmasını sağlayabiliriz.

Application by User Processor usage %

Application by User Memory available BYTE

Application Overall Consumption Processor Consumption Shared Tickets

Application Overall Consumption Memory Consumption Memory Tickets

User Overall Consumption Processor Consumption Shared Tickets

USER OVERALL CONSUMPTION User Consumption Memory Ticks

Application Crashed

Unique User

 

6. Remote Desktop Server Workers İzleme

Azure Monitor Remote Desktop Workers izleme çözümü uygulama ve uzak masaüstü kullanıcı seviyesinden bir kademe yukarıya çıkıyoruz ve Remote Desktop Farm seviyesinde Compute izleme değerlerini öğreniyoruz.

Azure Monitor Remote Desktop Workers izleme çözümü Server Performans izleme çözümüne çok benzemekte ve bir çok sorgu bir-biri ile çelişmektedi.r Fakat Azure Monitor Remote Desktop Workers izleme çözümünde ki sorgular daha çok Remote Desktop Farmı ve Remore Desktop Session Host sunucuları için oluşturulmuş Azure Monitör sorgulardır.

Azure Monitor RDS WorkersAzure Monitor RDS Workers

Azure Monitor Remote Desktop Workers izleme çözümü ile Remote Desktop Farm içinde bulunan hangi Remote Desktop Session Host üzerinde Bellek yetersiz, işlemci yükü fazla, Disk I/O gecikmeleri bulunmakta, bunları görebilmekte ve RDS özelinde tespit edebilmekteyiz.

CPU Consumption Overall CPU Consumption %

Memory Consumption Memory Free Availaible bytes

Network Network Throughput BYTE/S

Processor Queue Length

Disk Queue Length

Paging File Usage

Desktop Groups Worker Count