Skip to main content

Operations Management Suite (OMS) and SQL Azure

שלום לכולם
והפעם "מוניטורינג חלק 1".
למיקרוסופט יש מבחר כלים שמציעים מוניטורינג, עליהם לא אדבר סך הכל הבלוג שלי מיועד לתמצת את מה שצריך לדעת על SQL Azure.
אז היום אציג את ה OMS והקשר שלו לנו ה  DBA's.

בקצרה על כלי זה:


Microsoft Operations Management Suite (OMS) is Microsoft's cloud-based IT management solution that helps you manage and protect your on-premises and cloud infrastructure. Since OMS is implemented as a cloud-based service, you can have it up and running quickly with minimal investment in infrastructure services. New features are delivered automatically, saving you ongoing maintenance and upgrade costs.
In addition to providing valuable services on its own, OMS can integrate with System Center components such as System Center Operations Manager to extend your existing management investments into the cloud. System Center and OMS can work together to provide a full hybrid management experience.
 
 
ניתן לקרוא בלינקים הללו.
זהו כלי לניהול משאבים שהחל דרכו ככלי של Advisor, ומאחר וממילא אסף נתונים על המכונות שדגם וניטר - החליטו החכמים לאמץ אותו גם בתור כלי ניטור וניהול.
עד לפני זמן מה הוא ניהל רק מכונות וירטואליות וככזה ניסיתי אותו על מכונת ה SQL on Azure VM שלנו.
התוצאות היו יפות אולם לא שימושיות, מדד CPU - התריע על גיבויים, על שימוש ביוזרים בלי ססמאות וכדומה, כל מה ש DBA בסיסי עושה. ייתכן שהוא טוב לחברה שאין בה DBA's.
ומאז התחילו להוסיף עוד ועוד יעדי ניטור.
למשל Azure Activity Log, שזה לוג של כל הפעילויות בפורטל. ועל זה אפרט ב"מוניטורינג חלק 2".
 

ועכשיו הוסיפו יעד ניטור נוסף - SQL Azure DB.
כלומר הענן נותן לך שירות ניטור על בסיסי הנתונים שלך, שירות ניטור בסיסי אבל יעיל, הרעיון הכללי הוא
  • להגדיר workspace.
  • להגדיר אילו SQL נכללים בניטור.
  • לראות את ה DATA שנאסף.
  • להגדיר DashBards.
  • להגדיר Alerts.
ועכשיו נציג כיצד זה עובד, יש פה המון אפשרויות וכל אחד שימצא לעצמו את מסלול הפעולה.
כיצד מפעילים אותו כרגע בשלב ה preview (מין הסתם בהמשך הכל יהיה עם קליקים בפורטל)?



 לאחר שלוחצים על האייקון הכחול אדום Solutions:





בוחרים את ה Azure SQL, ולאחר מכן נפתח ה Solution, ככה הוא נראה בלחיצה על OverView, פה יש לי Solution שמנטר 7 בסיסי נתונים:




השלב הבא הוא ללחוץ על OMS Workspace:



פה יש 4 כפתורים:
  1. מחירון עם 3 אפשרויות, חינם,  20 $ לחודש ו 30 $ לחודש.
  2. OverView - כמה בסיסי נתונים יש לנו במיפוי.
  3. Log Search - זה נותן אפשרות לחיפוש לפי הגדרה ולפי שפת חיפוש מאד ברורה.
  4. OMS Portal - פה יוצאים מהפורטל של Azure ונכנסים לפורטל ניהול אחד של הלוגים שם מגדירים חיפושים מועדפים, התרעות וכדומה
OverView:


Log Search:




הנה דוגמא שבודקת CPU בבסיסי הנתונים שלי:

Type=AzureMetrics MetricName=cpu_percent  | measure AVG(Average) as AVGCPU by Resource  interval 10MINUTE


בעתיד אולי ארחיב על מנועי חיפוש וענן אבל כרגע זה מנוע חיפוש מעולה ומהירץ

רבותי זה המקום היחיד כרגע שמאחד בסיסי נתונים בגרף אחד (אנו עובדים על סקריפט PS שיבצע הכל כשנסיים נעלה ל GitHub לשימוש ציבורי).

המדדים שנדגמים הם:
cpu_percent
physical_data_read_percent
log_write_percent
dtu_consumption_percent
storage
connection_successful
connection_failed
blocked_by_firewall
deadlock
storage_percent
xtp_storage_percent
workers_percent
sessions_percent
dtu_limit
dtu_used

