> 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/it/knowledge-base/how-to-articles/send-devolutions-server-logs-to-azure-log-analytics.md).

# Inviare i log di Devolutions Server ad Azure Log Analytics

Questa guida fornisce le istruzioni per creare e configurare tutti i componenti necessari per inviare i log di Devolutions Server ad Azure Log Analytics.

{% hint style="info" %}
Devolutions Server inoltra ad Azure Log Analytics solo i log di connessione **Attività** e **Amministrazione**, non tutti i tipi di log. Se ha requisiti di audit, verifichi che questo sottoinsieme copra le sue esigenze prima di affidarvisi come unica traccia di audit.
{% endhint %}

### Creare una nuova registrazione dell'app

1. Apra il portale di Azure e vada a ***App Registrations***.
2. Clicchi su ***New Registration***.
3. Assegni un nome all'app e clicchi su ***Register*** (non è necessario alcun Redirect URL).
4. In ***Supported account types***, selezioni ***Accounts in this organizational directory only***.

### Recuperare il client ID e il tenant ID

Dopo la registrazione, individui il ***Client ID*** e il ***Tenant ID*** nella sezione ***Overview***. Saranno necessari in seguito.

### Creare un client secret

1. Vada a ***Certificates & secrets***.
2. Clicchi su ***New client secret*** per creare un secret.
3. Salvi il valore del secret in modo sicuro, poiché sarà utilizzato successivamente in Devolutions Server.
4. Una volta scaduto il secret, dovrà rinnovarlo e aggiornarlo in Devolutions Server; in caso contrario, l'acquisizione dei log si interromperà.

### Configurare un Data Collection Endpoint (DCE)

Crei un Data Collection Endpoint (DCE) in Azure per ricevere le richieste da Devolutions Server.

{% hint style="info" %}
In Devolutions Server, questo corrisponde al campo ***Azure Endpoint***.
{% endhint %}

### Creare una tabella di Azure Log Analytics

Creare la tabella a partire dal flusso di dati di esempio generico di Microsoft genererà colonne piatte che non corrispondono a questa struttura e ogni campo oltre `ReportType` e `MachineName` risulterà vuoto. Crei invece la tabella manualmente con lo schema riportato di seguito. Crei la tabella con le seguenti colonne (tutte `string` salvo diversa indicazione):

| Colonna            | 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   |

### Recuperare l'immutable ID e il nome dello stream

Una volta creata la tabella di ***Log analytics***, individui l'***Immutable ID*** e lo ***Stream Name*** per lo streaming dei log.

### Configurare la trasformazione DCR

La trasformazione della Data Collection Rule (`transformKql`) è ciò che mappa il JSON CLEF in ingresso sullo schema della tabella indicato sopra. Senza di essa, i campi non verranno popolati anche se la tabella e le autorizzazioni sono per il resto corrette. Imposti la trasformazione su:

```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)
```

### **Assegnare le autorizzazioni alla Data Collection Rule (DCR)**

1. Dalla DCR in Azure, vada a ***Access Control (IAM)*** – ***Add role assignment***.
2. Selezioni ***Monitoring Metrics Publisher***, poi ***Next***.
3. Selezioni ***User, group, or service principal*** e clicchi su ***Select members***.
4. Clicchi sull'applicazione creata durante la registrazione. Clicchi su ***Review + assign*** per assicurarsi che tutto sia corretto prima di salvare.

{% hint style="info" %}
Consulti la [documentazione 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) per maggiori dettagli sulla Data Collection Rule (DCR).
{% endhint %}

### Testare e attivare il logging

Clicchi su ***Test Connection*** per verificare le sue credenziali, quindi generi un'attività di connessione in Devolutions Server e confermi che la riga corrispondente compaia in Log Analytics con i relativi campi popolati.

{% hint style="warning" %}
***Test Connection*** convalida solo le credenziali utilizzate per raggiungere l'endpoint, non invia una voce di log effettiva. Un risultato verde conferma la connettività, non che l'acquisizione o la trasformazione siano configurate correttamente. Verifichi sempre in seguito con un evento reale.
{% endhint %}

### Configurazione di Devolutions Server

1. Apra il servizio web di Devolutions Server.
2. Vada a ***Administration - Server settings - Logging***.
3. Inserisca le informazioni.

![](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/it/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.
