Aracılığıyla paylaş


Azure İzleyici SCOM Yönetilen Örneği verilerini Azure Yönetilen Grafana panolarından sorgulama

Bu makalede, İşletimsel veritabanından izleme verilerini sorgulama ve Azure Yönetilen Grafana'da pano oluşturma işlemleri açıklanmaktadır.

Azure İzleyici SCOM Yönetilen Örneği'ne bağlı Azure Yönetilen Grafana'dan, azure yönetilen SQL Yönetilen Örneği depolanan operasyonel veritabanından izlenen verileri almak için SQL sorgularını kullanabilirsiniz.

Önkoşullar

Azure Yönetilen Grafana portalından izleme verilerini sorgulamadan önce SCOM Yönetilen Örneği'nin Azure Yönetilen Grafana'ya bağlı olduğundan emin olun. Daha fazla bilgi için bkz . Azure Yönetilen Grafana'da panolar.

Azure Yönetilen Grafana örneğindeki gereksinimlerinize göre içeri aktarılıp düzenlenebilen Azure/SCOM Yönetilen Örneği/İşlem Panosu'nda kullanıma hazır birkaç pano mevcuttur.

Azure Yönetilen Grafana'da pano oluşturma

Pano oluşturmak için şu adımları izleyin:

  1. Grafana'ya gidin ve Görselleştirme ekle'yi seçin. Kullanılabilir seçeneklere göre görselleştirme türünü seçebilirsiniz. Görselleştirme ekle'nin ekran görüntüsü.
  2. Panel seçenekleri'nin altında Başlık ve Açıklama girin. Panel seçeneklerinin ekran görüntüsü.
  3. Sorgu'nun altında Kod'a tıklayın ve sorguyu girin. Kod seçeneklerinin ekran görüntüsü.
  4. Sorguyu çalıştır'ı seçin.

Örnek sorgular

SCOM Yönetilen Örneği ile Azure Yönetilen Grafana'yı kullanmaya başlamak için aşağıda birkaç yararlı örnek sorgu ve pano verilmiştir:

  • İş yükünün sistem durumu
  • İş yükü durumu ve bu uyarılardaki yeni uyarıların sayısı
  • İş yükündeki en önemli olaylar
  • İş yükünden en iyi uyarılar
  • İş yükü sayacı için performans veri sorgusu

Aşağıdaki sorgular belirli bir iş yükü/izleme nesnesinden Sistem Durumu, Uyarılar ve En önemli olayları oluşturmanıza yardımcı olur:

Not

  • Yönetim paketi adı ön ekini> <SQL iş yükü için %Microsoft.SQL gibi gerçek yönetim paketi adıyla değiştirin.
  • İzleme Nesne Türü'nü <> % gibi bir bileşen sınıfıyla değiştirin. SQL sunucusu rolü için DBEngine.

İş yükünün sistem durumu

SELECT HealthState =  

        CASE  

            WHEN MEV.HealthState = 1 THEN 'Healthy'  

            WHEN MEV.HealthState = 2 THEN 'Warning'  

            WHEN MEV.HealthState = 3 THEN 'Critical'  

            ELSE 'Uninitialized'  

        END,  

        CAST(COUNT(*)  AS DECIMAL(5, 2)) AS servers  

  FROM ${Database}.[dbo].[ManagedEntityGenericView] MEV  

  INNER JOIN ${Database}.[dbo].[ManagedTypeView] MTV ON MTV.Id = MEV.MonitoringClassId and MTV.name like '%.<Monitoring Object Type>'  

  INNER JOIN ${Database}.[dbo].[ManagementPackView] MPV ON MPV.Id = MTV.ManagementPackId and MPV.name like '<MP name Prefix>'  

  GROUP BY MEV.HealthState  

  ORDER BY MEV.HealthState  

İş yükü durumu ve bu uyarılardaki yeni uyarıların sayısı

