Megosztás a következőn keresztül:


Monitorozási erőforrások létrehozása a Bicep használatával

Az Azure átfogó eszközkészletet biztosít az alkalmazások és szolgáltatások figyelésére. A monitorozási erőforrásokat programozott módon hozhatja létre a Bicep használatával, hogy automatizálja a szabályok, diagnosztikai beállítások és riasztások létrehozását az Azure-infrastruktúra kiépítésekor.

A monitorozási konfiguráció bicep-kódba való beépítése szokatlannak tűnhet, figyelembe véve, hogy az Azure Portalon vannak olyan eszközök, amelyekkel riasztási szabályokat, diagnosztikai beállításokat és irányítópultokat állíthat be.

A riasztások és a diagnosztikai beállítások azonban lényegében megegyeznek a többi infrastruktúra-erőforrással. Ha belevenné őket a Bicep-kódba, ugyanúgy telepítheti és tesztelheti a riasztási erőforrásokat, mint más Azure-erőforrások esetében.

Ha a Git vagy egy másik verzióvezérlő eszközzel kezeli a Bicep-fájlokat, akkor a figyelési konfiguráció előzményeit is kihasználhatja, így láthatja, hogyan lettek beállítva és konfigurálva a riasztások.

Log Analytics- és Application Insights-munkaterületek

Log Analytics-munkaterületeket Microsoft.OperationalInsights/-munkaterületek és Application Insights-munkaterületek erőforrástípussal hozhat létre Microsoft.Insights/components típussal. Mindkét összetevő erőforráscsoportokban van üzembe helyezve.

Diagnosztikai beállítások

A diagnosztikai beállítások lehetővé teszik az Azure Monitor konfigurálását, hogy a naplókat és metrikákat számos célhelyre exportálja, például a Log Analyticsbe és az Azure Storage-ba.

A Bicep diagnosztikai beállításainak létrehozásakor ne feledje, hogy ez az erőforrás egy bővítményerőforrás, ami azt jelenti, hogy egy másik erőforrásra van alkalmazva. Diagnosztikai beállításokat a Bicepben a Microsoft.Insights/diagnosticSettings erőforrástípussal hozhat létre.

A Bicep diagnosztikai beállításainak létrehozásakor alkalmaznia kell a diagnosztikai beállítás hatókörét. A diagnosztikai beállítás a felügyelet, az előfizetés vagy az erőforráscsoport szintjén alkalmazható. Az erőforrás hatókörének beállításához használja az erőforrás hatókörtulajdonságát.

Vegyük a következő példát:

param location string = resourceGroup().location
param appPlanName string = '${uniqueString(resourceGroup().id)}asp'
param logAnalyticsWorkspace string = '${uniqueString(resourceGroup().id)}la'

var appPlanSkuName = 'S1'

resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = {
  name: logAnalyticsWorkspace
}

resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: appPlanName
  location: location
  sku: {
    name: appPlanSkuName
    capacity: 1
  } 
}

resource diagnosticLogs 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
  name: appServicePlan.name
  scope: appServicePlan
  properties: {
    workspaceId: logAnalytics.id
    logs: [
      {
        category: 'AllMetrics'
        enabled: true
        retentionPolicy: {
          days: 30
          enabled: true 
        }
      }
    ]
  }
}

Az előző példában létrehoz egy diagnosztikai beállítást az App Service-csomaghoz, és elküldi ezeket a diagnosztikákat a Log Analyticsnek. A tulajdonsággal definiálhatja az scope App Service-csomagot a diagnosztikai beállítás hatóköreként, és a workspaceId tulajdonság használatával meghatározhatja a Log Analytics-munkaterületet, a melybe a diagnosztikai naplókat küldi. A diagnosztikai beállításokat az Event Hubsba és az Azure Storage-fiókokba is exportálhatja.

A naplótípusok eltérőek az erőforrások között, ezért győződjön meg arról, hogy az exportálni kívánt naplók alkalmazhatók a használt erőforrásra.

Tevékenységnapló diagnosztikai beállításai

