> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/server/es/knowledge-base/how-to-articles/send-devolutions-server-logs-to-azure-log-analytics.md).

# Enviar registros de Devolutions Server a Azure Log Analytics

Esta guía proporciona instrucciones para crear y configurar todos los componentes necesarios para enviar los logs de Devolutions Server a Azure Log Analytics.

{% hint style="info" %}
Devolutions Server solo reenvía los logs de conexión de **Actividad** y **Administración** a Azure Log Analytics, no todos los tipos de logs. Si tiene requisitos de auditoría, confirme que este subconjunto cubre sus necesidades antes de depender de él como su único registro de auditoría.
{% endhint %}

### Crear un nuevo registro de aplicación

1. Abra el portal de Azure y navegue a ***App Registrations***.
2. Haga clic en ***New Registration***.
3. Asigne un nombre a su aplicación y haga clic en ***Register*** (no es necesaria ninguna Redirect URL).
4. En ***Supported account types***, seleccione ***Accounts in this organizational directory only***.

### Obtener el client ID y el tenant ID

Después del registro, localice el ***Client ID*** y el ***Tenant ID*** en la sección ***Overview***. Serán necesarios más adelante.

### Crear un client secret

1. Navegue a ***Certificates & secrets***.
2. Haga clic en ***New client secret*** para crear un secreto.
3. Guarde el valor del secreto de forma segura, ya que se utilizará más adelante en Devolutions Server.
4. Una vez que el secreto caduque, debe renovarlo y actualizarlo en Devolutions Server; de lo contrario, la ingesta de logs se detendrá.

### Configurar un Data Collection Endpoint (DCE)

Cree un Data Collection Endpoint (DCE) en Azure para recibir las solicitudes de Devolutions Server.

{% hint style="info" %}
En Devolutions Server, esto corresponde al campo ***Azure Endpoint***.
{% endhint %}

### Crear una tabla de Azure Log Analytics

Crear la tabla a partir del flujo genérico de datos de muestra de Microsoft generará columnas planas que no coinciden con esta estructura, y todos los campos más allá de `ReportType` y `MachineName` llegarán vacíos. En su lugar, cree la tabla manualmente con el esquema siguiente. Cree la tabla con las siguientes columnas (todas de tipo `string` salvo que se indique lo contrario):

| Columna            | Tipo     |
| ------------------ | -------- |
| TimeGenerated      | datetime |
| ReportType         | string   |
| MachineName        | string   |
| User               | string   |
| ConnectionName     | string   |
| ConnectionId       | string   |
| VaultName          | string   |
| VaultId            | string   |
| Message            | string   |
| LogDate            | string   |
| ConnectionType     | string   |
| ConnectionUsername | string   |
| Machine            | string   |
| Ticket             | string   |
| ActiveTime         | string   |
| OnOpenComment      | string   |
| OnCloseComment     | string   |

### Obtener el immutable ID y el nombre del stream

Una vez creada la tabla de ***Log analytics***, localice el ***Immutable ID*** y el ***Stream Name*** para el streaming de logs.

### Configurar la transformación del DCR

La transformación de la Data Collection Rule (`transformKql`) es la que asigna el JSON CLEF entrante al esquema de tabla anterior. Sin ella, los campos no se rellenarán aunque la tabla y los permisos sean correctos por lo demás. Establezca la transformación en:

```kql
| extend TimeGenerated = todatetime(['@t'])
| extend p = parse_json(tostring(Properties))
| project TimeGenerated, ReportType, MachineName,
    User = tostring(p.User),
    ConnectionName = tostring(p.ConnectionName),
    ConnectionId = tostring(p.ConnectionId),
    VaultName = tostring(p.VaultName),
    VaultId = tostring(p.VaultId),
    Message = tostring(p.Message),
    LogDate = tostring(p.LogDate),
    ConnectionType = tostring(p.ConnectionType),
    ConnectionUsername = tostring(p.ConnectionUsername),
    Machine = tostring(p.Machine),
    Ticket = tostring(p['Ticket#']),
    ActiveTime = tostring(p.ActiveTime),
    OnOpenComment = tostring(p.OnOpenComment),
    OnCloseComment = tostring(p.OnCloseComment)
```

### **Asignar permisos a la Data Collection Rule (DCR)**

1. Desde el DCR en Azure, vaya a ***Access Control (IAM)*** – ***Add role assignment***.
2. Seleccione ***Monitoring Metrics Publisher*** y luego ***Next***.
3. Marque ***User, group, or service principal*** y haga clic en ***Select members***.
4. Haga clic en la aplicación creada durante el registro. Haga clic en ***Review + assign*** para asegurarse de que todo está en orden antes de guardar.

{% hint style="info" %}
Consulte la [documentación de Microsoft](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/tutorial-logs-ingestion-api?utm_source=chatgpt.com\&tabs=dcr#assign-permissions-to-a-dcr) para obtener más detalles sobre la Data Collection Rule (DCR).
{% endhint %}

### Probar y activar el registro de logs

Haga clic en ***Test Connection*** para verificar sus credenciales, luego genere una actividad de conexión en Devolutions Server y confirme que la fila correspondiente aparece en Log Analytics con sus campos rellenados.

{% hint style="warning" %}
***Test Connection*** solo valida las credenciales utilizadas para llegar al endpoint, no envía una entrada de log real. Un resultado en verde confirma la conectividad, no que la ingesta o la transformación estén configuradas correctamente. Verifique siempre después con un evento real.
{% endhint %}

### Configuración de Devolutions Server

1. Abra el servicio web de Devolutions Server.
2. Vaya a ***Administration - Server settings - Logging***.
3. Introduzca la información.

![](https://cdnweb.devolutions.net/docs/DVLS6035_2025_3.png)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/server/es/knowledge-base/how-to-articles/send-devolutions-server-logs-to-azure-log-analytics.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
