Azure Admin Monitoring Dashboard

%3CLINGO-SUB%20id%3D%22lingo-sub-2079583%22%20slang%3D%22en-US%22%3EAzure%20Admin%20Monitoring%20Dashboard%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2079583%22%20slang%3D%22en-US%22%3E%3CP%3EHello%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20have%20recently%20just%20finished%20setting%20up%20and%20sharing%20a%20dashboard%20I%20have%20created%20based%20on%20several%20workbooks%20I%20have%20created%20for%20some%20of%20my%20team%20members%20to%20quickly%20look%20at%20see%20the%20status%20on%20specific%20resources%20within%20Azure.%20These%20include%20the%20status%20of%20specific%20services%20that%20are%20not%20running%2C%20heartbeats%20missed%20within%20the%20last%205%20minutes%2C%20free%20disk%20space%2C%20failed%20backups%20and%20missing%20critical%20updates.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThe%20dashboard%20itself%20is%20I%20would%20say%20a%20bit%20clunky%20and%20not%20ideal%20to%20look%20at%20and%20I%20would%20in%20no%20means%20say%20user-friendly%20but%20it%20does%20get%20the%20job%20done.%20I%20was%20curious%20if%20anyone%20has%20had%20any%20experience%20with%20setting%20something%20like%20this%20up%20and%20had%20anything%20they%20could%20share%2C%20if%20similar%2C%20to%20what%20I%20have%20done.%20I%20assume%20I%20am%20not%20the%20first%20and%20only%20to%20have%20done%20something%20like%20this.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20am%20faced%20with%20a%20few%20challenges%20in%20this%20effort.%20I%20would%20prefer%20to%20do%20this%20natively%20within%20Azure%20and%20not%20use%20any%20third-party%20tools.%20My%20experience%20with%20KQL%20is%20limited%2C%20however%20I%20have%20no%20problem%20learning%20more.%20I%20also%20am%20working%20with%20several%20different%20subscriptions%20across%20lighthouse%20which%20means%20I%20am%20faced%20with%20only%20being%20able%20to%20query%20across%20100%20different%20LA%20workspaces%20at%20one%20time.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20look%20forward%20to%20any%20recommendations%20or%20knowledge%20sharing%20the%20community%20might%20be%20able%20to%20provide!%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThank%20you!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2079583%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3Edashboards%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EDiagnostic%20Logs%20%26amp%3B%20settings%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ELog%20Analytics%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EQuery%20Language%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EWorkbooks%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2086578%22%20slang%3D%22en-US%22%3ERe%3A%20Azure%20Admin%20Monitoring%20Dashboard%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2086578%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F936428%22%20target%3D%22_blank%22%3E%40cdranschak%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAre%20you%20planning%20on%20using%20Azure%20Monitor%20-%20Workbooks%20or%20Azure%20Dashboards%20-%20they%20are%20two%20different%20things%3F%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThe%20Workbooks%20team%2C%20have%20samples%20here%3A%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fmicrosoft%2FAzureMonitorCommunity%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Emicrosoft%2FAzureMonitorCommunity%3A%20An%20open%20repo%20for%20Azure%20Monitor%20queries%2C%20workbooks%2C%20alerts%20and%20more%20(github.com)%3C%2FA%3E%26nbsp%3Band%20maybe%20look%20at%20some%20examples%20from%20Billy%20York%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fwww.cloudsma.com%2F2020%2F10%2Fultimate-azure-inventory-dashboard%2F%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.cloudsma.com%2F2020%2F10%2Fultimate-azure-inventory-dashboard%2F%3C%2FA%3E%26nbsp%3Bor%20some%20of%20my%20examples%2C%20like%20this%20one%20for%20multiple%20Workspaces%20(and%20via%20Lighthouse)%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FCliveW-MSFT%2FKQLpublic%2Ftree%2Fmaster%2FKQL%2FWorkbooks%2FAzure%2520Sentinel%2520Central%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EKQLpublic%2FKQL%2FWorkbooks%2FAzure%20Sentinel%20Central%20at%20master%20%C2%B7%20CliveW-MSFT%2FKQLpublic%20(github.com)%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3E100%2B%20Workspaces%20is%20a%20lot%2C%20you%20will%20need%20to%20find%20a%20way%20to%20split%20these%2C%20not%20only%20to%20get%20below%20100%2C%20but%20to%20reduce%20latency.%26nbsp%3B%20Maybe%20filter%20by%20Azure%20Region%2C%20using%20the%20Workspace%20%3CSTRONG%3Elocation%3C%2FSTRONG%3E.%20This%20will%20also%20help%20the%20query%20and%20display%20performance.%26nbsp%3B%26nbsp%3B%3CBR%20%2F%3EYou%20would%20normally%20use%20a%20ARG%20query%20within%20a%20Workbook%20parameter%2C%20to%20filter%20on%20Subscription%20and%20Workspaces%2C%20lets%20call%20our%20new%20parameter%20%22myRegion%22%20using%20this%20ARG%20query.%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-cpp%22%3E%3CCODE%3Eresources%0A%7C%20where%20type%20%3D~%20'microsoft.operationalinsights%2Fworkspaces'%20%0A%7C%20distinct%20location%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3Eand%20then%20your%20Workspace%20parameter%20would%20be%3A%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-cpp%22%3E%3CCODE%3Eresources%0A%7C%20where%20type%20%3D~%20'microsoft.operationalinsights%2Fworkspaces'%20%0A%7C%20where%20location%20%3D%3D%7BmyRegion%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CBR%20%2F%3EHope%20that%20helps%3CBR%20%2F%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2086816%22%20slang%3D%22en-US%22%3ERe%3A%20Azure%20Admin%20Monitoring%20Dashboard%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2086816%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F239477%22%20target%3D%22_blank%22%3E%40Clive%20Watson%3C%2FA%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThanks%20for%20the%20response.%20We%20are%20logging%20everything%20to%20log%20analytics%20and%20then%20I%20have%20created%20workbooks%20from%20queries%20of%20the%20logs%20and%20am%20pinning%20those%20to%20a%20dashboard.%20I%20hope%20that%20answers%20your%20question%20as%20to%20what%20I%20am%20using.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EAs%20for%20querying%20across%20the%20lot%20of%20the%20workspaces%20I%20had%20decided%20to%20beak%20it%20apart%20alphabetically%20when%20querying%20workspaces%20as%20there%20is%20a%20100%20limit.%20For%20example%20my%20query%20for%20diskspace%20is%20for%20workspace%20A-l%20and%20another%20M-Z.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20know%20this%20is%20all%20possible%20but%20my%20purpose%5Cintent%20is%20to%20make%20the%20displayed%20results%20more%20concise%2C%20easy%20to%20look%20at%20and%20useable%20from%20a%20users%20perspective%20when%20it%20comes%20to%20a%20dashboard%20for%20administrators%20to%20use%20to%20make%20decisions%20for%20support%20purposes%20so%20there's%20not%20so%20much%20across%20the%20page.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EFor%20example...lets%20go%20back%20to%20the%20disk%20space%20query.%20Rather%20than%20have%20a%20box%20pinned%20with%20Disks%20less%20than%2010%25%20available%20and%20it%20lists%20every%20disk%20it%20would%20list%20just%20a%20number.%20I%20can%20then%20click%20the%20number%20on%20the%20dashboard%20and%20it%20takes%20me%20to%20the%20list.%20Or%20for%20updates%3A%20Rather%20than%20have%20the%20entire%20list%20of%20servers%20with%20their%20respective%20list%20of%20updates%20I%20have%20a%20row%20for%20server%20missing%20critical%2C%20a%20row%20for%20servers%20missing%20security%20and%20they%20have%20numbers%20that%20I%20can%20click%20that%20takes%20me%20to%20the%20list.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EIdeally%20that's%20where%20I%20would%20like%20to%20get%20to%20as%20what%20I%20have%20now%20is%20kind%20of%20information%20overload%20and%20clunky.%20Thanks%20again%20for%20your%20response!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2087472%22%20slang%3D%22en-US%22%3ERe%3A%20Azure%20Admin%20Monitoring%20Dashboard%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2087472%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F936428%22%20target%3D%22_blank%22%3E%40cdranschak%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E1.%20Thanks%20that%20explains%20the%20Dashboard%3C%2FP%3E%0A%3CP%3E2.%20Are%20all%20the%20workspaces%20in%20the%20same%20Azure%20Regions%2C%20if%20not%2C%20when%20you%20split%20them%20alphabetically%2C%20you%20could%20be%20trying%20to%20get%20data%20from%20many%20local%20or%20remote%20clusters.%26nbsp%3B%20This%20may%20affect%20query%20time.%3C%2FP%3E%0A%3CP%3E3.%20For%20the%20disk%20example%2C%20does%20this%20demo%20help%2C%20are%20you%20trying%20to%20click%20on%20a%20item%20to%20aid%20filtering%20later%20on%20(happy%20to%20share%20this%20file%20with%20you)%26nbsp%3B%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22byLocationDemo.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F248560i684F0F0968E5A380%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22byLocationDemo.gif%22%20alt%3D%22byLocationDemo.gif%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E
Occasional Contributor

