Formato de solicitud para la API de consulta de registros de Azure Monitor

La API de consulta de registros le permite ejecutar consultas del lenguaje de consulta kusto (KQL) en un área de trabajo de Log Analytics a través de un punto de conexión REST público. Recupere o analice los datos de registro mediante programación para la automatización, los informes personalizados o la integración con otras herramientas.

En este artículo se muestra cómo formatear las solicitudes de GET y POST para el extremo de la API de consulta de registros, incluidos ejemplos directos de REST y los comandos equivalentes de CLI de Azure y los cmdlets de Azure PowerShell.

Para consultar el conjunto más amplio de API de Azure Monitor, consulte el índice de la API REST de Azure Monitor.

Formato de punto de conexión de consulta pública

El punto de conexión de la API de consulta de registros públicos tiene este formato:

https://api.loganalytics.azure.com/{apiVersion}/workspaces/{workspaceId}/query?[parameters]

  • apiVersion es la versión de la API de consulta pública. Utilice v1.
  • workspaceId es el GUID del área de trabajo de Log Analytics que se va a consultar.
  • [parameters] son valores de cadena de consulta como query, timespany workspaces.

Parámetros de consulta

Pasa estos parámetros en la cadena de consulta para las solicitudes GET o en el cuerpo JSON para las solicitudes POST.

Parámetro Obligatorio Descripción
query Consulta de KQL que se va a ejecutar.
timespan No Intervalo de tiempo de la consulta. Use una duración ISO 8601 (por ejemplo, PT12H durante 12 horas) o un par de inicio y finalización separados por / (por ejemplo, 2024-01-01/2024-01-02). Si se omite, la consulta se ejecuta en todos los datos disponibles.
workspaces No Identificadores de área de trabajo adicionales que se van a incluir en una consulta entre áreas de trabajo.

Formato de solicitud GET

En el caso GET de las solicitudes, incluya parámetros de solicitud en la cadena de consulta. Por ejemplo, para contar eventos AzureActivity por Category durante las 12 últimas horas, utilice la siguiente solicitud:

Use az rest para llamar directamente a la API de consulta de registros.

subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
workspaceId="myWorkspaceId"
query="AzureActivity | summarize count() by Category"
timespan="PT12H"
logsQueryApiEndpoint="https://api.loganalytics.io"
resourceId="$logsQueryApiEndpoint/v1/workspaces/$workspaceId/query"

az account set --subscription "$subscriptionId"

az rest \
  --method get \
  --uri "$resourceId?query=$query&timespan=$timespan" \
  --resource "$logsQueryApiEndpoint"

Como alternativa, CLI de Azure admite esta operación mediante el comando az monitor log-analytics query. Forma parte de la extensión log-analytics disponible con carácter general, que CLI de Azure instala automáticamente.

subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
workspaceId="myWorkspaceId"
query="AzureActivity | summarize count() by Category"
timespan="PT12H"

az account set --subscription "$subscriptionId"

az monitor log-analytics query \
  --workspace "$workspaceId" \
  --analytics-query "$query" \
  --timespan "$timespan"

Formato de solicitud POST

Para solicitudes POST, envíe los parámetros de la solicitud en el cuerpo en formato JSON.

  • El cuerpo de la solicitud debe ser JSON válido.
  • Incluya el Content-Type: application/json encabezado .
  • Coloque valores de solicitud como query, timespany workspaces en el cuerpo JSON.
  • Si especifica timespan en la cadena de consulta y en el cuerpo, el servicio usa la intersección de los dos valores.

Use az rest para llamar directamente a la API de consulta de registros.

subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
workspaceId="myWorkspaceId"
logsQueryApiEndpoint="https://api.loganalytics.io"
resourceId="$logsQueryApiEndpoint/v1/workspaces/$workspaceId/query"
payloadFile="./query-payload.json"

az account set --subscription "$subscriptionId"

az rest \
  --method post \
  --uri "$resourceId" \
  --resource "$logsQueryApiEndpoint" \
  --headers Content-Type=application/json \
  --body @"$payloadFile"

Archivo de carga (query-payload.json):

{
  "query": "AzureActivity | summarize count() by Category",
  "timespan": "PT12H"
}

Como alternativa, use el comando az monitor log-analytics query, que abstrae el formato de la solicitud HTTP y sirve para escenarios de consulta tanto de GET como de POST. Consulte la sección Formato de solicitud GET para obtener un ejemplo de comando.