Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfa, Azure Hizmet Durumu Etkilenen kaynaklar için Azure Kaynak Grafı örnek sorgularından oluşan bir koleksiyondur.
Uyarı
Her sorgudan sonra, güncelleştirilmiş sonuçları genel olarak 5 dakika içinde görmeniz gerekir.
Genel Bakış
Bu sayfa, Azure Kaynak Grafı aracılığıyla Kusto Sorgu Dili'ni (KQL) kullanarak Azure hizmetlerinizin ve kaynaklarınızın durumunu izlemenize ve anlamanıza yardımcı olur.
Azure Hizmet Durumu için özel olarak örnek sorgular içerir.
Etkilenen kaynak örneği sorguları
Planlı bakımdan etkilenen onaylanmış kaynaklar
Genel Bakış Bu belgede, Planlı Bakımı Azure Hizmet Durumu verilerle ilişkilendirmek için Azure Kaynak Grafı (ARG) sorgularının nasıl kullanılacağı açıklanmaktadır. Birlikte, etkilenen kaynakları belirler, bakım durumunu belirler ve herhangi bir eylem gerekip gerekmediğini belirtir.
Sorgu 1 – Bakım güncelleştirmeleri ve etkilenen kaynaklar
Amaç
Bu sorgu belirli bir Planlı Bakım bildirim kimliğiyle ilişkili tüm kaynakları tanımlar.
Veri kaynakları
-
maintenanceresources(microsoft.maintenance/updates) -
servicehealthresources(microsoft.resourcehealth/events/impactedresources)
Çıkış
Bakım durumlarını gösteren etkilenen kaynakların konsolide listesi.
maintenanceresources
| where type == 'microsoft.maintenance/updates'
| extend p = parse_json(properties)
| mv-expand d = p.value
| where tostring(d.notificationId) == 'PYN_-ZL8'
| extend
targetResourceId = tolower(name),
plannedMaintenanceId = tostring(d.notificationId),
status = tostring(d.status),
resourceGroup = tostring(
split(split(id, '/resourceGroups/')[1], '/')[0]
),
resourceType = strcat(
tostring(split(split(id, '/providers/')[1], '/')[0]),
'/',
tostring(split(split(id, '/providers/')[1], '/')[1])
)
| project targetResourceId, subscriptionId, resourceGroup, resourceType, plannedMaintenanceId, status, source = 'Maintenance'
| union (
servicehealthresources
| where type =~ 'microsoft.resourcehealth/events/impactedresources'
| where id contains 'PYN_-ZL8'
| extend p = parse_json(properties)
| extend
targetResourceId = tolower(tostring(p.targetResourceId)),
status = tostring(p.status),
resourceGroup = tostring(split(split(tostring(p.targetResourceId), '/resourceGroups/')[1], '/')[0]),
resourceType = strcat(
tostring(split(split(tostring(p.targetResourceId), '/providers/')[1], '/')[0]),
'/',
tostring(split(split(tostring(p.targetResourceId), '/providers/')[1], '/')[1])
)
| project targetResourceId, subscriptionId, resourceGroup, resourceType, status
)
| project subscriptionId, targetResourceId, resourceGroup, resourceType, plannedMaintenanceId, status
Sorgu 2 – Hizmet Durumu olayından kaynak çözümlemesine
Amaç
Hizmet Durumu olayından başlayarak, bakım altındaki konakları, VM'leri veya VMSS örneklerini tam olarak belirleyin ve müşteri düzeltmesi (Bakım Uzantısı) gerekip gerekmediğini belirleyin.
Veri kaynakları
-
servicehealthresources(eventsveimpactedresources) -
maintenanceresources(microsoft.maintenance/updates)
Çıkış
Bakım durumunu ve gerekli kullanıcı eylemini gösteren kaynak tarafından çözümlenen bir görünüm.
servicehealthresources
| where type =~ 'microsoft.resourcehealth/events'
| where name contains '1J14-8LG'
| project plannedMaintenanceID = tostring(properties.ExternalIncidentId)
| join kind=inner (
maintenanceresources
| where ['type'] == 'microsoft.maintenance/updates'
| extend prop = parse_json(properties)
| mv-expand Value = prop.value
| where tostring(Value.maintenanceScope) == 'Host'
| extend plannedMaintenanceID = tostring(Value.properties.plannedMaintenanceId)
| extend name = tolower(name)
| extend controlledMaintenanceEndTime = tostring(Value.endTimeUtc)
| extend status = tostring(Value.properties.plannedMaintenanceStatus)
| extend isVmssInstance = name has '/virtualmachinescalesets/'
| extend isHost = name has '/hostgroups/hosts/'
| extend vmssName = extract(@'/virtualmachinescalesets/([^/]+)/', 1, name)
| extend vmssInstance = extract(@'/virtualmachines/([^/]+)$', 1, name)
| extend vmName = extract(@'/virtualmachines/([^/]+)$', 1, name)
| extend hostName = extract(@'/hosts/([^/]+)$', 1, name)
| extend targetResourceName =
iff(isHost, hostName,
iff(isVmssInstance, strcat(vmssName, '_', vmssInstance), vmName))
| extend targetResourceType =
iff(isVmssInstance,
'microsoft.compute/virtualmachinescalesets/virtualmachines',
iff(isHost,
'microsoft.compute/hostgroups/hosts',
'microsoft.compute/virtualmachines'))
| extend needsMaintenanceExtension =
not(status in ('InProgress', 'RetryLater', 'NoUpdatesPending', 'Completed'))
| extend targetExtensionName =
iff(needsMaintenanceExtension, 'Microsoft_Azure_Maintenance', '')
| extend targetBladeName =
iff(needsMaintenanceExtension, 'PlannedMaintenance.ReactView', '')
| extend targetParameters =
iff(needsMaintenanceExtension,
strcat('{\"id\":\"', name, '\"}'),
'')
) on plannedMaintenanceID
| project
targetResourceId = name,
targetResourceType,
targetRegion = location,
targetResourceGroup = resourceGroup,
subscriptionId,
plannedMaintenanceID,
targetResourceName ,
controlledMaintenanceEndTime,
status,
targetExtensionName =
iff(
status in ('InProgress','RetryLater','NoUpdatesPending','Completed'),
'',
'Microsoft_Azure_Maintenance'
),
targetBladeName =
iff(
status in ('InProgress','RetryLater','NoUpdatesPending','Completed'),
'',
'PlannedMaintenance.ReactView'
),
targetParameters =
iff(
status in ('InProgress','RetryLater','NoUpdatesPending','Completed'),
'',
targetParameters
)
| union (
servicehealthresources
| where type =~ 'microsoft.resourcehealth/events/impactedresources'
| where id contains '1J14-8LG'
| extend p = parse_json(properties)
| project targetResourceId = tostring(p.targetResourceId),targetResourceType = tostring(p.targetResourceType), targetResourceName=tostring(p.resourceName),targetRegion=tostring(p.targetRegion), subscriptionId)
| project targetResourceId, targetResourceType, targetResourceName, targetRegion,subscriptionId,plannedMaintenanceID,status
Diğer olay türleri için onaylanan etkilenen kaynaklar
Bu sorgu, erişilen tüm aboneliklerde hizmet sorunlarından (kesintiler) ve Hizmet Durumu olaylarından etkilenen tüm kaynakların listesini bulur ve döndürür.
ServiceHealthResources
| where type == "microsoft.resourcehealth/events/impactedresources"
| extend TrackingId = split(split(id, "/events/", 1)[0], "/impactedResources", 0)[0]
| extend p = parse_json(properties)
| project subscriptionId, TrackingId, resourceName= p.resourceName, resourceGroup=p.resourceGroup, resourceType=p.targetResourceType, details = p, id
az graph query -q "ServiceHealthResources | where type == 'microsoft.resourcehealth/events/impactedresources' | extend TrackingId = split(split(id, '/events/', 1)[0], '/impactedResources', 0)[0] | extend p = parse_json(properties) | project subscriptionId, TrackingId, resourceName= p.resourceName, resourceGroup=p.resourceGroup, resourceType=p.targetResourceType, details = p, id"
Daha fazla ayrıntı içeren onaylanmış etkilenen kaynaklar
Bu sorgu, eriştiğiniz aboneliklerin tümünde kesintiler gibi Service Health sorunlarından etkilenen tüm kaynakları getirir. Ayrıca tablodan resources ek ayrıntılar da içerir.
servicehealthresources
| where type == "microsoft.resourcehealth/events/impactedresources"
| extend TrackingId = split(split(id, "/events/", 1)[0], "/impactedResources", 0)[0]
| extend p = parse_json(properties)
| project subscriptionId, TrackingId, targetResourceId= tostring(p.targetResourceId), details = p
| join kind=inner (
resources
)
on $left.targetResourceId == $right.id
az graph query -q "ServiceHealthResources | where type == 'microsoft.resourcehealth/events/impactedresources' | extend TrackingId = split(split(id, '/events/', 1)[0], '/impactedResources', 0)[0] | extend p = parse_json(properties) | project subscriptionId, TrackingId, targetResourceId = tostring(p.targetResourceId), details = p | join kind=inner (resources) on $left.targetResourceId == $right.id"
Sonraki Adımlar
- Sorgu dili hakkında daha fazla bilgi edinin.
- Kaynakları keşfetme hakkında daha fazla bilgi edinin.