Ha a Bicep használatával diagnosztikai beállításokat szeretne konfigurálni az Azure-tevékenységnapló exportálásához, helyezzen üzembe egy diagnosztikai beállítási erőforrást az előfizetés hatókörében.

Az alábbi példa bemutatja, hogyan exportálhat több tevékenységnapló-típust egy Log Analytics-munkaterületre:

targetScope = 'subscription'

param logAnalyticsWorkspaceId string

var activityLogDiagnosticSettingsName = 'export-activity-log'

resource subscriptionActivityLog 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
  name: activityLogDiagnosticSettingsName
  properties: {
    workspaceId: logAnalyticsWorkspaceId
    logs: [
      {
        category: 'Administrative'
        enabled: true
      }
      {
        category: 'Security'
        enabled: true
      }
      {
        category: 'ServiceHealth'
        enabled: true
      }
      {
        category: 'Alert'
        enabled: true
      }
      {
        category: 'Recommendation'
        enabled: true
      }
      {
        category: 'Policy'
        enabled: true
      }
      {
        category: 'Autoscale'
        enabled: true
      }
      {
        category: 'ResourceHealth'
        enabled: true
      }
    ]
  }
}

Riasztások

A riasztások proaktív módon értesítik, ha problémák merülnek fel az Azure-infrastruktúrában és az alkalmazásokban az Azure Monitoron belüli adatok monitorozásával. Ha konfigurálja a monitorozási és riasztási konfigurációt a Bicep-kódban, automatizálhatja ezeknek a riasztásoknak a létrehozását az Azure-ban kiépített infrastruktúra mellett.

A riasztások Azure-beli működésével kapcsolatos további információkért tekintse meg a Microsoft Azure riasztásainak áttekintését.

Az alábbi szakaszok bemutatják, hogyan konfigurálhat különböző típusú riasztásokat Bicep-kóddal.

Műveletcsoportok

Ha értesítést szeretne kapni a riasztások aktiválásakor, létre kell hoznia egy műveletcsoportot. A műveletcsoport az Azure-előfizetés tulajdonosa által meghatározott értesítési beállítások gyűjteménye. A műveletcsoportok arra szolgálnak, hogy értesítsék a felhasználókat arról, hogy riasztást aktiváltak, vagy automatikus válaszokat váltanak ki a riasztásokra.

A Bicep műveletcsoportjait a Microsoft.Insights/actionGroups típussal hozhatja létre. Példa:

param actionGroupName string = 'On-Call Team'
param location string = resourceGroup().location

var actionGroupEmail = 'oncallteam@contoso.com'

resource supportTeamActionGroup 'Microsoft.Insights/actionGroups@2023-01-01' = {
  name: actionGroupName
  location: location
  properties: {
    enabled: true
    groupShortName: actionGroupName
    emailReceivers: [
      {
        name: actionGroupName
        emailAddress: actionGroupEmail
        useCommonAlertSchema: true
      }
    ]
  }
}

Az előző példa létrehoz egy műveletcsoportot, amely riasztásokat küld egy e-mail-címre, de definiálhat olyan műveletcsoportokat is, amelyek riasztásokat küldenek az Event Hubsnak, az Azure Functionsnek, a Logic Appsnek stb.

Riasztásfeldolgozási szabályok

A riasztásfeldolgozási szabályok (korábbi nevén műveleti szabályok) lehetővé teszik az aktivált riasztások feldolgozását. A Bicepben a Microsoft.AlertManagement/actionRules típussal hozhat létre riasztásfeldolgozási szabályokat.

Minden riasztásfeldolgozási szabály hatókörrel rendelkezik, amely lehet egy vagy több konkrét erőforrás, egy adott erőforráscsoport vagy a teljes Azure-előfizetés listája. Amikor riasztásfeldolgozási szabályokat határoz meg a Bicepben, a hatókör tulajdonságban definiálja az erőforrás-azonosítók listáját, amely a riasztásfeldolgozási szabályhoz tartozó erőforrásokat célozza meg.

param alertRuleName string = 'AlertRuleName'
param actionGroupName string = 'On-Call Team'
param location string = resourceGroup().location

