如何使用 azure api 运行日志分析查询?
Posted
技术标签:
【中文标题】如何使用 azure api 运行日志分析查询?【英文标题】:How to run log analytics query using azure api? 【发布时间】:2020-12-25 16:38:32 【问题描述】:我一直在尝试使用 Azure API 运行日志分析查询,但它返回一些错误 “错误”: "message": "未提供有效身份验证", "code": "AuthorizationRequiredError", “correlationId”:“27301475d-cc29-4288-ae61-29e77d6d05cb”
这是我一直在尝试的请求
https://api.loganalytics.io/v1/workspaces/34567824-3432rewfsdewt435-3424jhh-dsa-/query?query=search in (ContainerLog) "search_data"|其中 TimeGenerated > datetime("2020-09-03")|项目LogEntry & Authorization=Bearer 0000000000000000000000000000
如果你们知道什么,请帮助我 谢谢
【问题讨论】:
如何获取代币? 查看此 url(dev.loganalytics.io) 以了解如何使用 Azure API 进行查询。它包含有关如何获取令牌以传递给 API 的信息。 dev.loganalytics.io/oms/documentation/1-Tutorials/1-Direct-API 这是我获得令牌的方式 "search in (ContainerLog) "singlemicro" | where TimeGenerated > datetime("2020-09-03") | project LogEntry" 我尝试使用执行此查询rest API,但它显示一些身份验证错误。您能解释一下如何获取身份验证密钥吗?还有一个示例代码谢谢@PeterBons 我认为您需要检查文档中的所有步骤。该消息指向配置中的错误。要获取令牌并使用 c# 调用 api,请查看我是如何做到的 here 【参考方案1】:当我们使用 Azure Log Analytics REST API 进行查询时,我们需要用户 Authorization=Bearer token
作为请求标头。更多详情请参考here。
例如
注册 Azure AD 应用程序
为 AD 应用程序配置 API 权限
授予 AAD 应用程序访问我们的 Log Analytics 工作区的权限。请将 Log Analytics Reader
角色分配给 AD 应用程序
获取访问令牌
POST /<your tenant id>/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type =client_credentials
&client_id=<>
&client_secret=<>
&resource=https://westus2.api.loganalytics.io
-
调用api
一个。 POST method
POST https://api.loganalytics.io/v1/workspaces/workspaceId/query
Authorization: Bearer access_token
Content-Type: application/json
"query": ""
b. Get method
GET https://api.loganalytics.io/v1/workspaces/workspaceId/query?query=query
Authorization: Bearer access_token
【讨论】:
以上是关于如何使用 azure api 运行日志分析查询?的主要内容,如果未能解决你的问题,请参考以下文章
针对事件(审核日志)查询 Azure Insights REST API 的速率限制策略
如何使用参数在 Azure Monitor Notebook 中选择日志分析工作区?
使用适用于 .NET 的 Azure 流分析 API 设置和运行分析作业