וכך אפשר לבדוק לאורך זמן את כל המדדים הללו בפורטל עצמו.
בצד שמאל של המסך אפשר ללחוץ על חיפושים מועדפים וכדומה.

OMS Portal - פה ניתן להגדיר Dasboards עם גרפים רבים, התרעות חיפושים מועדפים, ככה הוא נראה:



על הפורטל החדש והנחמד הזה ארחיב בבלוג אחר....


לסיום וכמעט הכי חשוב, כדי שהמנוע יאסוף נתונים מבסיס הנתונים הרצוי עליכם להריץ סקריפט PS נחמש שנותן לבחור איזה בסיסי נתונים ועושה Enable לאיסוף הנתונים.

הפרטים פה:


Enable Azure resource metrics logging using PowerShell

אחרי שמריצים את הסקריפט  הוא מציג:
 
 
 
 
 
 
 
 
Metrics gathering for new resource zzzzz/master of type [Microsoft.Sql/servers/databases] was set to enabled
Metrics gathering for new resource zzzzz/z1db of type [Microsoft.Sql/servers/databases] was set to enabled
Metrics gathering for new resource zzzzz/z2db of type [Microsoft.Sql/servers/databases] was set to enabled

Metrics gathering for new resource zzzzzz/z2db of type [Microsoft.Sql/servers/databases] was set to enabled

Metrics gathering for new resource zzzzzz/z3db of type [Microsoft.Sql/servers/databases] was set to enabled

Metrics gathering for new resource zzzzzz/z4db of type [Microsoft.Sql/servers/databases] was set to enabled


 
 
 
 

 

 זהו להיום - נראה לי קצת מורכב אבל זה עובד ועובד טוב. זמין לשאלות ובעיות
פיני
 

Comments

Popular posts from this blog

Extended Events in SQL Azure

Hi Everybody   Today an English post about 'Extended Events in SQL Azure', some of you shorten the name to 'EE' and some to 'XEvent'. I Love EE so this is how I will call it in this post.   This feature was introduce in SQL Server 2008 and its should help collecting DATA about what is running in the Server.   More Details about this SQL Server feature can be found in this Link: https://msdn.microsoft.com/library/bb630282.aspx?f=255&MSPPError=-2147217396   There are a few differences between EE in SQL Azure and regular SQL Server: In SQL Server versions the EE are on the Server level and therefore you create sessions on Server. In SQL Azure the server is a virtual entity - so the EE is in DB level and you create the session on DataBase. In SQL Server versions the EE can write to files on the server. SQL Azure does not have drives for files (SQL Azure is PAAS.....:-)). There is an option to write to blob storage, for this we need t...

How to restore deleted Azure Synapse dedicated SQL pool

  Existing dedicated pool can be easily restored from Azure portal or PowerShell command, but for now deleted pool could be restored from PowerShell only! Example: # Connect to Azure with system-assigned managed identity $AzureContext = (Connect-AzAccount -Identity).context # set and store context $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext # $AzureContext = Set-AzContext -SubscriptionName $SubscriptionName -DefaultProfile $AzureContext $SubscriptionName="Databases" $ResourceGroupName="stg-rg-we" $ServerName="stg-synapse-we"   $DatabaseName="sql_we_2023_11_07_13_42" $NewDatabaseName="sql_dp_we_deleted" ######################################## $token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token $SubscriptionId = "ce088f9e-1111111a3914b" $DedicatedPoolEndPoint = "stg-synapse-we.sql.azuresynapse.net" $DedicatedPoolName = $DatabaseNam...

The journey to the Lakehouse

A long time has passed since the last post, we have gone through a long and tedious journey to adapt what Azure offers us, to our needs. Our needs were simple, the Current Datawarehouse (SQL Server on VM inazure) served the BI. ML teams worked on GCP, we want to let both teams to work on Azure in a platform that will have the ability to scale and will not fail every 2 days. We checked: Snowflake on azure Synapse analytics GCP We decided to go for the full Azure product for the reasons: Migration time support costs Synapse as a platform contains many components, and the challenge was to find what fits  us as an organization and as a group. The knowledge of the people and their abilities influenced the plans. Here's what we planned and what we did: We start to put everything in the Data Lake in parquet or delta format, build on top of Azure ADLS gen 2. We had to move some data to T-SQL compatible platform, so this involves setting up a dedicated Synapse pool , which is a fully man...