You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Azure Service Bus队列消息获取生产者/消费者信息以识别未知服务?

识别Azure中未知的队列消息发送源

1. 开启队列诊断日志

不管用的是Azure Storage Queue还是Service Bus Queue,先把诊断日志打开:

  • Azure Storage Queue:找到对应存储账户的「诊断设置」,勾选QueueRead、QueueWrite、QueueDelete日志类别,将日志输出到Log Analytics工作区。
  • Azure Service Bus:进入Service Bus命名空间的「诊断设置」,勾选「OperationalLogs」和「MessagingLogs」,同样输出到Log Analytics。

这些日志会包含客户端IP、身份验证信息(如Azure AD主体、SAS令牌签名者),是定位来源的核心数据。

2. 用Log Analytics查询日志

日志同步到Log Analytics后,用Kusto语句筛选发送消息的操作:

Storage Queue 查询语句

StorageQueueLogs
| where OperationName == "PutMessage"
| project TimeGenerated, ClientIpAddress, Identity, AccountName, QueueName, RequestId
| sort by TimeGenerated desc

Service Bus 查询语句

ServiceBusMessagingLogs
| where OperationName == "SendMessage" or OperationName == "SendBatchMessages"
| project TimeGenerated, ClientIpAddress, Identity, NamespaceName, QueueName, RequestId
| sort by TimeGenerated desc

从结果里提取ClientIpAddress,在Azure Portal搜索「IP地址查找」,输入IP就能查到对应的Azure资源(比如VM、AKS节点、App Service),甚至外部IP归属。

如果日志里有Identity字段(如Azure AD应用ID),直接去Azure AD搜索该ID,找到对应的服务主体,就能关联到使用该身份发送消息的服务。

3. 排查队列访问权限

检查队列的权限配置,锁定拥有发送权限的实体:

  • Storage Queue:查看存储账户的「访问控制(IAM)」,以及共享访问签名(SAS)的使用记录,排除已知K8s服务使用的身份,剩余的就是可疑对象。
  • Service Bus:查询命名空间的「访问控制(IAM)」和「共享访问策略」,同样排除已知项,锁定未知的有权限实体。

4. 关联Azure资源流量日志

如果未知来源是Azure内部资源,开启对应资源的流量日志:

  • AKS集群:进入AKS的「监视」-「日志」,查询容器出站流量,寻找向队列端点发起请求的记录。
  • VM/App Service:开启VM的「网络流量日志」或App Service的「Web服务器日志」,排查向队列发送请求的条目。

5. 使用Azure Monitor预建工作簿

在Azure Monitor中搜索对应队列服务的预建工作簿,里面包含消息发送统计和来源分析,能快速定位异常发送源。


内容的提问来源于stack exchange,提问作者Francisco Perez Lefiman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:58:21