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.
Kapcsolódó erőforrások
- Erőforrás dokumentációja
- Microsoft.OperationalInsights/workspaces
- Microsoft.Insights/components
- Microsoft.Insights/diagnosticSettings
- Microsoft.Insights/actionGroups
- Microsoft.Insights/scheduledQueryRules
- Microsoft.Insights/metricAlerts
- Microsoft.Portal/irányítópultok
- Microsoft.Insights/activityLogAlerts
- Microsoft.AlertsManagement/smartDetectorAlertRules.
- Microsoft.Insights/autoscaleSettings