resource actionGroup 'Microsoft.Insights/actionGroups@2023-09-01-preview' existing = {
  name: actionGroupName
}

resource alertProcessingRule 'Microsoft.AlertsManagement/actionRules@2023-05-01-preview' = {
  name: alertRuleName
  location: location
  properties: {
    actions: [
      {
        actionType: 'AddActionGroups'
        actionGroupIds: [
          actionGroup.id
        ]
      }
    ]
    conditions: [
      {
        field: 'MonitorService'
        operator: 'Equals'
        values: [
          'Azure Backup'
        ]
      }
    ]
    enabled: true
    scopes: [
      subscription().id
    ]
  }
}

Az előző példában az MonitorService Azure Backup Vault riasztásfeldolgozási szabálya van definiálva, amely a meglévő műveletcsoportra lesz alkalmazva. Ez a szabály riasztásokat aktivál a műveletcsoport számára.

Naplóriasztási szabályok

A naplóriasztások automatikusan naplóelemzési lekérdezést futtatnak. Az erőforrásnaplók ön által meghatározott időközönként történő kiértékelésére használt lekérdezés meghatározza, hogy az eredmények megfelelnek-e az Ön által megadott feltételeknek, majd riasztást küld.

Naplóriasztási szabályokat a Bicepben a Microsoft.Insights/scheduledQueryRules típussal hozhat létre.

Metrika riasztási szabályai

A metrikariasztások értesítést küldenek, ha az egyik metrika átlép egy meghatározott küszöbértéket. A Bicep-kódban metrikariasztási szabályt a Microsoft.Insights/metricAlerts típussal határozhat meg.

Tevékenységnapló-alapú riasztások

Az Azure-tevékenységnapló egy platformnapló az Azure-ban, amely betekintést nyújt az előfizetés szintjén zajló eseményekbe. Ide tartoznak például az Azure-beli erőforrások módosításának időpontjára vonatkozó információk.

A tevékenységnapló-riasztások olyan riasztások, amelyek akkor aktiválódnak, ha új tevékenységnapló-esemény történik, amely megfelel a riasztásban megadott feltételeknek.

A Microsoft.Insights/activityLogAlerts típuson belül a scope tulajdonsággal tevékenységnapló-riasztásokat hozhat létre egy adott erőforráson vagy az erőforrások listáján az erőforrásazonosítókat előtagként használva.

Megadhatja a riasztási szabály feltételeit a condition tulajdonságon belül, majd konfigurálja a riasztási csoportot, hogy a tömb használatával aktiválja ezeket a actionGroup riasztásokat. Itt egy vagy több műveletcsoportot adhat át a tevékenységnapló-riasztások elküldéséhez a követelményektől függően.

param activityLogAlertName string = '${uniqueString(resourceGroup().id)}-alert'
param actionGroupName string = 'adminactiongroup'

resource actionGroup 'Microsoft.Insights/actionGroups@2023-09-01-preview' existing = {
  name: actionGroupName
}

resource activityLogAlert 'Microsoft.Insights/activityLogAlerts@2023-01-01-preview' = {
  name: activityLogAlertName
  location: 'Global'
  properties: {
    condition: {
      allOf: [
        {
          field: 'category'
          equals: 'Administrative'
        }
        {
          field: 'operationName'
          equals: 'Microsoft.Resources/deployments/write'
        }
        {
          field: 'resourceType'
          equals: 'Microsoft.Resources/deployments'
        }
      ]
    }
    actions: {
      actionGroups: [
        {
          actionGroupId: actionGroup.id
        }
      ]
    }
    scopes: [
      subscription().id
    ]
  }
}

Resource Health-riasztások

Az Azure Resource Health folyamatosan tájékoztatja az Azure-erőforrások aktuális és korábbi állapotáról. Az erőforrás-állapotra vonatkozó riasztások Bicep használatával történő létrehozásával tömegesen hozhatja létre és szabhatja testre ezeket a riasztásokat.

A Bicepben Microsoft.Insights/activityLogAlerts típusú erőforrás-állapotriasztásokat hozhat létre.

