Bicep kullanarak izleme kaynakları oluşturma
Azure,uygulama ve hizmetlerinizi izleyebilen kapsamlı bir araç paketine sahiptir. Azure altyapınızı sağlarken kuralların, tanılama ayarlarının ve uyarıların oluşturulmasını otomatikleştirmek için Bicep'i kullanarak izleme kaynaklarınızı program aracılığıyla oluşturabilirsiniz.
Azure portalında uyarı kurallarını, tanılama ayarlarını ve panoları ayarlamak için kullanabileceğiniz araçlar olduğu göz önünde bulundurularak izleme yapılandırmanızı Bicep kodunuz içine getirmek olağan dışı görünebilir.
Ancak, uyarılar ve tanılama ayarları temelde diğer altyapı kaynaklarınız ile aynıdır. Bunları Bicep koduna ekleyerek, uyarı kaynaklarınızı diğer Azure kaynakları için olduğu gibi dağıtabilir ve test edebilirsiniz.
Bicep dosyalarınızı yönetmek için Git veya başka bir sürüm denetim aracı kullanıyorsanız, uyarıların nasıl ayarlandığını ve yapılandırıldığını görebilmek için izleme yapılandırmanızın geçmişini elde etme avantajından da yararlanabilirsiniz.
Log Analytics ve Uygulama Analizler çalışma alanları
Microsoft.Operational Analizler/workspaces kaynak türüyle Log Analytics çalışma alanları ve Microsoft.Analizler türündeki Application Analizler çalışma alanları oluşturabilirsiniz/components. Bu bileşenlerin her ikisi de kaynak gruplarına dağıtılır.
Tanılama ayarları
Tanılama ayarları, Günlüklerinizi ve ölçümlerinizi Log Analytics ve Azure Depolama gibi çeşitli hedeflere aktarmak için Azure İzleyici'yi yapılandırmanıza olanak tanır.
Bicep'te tanılama ayarları oluştururken, bu kaynağın bir uzantı kaynağı olduğunu ve başka bir kaynağa uygulandığını unutmayın. Microsoft.Analizler kaynak türünü kullanarak Bicep'te tanılama ayarları oluşturabilirsiniz/diagnostic Ayarlar.
Bicep'te tanılama ayarları oluştururken, tanılama ayarının kapsamını uygulamanız gerekir. Tanılama ayarı yönetim, abonelik veya kaynak grubu düzeyinde uygulanabilir. Bu kaynağın kapsamını ayarlamak için bu kaynak üzerindeki kapsam özelliğini kullanın.
Aşağıdaki örneği inceleyin:
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
}
}
]
}
}
Yukarıdaki örnekte App Service planı için bir tanılama ayarı oluşturacak ve bu tanılamaları Log Analytics'e göndereceksiniz. scope
App Service planınızı tanılama ayarınızın kapsamı olarak tanımlamak için özelliğini, tanılama günlüklerini göndermek üzere Log Analytics çalışma alanını tanımlamak için özelliğini kullanabilirsinizworkspaceId
. Tanılama ayarlarını Event Hubs ve Azure Depolama Hesaplarına da aktarabilirsiniz.
Günlük türleri kaynaklar arasında farklılık gösterir, bu nedenle dışarı aktarmak istediğiniz günlüklerin kullandığınız kaynak için geçerli olduğundan emin olun.
Etkinlik günlüğü tanılama ayarları
Azure etkinlik günlüğünü dışarı aktarmak üzere tanılama ayarlarını yapılandırmak üzere Bicep'i kullanmak için abonelik kapsamında bir tanılama ayarı kaynağı dağıtın.
Aşağıdaki örnekte birkaç etkinlik günlüğü türünün Log Analytics çalışma alanına nasıl dışarı aktarılası gösterilmektedir:
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
}
]
}
}
Uyarılar
Uyarılar, Azure İzleyici'de verileri izleyerek Azure altyapınızda ve uygulamalarınızda sorunlar bulunduğunda sizi proaktif olarak bilgilendirir. Bicep kodunuz içinde izleme ve uyarı yapılandırmanızı yapılandırarak, Azure'da sağladığınız altyapıyla birlikte bu uyarıların oluşturulmasını otomatikleştirebilirsiniz.
Azure'da uyarıların nasıl çalıştığı hakkında daha fazla bilgi için bkz . Microsoft Azure'da uyarılara genel bakış.
Aşağıdaki bölümlerde, Bicep kodunu kullanarak farklı uyarı türlerini nasıl yapılandırabileceğiniz gösterilmektedir.
Eylem grupları
Uyarılar tetiklendiğinde bildirim almak için bir eylem grubu oluşturmanız gerekir. Eylem grubu, Azure aboneliğinin sahibi tarafından tanımlanan bildirim tercihleri koleksiyonudur. Eylem grupları, kullanıcılara bir uyarının tetiklendiğini bildirmek veya uyarılara otomatik yanıtlar tetiklemek için kullanılır.
Bicep'te eylem grupları oluşturmak için Microsoft.Analizler türünü kullanabilirsiniz/actionGroups. Örnek aşağıda verilmiştir:
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
}
]
}
}
Yukarıdaki örnek, bir e-posta adresine uyarı gönderen bir eylem grubu oluşturur, ancak Event Hubs, Azure İşlevleri, Logic Apps ve daha fazlasına uyarı gönderen eylem grupları da tanımlayabilirsiniz.
Uyarı işleme kuralları
Uyarı işleme kuralları (daha önce eylem kuralları olarak adlandırılır), tetiklenen uyarılarda işleme uygulamanıza olanak sağlar. Microsoft.AlertsManagement/actionRules türünü kullanarak Bicep'te uyarı işleme kuralları oluşturabilirsiniz.
Her uyarı işleme kuralının kapsamı vardır. Bu kapsam bir veya daha fazla belirli kaynağın, belirli bir kaynak grubunun veya Azure aboneliğinizin tamamının listesi olabilir. Bicep'te uyarı işleme kuralları tanımladığınızda, kapsam özelliğinde bu kaynakları uyarı işleme kuralı için hedefleyen kaynak kimliklerinin listesini tanımlarsınız.
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
]
}
}
Yukarıdaki örnekte Azure MonitorService
Backup Vault'taki uyarı işleme kuralı tanımlanmıştır ve bu kural mevcut eylem grubuna uygulanır. Bu kural, eylem grubuna yönelik uyarıları tetikler.
Günlük uyarı kuralları
Günlük uyarıları otomatik olarak bir Log Analytics sorgusu çalıştırır. Kaynak günlüklerini tanımladığınız bir aralıkta değerlendirmek için kullanılan sorgu, sonuçların belirttiğiniz bazı ölçütleri karşılayıp karşılamadığını belirler ve ardından bir uyarı tetikler.
Microsoft.Analizler türünü kullanarak Bicep'te günlük uyarısı kuralları oluşturabilirsiniz/scheduledQueryRules.
Ölçüm uyarı kuralları
Ölçüm uyarıları, ölçümlerinizden biri tanımlı bir eşiği aştığında sizi bilgilendirir. Microsoft.Analizler türünü kullanarak Bicep kodunuzda bir ölçüm uyarısı kuralı tanımlayabilirsiniz/metricAlerts.
Etkinlik günlüğü uyarıları
Azure etkinlik günlüğü, Azure'da abonelik düzeyindeki olaylarla ilgili içgörüler sağlayan bir platform günlüğüdür. Bu, Azure'daki bir kaynağın ne zaman değiştirildiği gibi bilgileri içerir.
Etkinlik günlüğü uyarıları, uyarıda belirtilen koşullarla eşleşen yeni bir etkinlik günlüğü olayı oluştuğunda etkinleştirilen uyarılardır.
Özelliğini Microsoft.Analizler türünde kullanabilirsiniz scope
/activityLogAlerts, ön ek olarak kaynak kimliklerini kullanarak belirli bir kaynakta veya kaynak listesinde etkinlik günlüğü uyarıları oluşturmak için kullanılır.
Uyarı kuralı koşullarınızı özelliği içinde condition
tanımlarsınız ve ardından uyarı grubunu dizisini kullanarak actionGroup
bu uyarıları tetikleecek şekilde yapılandırabilirsiniz. Burada, gereksinimlerinize bağlı olarak etkinlik günlüğü uyarıları göndermek için tek veya birden çok eylem grubu geçirebilirsiniz.
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
]
}
}
Kaynak durumu uyarıları
Azure Kaynak Durumu, Azure kaynaklarınızın geçerli ve geçmiş sistem durumu hakkında sizi bilgilendirmeye devam eder. Bicep kullanarak kaynak durumu uyarılarınızı oluşturarak bu uyarıları toplu olarak oluşturabilir ve özelleştirebilirsiniz.
Bicep'te Microsoft.Analizler türüyle kaynak durumu uyarıları oluşturabilirsiniz/activityLogAlerts.
Kaynak durumu uyarıları abonelik, kaynak grubu veya tek bir kaynak düzeyindeki olayları izlemek için yapılandırılabilir.
Hizmet durumu uyarılarını bildiren bir kaynak durumu uyarısı oluşturduğunuz aşağıdaki örneği göz önünde bulundurun. Uyarı abonelik düzeyinde (özelliği kullanılarak scope
) uygulanır ve mevcut bir eylem grubuna uyarılar gönderir:
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
}
]
}
}
}
Akıllı algılama uyarıları
Akıllı algılama uyarıları, web uygulamanızdaki olası performans sorunları ve hata anomalileri konusunda sizi uyarır. Microsoft.AlertsManagement/smartDetectorAlertRules türünü kullanarak Bicep'te akıllı algılama uyarıları oluşturabilirsiniz.
Panolar
Bicep'te Microsoft.Portal/panolar kaynak türünü kullanarak portal panoları oluşturabilirsiniz.
Kodla pano oluşturma hakkında daha fazla bilgi için bkz . Program aracılığıyla Azure Panosu oluşturma.
Otomatik ölçeklendirme kuralları
Otomatik ölçeklendirme ayarı oluşturmak için bunları Microsoft.Analizler kaynak türünü kullanarak tanımlarsınız/autoscale Ayarlar.
Otomatik ölçeklendirme ayarını uygulamak istediğiniz kaynağı hedeflemek için, ayarın eklenmesi gereken kaynağın hedef kaynak tanımlayıcısını sağlamanız gerekir.
Bu örnekte App Service planı için 10 dakikalık bir zaman aralığındaki ortalama CPU yüzdesine göre ölçek genişletme koşulu. App Service planı 10 dakika boyunca ortalama CPU tüketiminin %70'ini aşarsa, otomatik ölçeklendirme altyapısı bir örnek ekleyerek planın ölçeğini genişletebilir.
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
}
}
Not
Otomatik ölçeklendirme kurallarını tanımlarken, otomatik ölçeklendirmeye çalışırken karşılaşılan sorunlardan kaçınmak için en iyi yöntemleri göz önünde bulundurun( örneğin, dokunma). Daha fazla bilgi için, Otomatik Ölçeklendirme için en iyi yöntemlerle ilgili aşağıdaki belgelere bakın.
İlgili kaynaklar
- Kaynak belgeleri
- Microsoft.Operational Analizler/workspaces
- Microsoft. Analizler/bileşenler
- Microsoft. Analizler/tanılama Ayarlar
- Microsoft. Analizler/actionGroups
- Microsoft. Analizler/scheduledQueryRules
- Microsoft. Analizler/metricAlerts
- Microsoft.Portal/panolar
- Microsoft. Analizler/activityLogAlerts
- Microsoft.AlertsManagement/smartDetectorAlertRules.
- Microsoft. Analizler/otomatik ölçeklendirme Ayarlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin