Monitorozási erőforrások létrehozása a Bicep használatával
Az Azure egy átfogó eszközkészletet biztosít, amely képes monitorozni az alkalmazásokat és szolgáltatásokat. 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, mivel a Azure Portal belül rendelkezésre állnak a riasztási szabályok, diagnosztikai beállítások és irányítópultok beállítására szolgáló eszközök.
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 Gitet vagy egy másik verziókövetési eszközt használ a Bicep-fájlok kezeléséhez, azzal az előnyökkel is jár, hogy rendelkezik a figyelési konfiguráció előzményeivel, í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/workspaces é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.
Amikor diagnosztikai beállításokat hoz létre a Bicepben, a diagnosztikai beállítás hatókörét kell alkalmaznia. 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.
Tekintse meg 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@2021-12-01-preview' existing = {
name: logAnalyticsWorkspace
}
resource appServicePlan 'Microsoft.Web/serverfarms@2021-03-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 a App Service csomaghoz, és elküldi ezeket a diagnosztikát a Log Analyticsnek. A tulajdonsággal definiálhatja a scope
App Service csomagot a diagnosztikai beállítás hatóköreként, a tulajdonsággal workspaceId
pedig definiálhatja a Log Analytics-munkaterületet a diagnosztikai naplók elküldéséhez. 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ívan é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 a riasztások létrehozását az Azure-ban kiépített infrastruktúra mellett.
A riasztások Azure-beli működéséről további információt a Riasztások áttekintése a Microsoft Azure-ban című témakörben talál.
Az alábbi szakaszok bemutatják, hogyan konfigurálhat különböző típusú riasztásokat a 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 a riasztás aktivált állapotáról, vagy automatikus válaszokat váltanak ki a riasztásokra.
Ha műveletcsoportokat szeretne létrehozni a Bicepben, használja a Microsoft.Insights/actionGroups típust. Például:
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, Azure Functions, 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 a feldolgozás alkalmazását az aktivált riasztásokon. A Bicepben a Microsoft.AlertsManagement/actionRules típussal hozhat létre riasztásfeldolgozási szabályokat.
Minden riasztásfeldolgozási szabály hatókörrel rendelkezik, amely egy vagy több konkrét erőforrás, egy adott erőforráscsoport vagy a teljes Azure-előfizetés listája lehet. 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@2021-09-01' existing = {
name: actionGroupName
}
resource alertProcessingRule 'Microsoft.AlertsManagement/actionRules@2021-08-08' = {
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 a 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 futtatnak egy Log Analytics-lekérdezést. A lekérdezés, amely az erőforrásnaplók ön által meghatározott időközönkénti kiértékelésére szolgál, meghatározza, hogy az eredmények megfelelnek-e bizonyos megadott feltételeknek, majd riasztást aktivál.
A Naplóriasztási szabályokat a Microsoft.Insights/scheduledQueryRules típussal hozhatja létre a Bicepben.
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ó-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. Ezek közé 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üli tulajdonsággal scope
tevékenységnapló-riasztásokat hozhat létre egy adott erőforráson, vagy előtagként használhatja az erőforrásazonosítókat használó erőforrások listáját.
Megadhatja a riasztási szabály feltételeit a condition
tulajdonságon belül, majd konfigurálja a riasztási csoportot úgy, hogy a tömb használatával aktiválja ezeket a actionGroup
riasztásokat. Itt átadhat egy vagy több műveletcsoportot 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@2021-09-01' existing = {
name: actionGroupName
}
resource activityLogAlert 'Microsoft.Insights/activityLogAlerts@2020-10-01' = {
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
]
}
}
Erőforrásállapot-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-állapotriasztások a 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 egy 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@2021-09-01' existing = {
name: actionGroupName
}
resource resourceHealthAlert 'Microsoft.Insights/activityLogAlerts@2020-10-01' = {
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 figyelmeztetnek 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ával kapcsolatos további információkért lásd: Azure-irányítópult programozott létrehozása.
Automatikus skálázá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, amelyre az automatikus skálázá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 egy vertikális felskálázási feltételt a App Service tervhez, amely a 10 perces időszak átlagos processzorhasználati arányán alapul. Ha a 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 fel a tervet.
param location string = resourceGroup().location
param appPlanName string = '${uniqueString(resourceGroup().id)}asp'
var appPlanSkuName = 'S1'
resource appServicePlan 'Microsoft.Web/serverfarms@2022-09-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
}
}
Megjegyzé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érletek során felmerülő problémákat, például a jelölé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ó források (lehet, hogy a cikkek angol nyelvűek)
- 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