Hello,

 

I have recently just finished setting up and sharing a dashboard I have created based on several workbooks I have created for some of my team members to quickly look at see the status on specific resources within Azure. These include the status of specific services that are not running, heartbeats missed within the last 5 minutes, free disk space, failed backups and missing critical updates.

 

The dashboard itself is I would say a bit clunky and not ideal to look at and I would in no means say user-friendly but it does get the job done. I was curious if anyone has had any experience with setting something like this up and had anything they could share, if similar, to what I have done. I assume I am not the first and only to have done something like this.

 

I am faced with a few challenges in this effort. I would prefer to do this natively within Azure and not use any third-party tools. My experience with KQL is limited, however I have no problem learning more. I also am working with several different subscriptions across lighthouse which means I am faced with only being able to query across 100 different LA workspaces at one time.

 

I look forward to any recommendations or knowledge sharing the community might be able to provide!

 

Thank you!

4 Replies

@cdranschak 

 

Are you planning on using Azure Monitor - Workbooks or Azure Dashboards - they are two different things?

 

The Workbooks team, have samples here: microsoft/AzureMonitorCommunity: An open repo for Azure Monitor queries, workbooks, alerts and more ... and maybe look at some examples from Billy York https://www.cloudsma.com/2020/10/ultimate-azure-inventory-dashboard/ or some of my examples, like this one for multiple Workspaces (and via Lighthouse) KQLpublic/KQL/Workbooks/Azure Sentinel Central at master · CliveW-MSFT/KQLpublic (github.com)