Az erőforrás-állapotriasztások konfigurálhatók úgy, hogy az előfizetés, erőforráscsoport vagy egyéni erőforrás szintjén monitorozzák az eseményeket.

Vegye figyelembe az alábbi példát, amelyben létrehoz egy erőforrás-állapotriasztást, amely a szolgáltatásállapot-riasztásokról számol be. A riasztás az előfizetés szintjén (a scope tulajdonság használatával) lesz alkalmazva, és riasztásokat küld egy meglévő műveletcsoportnak:

param activityLogAlertName string = uniqueString(resourceGroup().id)
param actionGroupName string = 'oncallactiongroup'

resource actionGroup 'Microsoft.Insights/actionGroups@2023-09-01-preview' existing = {
  name: actionGroupName
}

resource resourceHealthAlert 'Microsoft.Insights/activityLogAlerts@2023-01-01-preview' = {
  name: activityLogAlertName
  location: 'global'
  properties: {
    condition: {
      allOf: [
        {
          field: 'category'
          equals: 'ServiceHealth'
        }
      ]
    }
    scopes: [
      subscription().id
    ]
    actions: {
      actionGroups: [
        {
          actionGroupId: actionGroup.id
        }
      ]
    }
  }
}

Intelligens észlelési riasztások

Az intelligens észlelési riasztások figyelmeztetik a webalkalmazás lehetséges teljesítményproblémáira és hibaanomáliáira. A Bicepben a Microsoft.AlertsManagement/smartDetectorAlertRules típussal hozhat létre intelligens észlelési riasztásokat.

Irányítópultok

A Bicepben a Microsoft.Portal/irányítópultok erőforrástípussal hozhat létre portál-irányítópultokat.

Az irányítópultok kóddal történő létrehozásáról további információt az Azure-irányítópult programozott módon történő létrehozásával kapcsolatos cikkben talál.

Automatikus méretezési szabályok

Automatikus skálázási beállítás létrehozásához ezeket a Microsoft.Insights/autoscaleSettings erőforrástípussal határozhatja meg.

Annak az erőforrásnak a megcélzásához, amelyhez az automatikus méretezési beállítást alkalmazni szeretné, meg kell adnia annak az erőforrásnak a célerőforrás-azonosítóját, amelyhez a beállítást hozzá kell adni.

Ebben a példában az App Service-csomag vertikális felskálázási feltétele egy 10 perces időszak átlagos CPU-százalékos értéke alapján. Ha az App Service-csomag 10 perc alatt meghaladja az átlagos processzorhasználat 70%-át, az automatikus skálázási motor egy példány hozzáadásával skálázza ki a tervet.

param location string = resourceGroup().location
param appPlanName string = '${uniqueString(resourceGroup().id)}asp'

var appPlanSkuName = 'S1'

resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: appPlanName
  location: location
  properties: {}
  sku: {
    name: appPlanSkuName
    capacity: 1
  }
}

resource scaleOutRule 'Microsoft.Insights/autoscalesettings@2022-10-01' = {
  name: appServicePlan.name
  location: location
  properties: {
    enabled: true
    profiles: [
      {
        name: 'Scale out condition'
        capacity: {
          maximum: '3'
          default: '1'
          minimum: '1'
        }
        rules: [
          {
            scaleAction: {
              type: 'ChangeCount'
              direction: 'Increase'
              cooldown: 'PT5M'
              value: '1'
            }
            metricTrigger: {
              metricName: 'CpuPercentage'
              operator: 'GreaterThan'
              timeAggregation: 'Average'
              threshold: 70
              metricResourceUri: appServicePlan.id
              timeWindow: 'PT10M'
              timeGrain: 'PT1M'
              statistic: 'Average'
            }
          }
        ]
      }
    ]
    targetResourceUri: appServicePlan.id
  }
}

Feljegyzés

Az automatikus skálázási szabályok meghatározásakor tartsa szem előtt az ajánlott eljárásokat, hogy elkerülje az automatikus skálázási kísérletekkel kapcsolatos problémákat, például a felsimítást. További információkért tekintse meg az automatikus skálázás ajánlott eljárásait ismertető alábbi dokumentációt.