SELECT MEV.Name  

         ,HealthState =   

      CASE   

        WHEN MEV.HealthState = 1 THEN 'Healthy'  

        WHEN MEV.HealthState = 2 THEN 'Warning'  

        WHEN MEV.HealthState = 3 THEN 'Critical'  

        ELSE 'Uninitialized'  

      END  

      ,NewAlerts = COUNT(AV.ResolutionState)  

  FROM ${Database}.[dbo].[ManagedEntityGenericView] MEV  

  INNER JOIN ${Database}.[dbo].[ManagedTypeView] MTV ON MTV.Id = MEV.MonitoringClassId and MTV.name like '%.<Monitoring Object Type>'  

  INNER JOIN ${Database}.[dbo].[ManagementPackView] MPV ON MPV.Id = MTV.ManagementPackId and MPV.name like '%<MP name prefix>%'  

  INNER JOIN ${Database}.[dbo].[AlertView] AV ON AV.MonitoringClassId = MTV.Id and AV.ResolutionState = 0 AND  $__timeFilter(TimeRaised)  

  GROUP BY MEV.Name, HealthState, AV.ResolutionState  

İş yükündeki en önemli olaylar

SELECT EventDescription = LT5.LTValue  

      ,Count(*) Occurences  

      ,AffectedSQLServers = Count(DISTINCT(EV.LoggingComputer))  

  FROM ${Database}.[dbo].[EventView] EV  

  INNER JOIN ${Database}.[dbo].[ManagedTypeView] MTV ON MTV.Id = EV.ClassId   

  INNER JOIN ${Database}.[dbo].[ManagementPackView] MPV ON MPV.Id = MTV.ManagementPackId and MPV.name like '%<MP Name Prefix>%'  

  INNER JOIN ${Database}.dbo.LocalizedText LT5 ON EV.EventNumberStringId = LT5.LTStringId AND LT5.LanguageCode = 'ENU'  

  WHERE $__timeFilter(TimeGenerated) AND LevelId < 3  

GROUP BY Number, LT5.LTValue  

ORDER BY Occurences, AffectedSQLServers DESC;  

İş yükünden en iyi uyarılar

SELECT AV.AlertStringName AS Alert  

      ,Occurrence = COUNT(AV.ResolutionState)  

      ,AffectedServers = COUNT(MEV.name)  

  FROM ${Database}.[dbo].[AlertView] AV  

  INNER JOIN ${Database}.[dbo].[ManagedTypeView] MTV ON MTV.Id = AV.MonitoringClassId and MTV.name like '%<Monitoring Object Type>'  

  INNER JOIN ${Database}.[dbo].[ManagementPackView] MPV ON MPV.Id = MTV.ManagementPackId and MPV.name like '%M<MP Name Prefix>%'  

  INNER JOIN ${Database}.[dbo].[ManagedEntityGenericView] MEV ON MTV.Id = MEV.MonitoringClassId  

  where AV.ResolutionState = 0 and  $__timeFilter(TimeRaised)  

  GROUP BY AV.AlertStringName, AV.ResolutionState 

İş yükü sayacı için performans veri sorgusu

SELECT PD.TimeSampled 

   ,CASE  

		WHEN BME.Path IS NOT NULL AND BME.Path <> '' THEN CONCAT(BME.Path, '\', COALESCE(BME.Name, '')) 

		ELSE COALESCE(BME.Name, '') END AS TagetObjectPath 

  ,ObjectName = PC.ObjectName 

  ,CounterName = PC.CounterName 

  ,Value = PD.SampleValue 

  FROM dbo.PerformanceDataAllView PD  

  INNER JOIN dbo.PerformanceSource PS ON PD.PerformanceSourceInternalId = PS.PerformanceSourceInternalId 

  INNER JOIN dbo.PerformanceCounter PC ON PS.PerformanceCounterId = PC.PerformanceCounterId and CounterName = 'Receive I/Os/sec' 

  INNER JOIN dbo.BaseManagedEntity BME ON PS.BaseManagedEntityId = BME.BaseManagedEntityId AND BME.IsDeleted = 0  

  INNER JOIN [dbo].[ManagedTypeView] MTV ON MTV.Id = BME.BaseManagedTypeId  

  INNER JOIN [dbo].[ManagementPackView] MPV ON MPV.Id = MTV.ManagementPackId and MPV.name like 'Microsoft.SQL%' 

Sonraki adımlar

Azure İzleyici SCOM Yönetilen Örneği ile ilgili sorunları giderin.