使用Bicep配置现有存储账户将日志及审核日志转发至事件中心
配置存储账户诊断日志转发至Event Hub(Bicep实现)
你查阅的Microsoft.Insights/diagnosticSettings Bicep模板是通用资源,完全适用于存储账户,文档里的Key Vault只是示例场景,Azure绝大多数支持诊断日志的资源都能通过这个模板配置日志转发。
完整配置示例
以下是针对现有存储账户,将所有日志(含审核类日志)转发到已存在Event Hub的Bicep代码:
param storageAccountName string param eventHubNamespaceName string param eventHubName string param diagnosticSettingName string = 'StorageLogsToEventHub' // 引用目标现有存储账户 resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' existing = { name: storageAccountName } // 引用已存在的Event Hub resource eventHub 'Microsoft.EventHub/namespaces/eventhubs@2024-01-01' existing = { name: '${eventHubNamespaceName}/${eventHubName}' } // 配置诊断日志转发规则 resource diagnosticSetting 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { name: diagnosticSettingName scope: storageAccount properties: { eventHubAuthorizationRuleId: eventHub.parent.id // 使用Event Hub命名空间的根授权规则(需具备Send权限) eventHubName: eventHubName logs: [ // 存储账户全量日志类别 { category: 'StorageRead', enabled: true } { category: 'StorageWrite', enabled: true } { category: 'StorageDelete', enabled: true } { category: 'AccountAdministrative', enabled: true } { category: 'BlobInventory', enabled: true } { category: 'BlobServices', enabled: true } { category: 'FileServices', enabled: true } { category: 'QueueServices', enabled: true } { category: 'TableServices', enabled: true } ] // 如需转发指标,可启用以下配置(可选) metrics: [ { category: 'Transaction', enabled: true } ] } }
核心注意点
scope字段必须绑定到目标存储账户的资源引用,确保诊断规则作用于正确的存储账户。eventHubAuthorizationRuleId需使用Event Hub命名空间的授权规则ID,推荐用命名空间根规则(需包含Send权限);若使用自定义规则,需提前配置好对应权限。- 日志类别可按需删减,存储账户所有可用日志类别可在Azure门户的「诊断设置」页面查看。
- 部署前需确认你拥有存储账户的
Microsoft.Insights/diagnosticSettings/write权限,以及Event Hub的访问权限。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

