Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Molte applicazioni e servizi in una macchina virtuale registreranno informazioni in file di testo anziché servizi di registrazione standard, ad esempio registro eventi di Windows o Syslog. È possibile raccogliere log di testo personalizzati dalle macchine virtuali usando una regola di raccolta dati (DCR) con un'origine dati log di testo personalizzata .
Altri dettagli sulla creazione di regole di raccolta dati sono disponibili in Raccogliere dati dal client di macchina virtuale con Monitoraggio di Azure. Questo articolo fornisce dettagli aggiuntivi per il tipo di origine dati Log di testo personalizzati.
Annotazioni
Per usare direttamente la definizione DCR o distribuire con altri metodi, ad esempio i modelli ARM, consulta gli esempi di regole di raccolta dati in Monitoraggio di Azure.
Prerequisiti
Oltre ai prerequisiti elencati in Raccogliere dati dal client di macchine virtuali con Monitoraggio di Azure, è necessaria una tabella personalizzata in un'area di lavoro Log Analytics per ricevere i dati. Per informazioni dettagliate sui requisiti di questa tabella, vedere la tabella dell'area di lavoro Log Analytics . Si noti che Aarch64 non è supportato.
Configurare l'origine dati del file di testo personalizzata
Creare la DCR usando il processo in Raccogliere dati dal client di macchina virtuale con Monitoraggio di Azure. Nella scheda Raccogli e recapita del DCR, selezionare Log di testo personalizzati dall'elenco a discesa Tipo di origine dati.
Le opzioni disponibili nella configurazione Log di testo personalizzati sono descritte nella tabella seguente.
Impostazione | Descrizione |
---|---|
Criterio di file | Identifica il percorso e il nome di file di log nel disco locale. Usare un carattere jolly per nomi di file che variano, ad esempio quando viene creato un nuovo file ogni giorno con un nuovo nome. È possibile immettere più pattern di file separati da virgole. Esempi: - C:\Logs\MyLog.txt - C:\Logs\MyLog*.txt - C:\App01\AppLog.txt, C:\App02\AppLog.txt - /var/mylog.log - /var/mylog*.log |
Nome della tabella | Nome della tabella di destinazione nell'area di lavoro Log Analytics. Questa tabella deve già esistere. |
Delimitatore di record | Indica il delimitatore tra le voci di log. TimeStamp è l'unico valore consentito corrente. Cerca una data nel formato specificato in timeFormat per identificare l'inizio di un nuovo record. Se non viene trovata alcuna data nel formato specificato, viene utilizzata la fine della riga. Per altri dettagli, vedere Formati ora. |
Formato del timestamp | Formato ora usato nel file di log, come descritto in Formati ora riportati di seguito. |
Trasformare | Trasformazione in fase di inserimento per filtrare i record o per formattare i dati in ingresso per la tabella di destinazione. Usare source per lasciare invariati i dati in ingresso e inviati alla RawData colonna. Per un esempio di utilizzo di una trasformazione, vedere File di log delimitati . |
Aggiungere destinazioni
I log di testo personalizzati possono essere inviati solo a un'area di lavoro Log Analytics in cui è archiviata nella tabella personalizzata creata. Aggiungere una destinazione di tipo Log di Monitoraggio di Azure e selezionare un'area di lavoro Log Analytics. È possibile aggiungere una singola area di lavoro a un record di dominio per un'origine dati di log di testo personalizzata. Se si hanno bisogno di più destinazioni, creare più DCR. Tenere presente, tuttavia, che invierà dati duplicati a ognuno di essi, con un costo aggiuntivo.
Formati di ora
Nella tabella seguente vengono descritti i formati di ora supportati nell'impostazione timeFormat
del DCR. Se nella voce di log viene inclusa un'ora con il formato specificato, verrà usata per identificare una nuova voce di log. Se non viene trovata alcuna data nel formato specificato, la fine della riga viene utilizzata come delimitatore. Per altre informazioni sull'uso di questa impostazione, vedere File di log su più righe .
Formato orario | Esempio |
---|---|
ISO 8601 1 |
2024-10-29T18:28:34Z |
yyyy-MM-ddTHH:mm:ssk |
2024-10-29T18:28:34Z 2024-10-29T18:28:34+01:11 |
YYYY-MM-DD HH:MM:SS |
2024-10-29 18:28:34 |
M/D/YYYY HH:MM:SS AM/PM |
10/29/2024 06:28:34 PM |
Mon DD, YYYY HH:MM:SS |
29 ottobre 2024 18:28:34 |
yyMMdd HH:mm:ss |
241029 18:28:34 |
ddMMyy HH:mm:ss |
291024 18:28:34 |
MMM d HH:mm:ss |
29 ottobre 18:28:34 |
dd/MMM/yyyy:HH:mm:ss zzz |
14 ottobre/2024:18:28:34 -00 |
1 Il timestamp ISO 8601 con precisione frazionaria/sottosecondo decimale non è supportato.
Requisiti e procedure consigliate per file di testo
Il file raccolto da Monitoraggio di Azure deve soddisfare i requisiti seguenti:
- Il file deve essere archiviato nell'unità locale del computer agente nella directory monitorata.
- Il file deve usare la codifica ASCII o UTF-8. Non sono supportati altri formati, ad esempio UTF-16.
- I nuovi record devono essere aggiunti alla fine del file e non sovrascrivere i record precedenti. La sovrascrittura causerà la perdita di dati.
Di seguito è riportato un esempio di un tipico file di testo personalizzato che può essere raccolto da Monitoraggio di Azure. Anche se ogni riga inizia con una data, questa operazione non è necessaria perché la fine della riga verrà usata per identificare ogni voce se non viene trovata alcuna data.
2024-06-21 19:17:34,1423,Error,Sales,Unable to connect to pricing service.
2024-06-21 19:18:23,1420,Information,Sales,Pricing service connection established.
2024-06-21 21:45:13,2011,Warning,Procurement,Module failed and was restarted.
2024-06-21 23:53:31,4100,Information,Data,Nightly backup complete.
Attenersi alle raccomandazioni seguenti per assicurarsi che non si verifichino perdite di dati o problemi di prestazioni:
- Non prendere di mira più di 10 cartelle con i file di log. Il polling di troppe directory comporta prestazioni scarse.
- Pulire continuamente i file di log nella directory monitorata. Il rilevamento di molti file di log può aumentare l'utilizzo della CPU e della memoria dell'agente. Attendere almeno due giorni per consentire l'elaborazione di tutti i log.
- Non rinominare un file che corrisponde al modello di analisi dei file con un altro nome che corrisponde anche al modello di analisi dei file. Ciò potrebbe causare l’inserimento di dati duplicati.
- Non rinominare o copiare file di log di grandi dimensioni che corrispondono al modello di analisi dei file nella directory monitorata. Se necessario, non superare i 50 MB al minuto.
Tabella dell'area di lavoro Log Analytics
Ogni voce nel file di log viene raccolta in tempo reale durante la sua creazione e inviata alla tabella specificata in un'area di lavoro di Log Analytics. La tabella personalizzata nell'area di lavoro Log Analytics che riceverà i dati deve esistere prima di creare il DCR.
Nella tabella seguente vengono descritte le colonne obbligatorie e facoltative nella tabella dell'area di lavoro. La tabella può includere altre colonne, ma non verranno popolate a meno che non si analizzino i dati con una trasformazione come descritto in File di log delimitati.
colonna | TIPO | Obbligatorio? | Descrizione |
---|---|---|---|
TimeGenerated |
data e ora | Sì | Questa colonna contiene l'ora in cui il record è stato generato ed è necessario in tutte le tabelle. Questo valore verrà popolato automaticamente con l'ora in cui il record viene aggiunto all'area di lavoro Log Analytics. È possibile eseguire l'override di questo valore usando una trasformazione per impostare TimeGenerated su un valore dalla voce di log. |
RawData |
corda | Sì 1 | L'intera voce di log in una singola colonna. Se si desidera suddividere questi dati in più colonne prima dell'invio alla tabella, è possibile usare una trasformazione. |
Computer |
corda | NO | Se la tabella include questa colonna, verrà popolata con il nome del computer da cui è stata raccolta la voce di log. |
FilePath |
corda | NO | Se la tabella include questa colonna, verrà popolata con il percorso del file di log da cui è stata raccolta la voce di log. |
1 La tabella non deve includere una colonna se si usa una RawData
trasformazione per analizzare i dati in più colonne.
Quando vengono raccolte usando le impostazioni predefinite, i dati del file di log di esempio illustrato in precedenza vengono visualizzati come segue quando vengono recuperati con una query di log.
Creare una tabella personalizzata
Se la tabella di destinazione non esiste già, è necessario crearla prima di creare il DCR. Vedere Creare una tabella personalizzata per metodi diversi per creare una tabella.
Ad esempio, è possibile usare lo script di PowerShell seguente per creare una tabella personalizzata per ricevere i dati da un log di testo personalizzato. In questo esempio vengono aggiunte anche le colonne facoltative.
$tableParams = @'
{
"properties": {
"schema": {
"name": "{TableName}_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "DateTime"
},
{
"name": "Computer",
"type": "string"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "RawData",
"type": "string"
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
File di log su più righe
Alcuni file di log possono contenere voci che si estendono su più righe. Se ogni voce di log inizia con una data, questa data può essere usata come delimitatore per definire ogni voce di log. In questo caso, le righe aggiuntive verranno unite insieme nella RawData
colonna .
Ad esempio, il file di testo nell'esempio precedente potrebbe essere formattato come segue:
2024-06-21 19:17:34,1423,Error,Sales,
Unable to connect to pricing service.
2024-06-21 19:18:23,1420,Information,Sales,
Pricing service connection established.
2024-06-21 21:45:13,2011,Warning,Procurement,
Module failed and was restarted.
2024-06-21 23:53:31,4100,Information,Data,
Nightly backup complete.
Se il formato YYYY-MM-DD HH:MM:SS
timestamp è utilizzato nel DCR, allora i dati verrebbero raccolti nello stesso modo dell'esempio precedente. Le righe aggiuntive verranno incluse nella RawData
colonna . Se è stato usato un altro formato timestamp che non corrisponde alla data nella voce di log, ogni voce verrà raccolta come due record separati.
File di log delimitati
Molti file di log di testo hanno voci con colonne delimitate da un carattere, ad esempio una virgola. Anziché inviare l'intera voce alla RawData
colonna, è possibile analizzare i dati in colonne separate in modo che ognuno possa essere popolato nella tabella di destinazione. Usare una trasformazione con la funzione split per eseguire questa analisi.
Il file di testo di esempio illustrato sopra è delimitato da virgole e i campi possono essere descritti come: Time
, Code
Severity
, Module
, e Message
. Per analizzare questi dati in colonne separate, aggiungere ognuna delle colonne alla tabella di destinazione e aggiungere la trasformazione seguente a DCR.
Importante
Prima di aggiungere questa trasformazione al DCR, è necessario aggiungere queste colonne alla tabella di destinazione. È possibile modificare lo script di PowerShell precedente per includere le colonne aggiuntive al momento della creazione della tabella. In alternativa, usare il portale di Azure come descritto in Aggiungere o eliminare una colonna personalizzata per aggiungere le colonne a una tabella esistente.
I dettagli rilevanti della query di trasformazione includono quanto segue:
- La query restituisce le proprietà che corrispondono a un nome di colonna nella tabella di destinazione.
- In questo esempio la proprietà viene
Time
rinominata nel file di log in modo che questo valore venga usato perTimeGenerated
. Se non è stato specificato,TimeGenerated
verrà popolato con il tempo di inserimento. - Poiché
split
restituisce dati dinamici, è necessario usare funzioni cometostring
etoint
per convertire i dati nel tipo scalare corretto.
source | project d = split(RawData,",") | project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])
Il recupero di questi dati con una query di log restituirà i risultati seguenti.
Risoluzione dei problemi
Seguire questa procedura se non si stanno raccogliendo dati dal log di testo previsto.
- Verificare che i dati vengano scritti nel file di log da raccogliere.
- Verificare che il nome e il percorso del file di log corrispondano al pattern di file specificato.
- Verificare che lo schema della tabella di destinazione corrisponda al flusso in ingresso o che sia presente una trasformazione che converta il flusso in ingresso nello schema corretto.
- Vedere Verificare l'operazione per verificare se l'agente sia operativo e i dati vengano ricevuti.
Passaggi successivi
- Altre informazioni su agente di Monitoraggio di Azure.
- Altre informazioni su regole di raccolta dati.