如何通过Azure Log Analytics查询合并两个工作区日志?
在Log Analytics查询中直接合并多工作区日志(Azure SDK for Python)
你可以直接在Kusto查询语句内完成多工作区日志的合并,不需要在Python程序中处理结果对象。核心是用Kusto的workspace()函数来引用外部工作区的表,修改你的查询语句即可实现。
正确的查询语法
把外部表的引用改为workspace("<外部工作区ID>").<表名>,再通过union合并,示例查询如下:
TableName // 当前工作区的表 | union workspace("<external_workspace_id>").ExteralTableName // 外部工作区的表
修改后的Python代码示例
from azure.monitor.query import LogsQueryClient from azure.identity import DefaultAzureCredential # 可替换为你实际使用的凭据方式 creds = DefaultAzureCredential() client = LogsQueryClient(creds) # 替换实际的外部工作区ID、表名 query = """ TableName | union workspace("xxx-xxx-xxx-xxx-xxx").ExteralTableName """ # 执行查询,传入当前工作区ID和时间范围 response = client.query_workspace("<current_workspace_id>", query, timespan="PT24H") # 示例:遍历输出结果 for table in response.tables: for row in table.rows: print(row)
关键说明
- 确保执行查询的标识同时拥有当前工作区和外部工作区的Log Analytics查询权限,你已满足该条件,无需额外配置
workspace()函数可接收工作区ID或名称,使用ID能避免名称重名导致的错误- 该方式是Log Analytics原生支持的Kusto语法,合并逻辑在服务端完成,返回的直接是合并后的结果集
内容的提问来源于stack exchange,提问作者LITzman
相关产品推荐
相关产品推荐