100+ Workspaces is a lot, you will need to find a way to split these, not only to get below 100, but to reduce latency.  Maybe filter by Azure Region, using the Workspace location. This will also help the query and display performance.  
You would normally use a ARG query within a Workbook parameter, to filter on Subscription and Workspaces, lets call our new parameter "myRegion" using this ARG query.

resources
| where type =~ 'microsoft.operationalinsights/workspaces' 
| distinct location

and then your Workspace parameter would be:

resources
| where type =~ 'microsoft.operationalinsights/workspaces' 
| where location =={myRegion}


Hope that helps
 

@Clive Watson

 

Thanks for the response. We are logging everything to log analytics and then I have created workbooks from queries of the logs and am pinning those to a dashboard. I hope that answers your question as to what I am using.

 

As for querying across the lot of the workspaces I had decided to beak it apart alphabetically when querying workspaces as there is a 100 limit. For example my query for diskspace is for workspace A-l and another M-Z.

 

I know this is all possible but my purpose\intent is to make the displayed results more concise, easy to look at and useable from a users perspective when it comes to a dashboard for administrators to use to make decisions for support purposes so there's not so much across the page.

 

For example...lets go back to the disk space query. Rather than have a box pinned with Disks less than 10% available and it lists every disk it would list just a number. I can then click the number on the dashboard and it takes me to the list. Or for updates: Rather than have the entire list of servers with their respective list of updates I have a row for server missing critical, a row for servers missing security and they have numbers that I can click that takes me to the list.

 

Ideally that's where I would like to get to as what I have now is kind of information overload and clunky. Thanks again for your response!

@cdranschak 

 

1. Thanks that explains the Dashboard

2. Are all the workspaces in the same Azure Regions, if not, when you split them alphabetically, you could be trying to get data from many local or remote clusters.  This may affect query time.

3. For the disk example, does this demo help, are you trying to click on a item to aid filtering later on (happy to share this file with you) byLocationDemo.gif

@Clive Watson 

 

No. Unfortunately they are spread across a few regions, although we do not typically see any issues with query times. 

 

I would say even that is a bit too busy for what I am talking about. If you were an admin and looking at a dashboard and you wanted a granular view, specific things you wanted to know about right then and there all in one place. Lets consider one of those things to be server up and server down. If you have hundreds of servers up/down you wouldn't want to see all of them on a dashboard but rather maybe just a number. From the dashboard you could click that # and it would take you to say a workbook where it displayed the list of servers that were up or down.

 

That is more or less what I am looking to do, but with about 5 or 6 different items to measure.