Raccogliere log di IIS con l'agente di Monitoraggio di Azure
Internet Information Service (IIS) registra i dati nel disco locale dei computer Windows. Questo articolo illustra come raccogliere i log IIS dai computer monitorati con l'agente di Monitoraggio di Azure creando una regola di raccolta dati.
Prerequisiti
Per completare questa procedura, è necessario:
Area di lavoro Log Analytics in cui si hanno almeno i diritti di collaboratore.
Uno o due endpoint di raccolta dati, a seconda che la macchina virtuale e l'area di lavoro Log Analytics si trovino nella stessa area.
Per altre informazioni, vedere Come configurare gli endpoint di raccolta dati in base alla distribuzione.
Autorizzazioni per creare oggetti Regola raccolta dati nell'area di lavoro.
Una macchina virtuale, un set di scalabilità di macchine virtuali o un server locale abilitato per Arc che esegue IIS.
- Un file di log IIS in formato W3C deve essere archiviato nell'unità locale del computer in cui è in esecuzione l'agente di Monitoraggio di Azure.
- Ogni voce nel file di log deve essere delineata con una fine di riga.
- Il file di log non deve consentire la registrazione circolare, la rotazione dei log in cui il file viene sovrascritto con nuove voci o la ridenominazione in cui viene spostato un file e viene aperto un nuovo file con lo stesso nome.
Creare una regola di raccolta dati per raccogliere i log IIS
La regola di raccolta dati definisce:
- Quali file di log di origine l'agente di Monitoraggio di Azure analizza i nuovi eventi.
- Come Monitoraggio di Azure trasforma gli eventi durante l'inserimento.
- Area di lavoro Log Analytics di destinazione e tabella a cui Monitoraggio di Azure invia i dati.
È possibile, ad esempio, definire una regola di raccolta dati per inviare dati da più computer a più aree di lavoro Log Analytics, incluse aree di lavoro in un'area o un tenant diverso. Creare la regola di raccolta dati nella stessa area dell'area di lavoro Analisi.
Nota
Per inviare dati tra tenant, è prima necessario abilitare Azure Lighthouse.
Per creare la regola di raccolta dati nel portale di Azure:
Nel menu Monitoraggio selezionare Regole di raccolta dati.
Selezionare Crea per creare una nuova regola di raccolta dati e le relative associazioni.
Immettere un nome regola e specificare un endpoint sottoscrizione, gruppo di risorse, area, tipo di piattaforma e raccolta dati:
- In Area viene specificata la regione in cui verrà creata la regola di raccolta dati. Le macchine virtuali e le relative associazioni possono trovarsi in qualsiasi sottoscrizione o gruppo di risorse presente nel tenant.
- In Tipo di piattaforma viene specificato il tipo di risorse a cui può essere applicata questa regola. L'opzione Custom consente sia i tipi Windows che Linux.
- Endpoint raccolta dati specifica l'endpoint di raccolta dati usato per raccogliere dati. Questo endpoint di raccolta dati deve trovarsi nella stessa area dell'area di lavoro Log Analytics. Per altre informazioni, vedere Come configurare gli endpoint di raccolta dati in base alla distribuzione.
Nella scheda Risorse :
Selezionare + Aggiungi risorse e associare le risorse alla regola di raccolta dati. Le risorse possono essere macchine virtuali, set di scalabilità di macchine virtuali e Azure Arc per server. Il portale di Azure installa l'agente di Monitoraggio di Azure nelle risorse che non sono già installate.
Importante
Il portale abilita l'identità gestita assegnata dal sistema nelle risorse di destinazione, insieme alle identità assegnate dall'utente esistenti, se presenti. Per le applicazioni esistenti, a meno che non si specifichi l'identità assegnata dall'utente nella richiesta, per impostazione predefinita il computer usa l'identità assegnata dal sistema.
Selezionare Abilitare gli endpoint di raccolta dei dati.
Selezionare un endpoint di raccolta dati per ognuna delle macchine virtuali associate alla regola di raccolta dati.
Questo endpoint di raccolta dati invia i file di configurazione alla macchina virtuale e deve trovarsi nella stessa area della macchina virtuale. Per altre informazioni, vedere Come configurare gli endpoint di raccolta dati in base alla distribuzione.
Nella scheda Raccogli e recapita selezionare Aggiungi origine dati per aggiungere un'origine dati e impostare una destinazione.
Selezionare Log IIS.
Specificare un modello di file per identificare la directory in cui si trovano i file di log.
Nella scheda Destinazione aggiungere una destinazione per l'origine dati.
Selezionare Rivedi e crea per esaminare i dettagli della regola di raccolta dati e l'associazione con il set di macchine virtuali.
Selezionare Crea per creare la regola di raccolta dati.
Nota
L'invio dei dati alle destinazioni può richiedere fino a 5 minuti dopo la creazione della regola di raccolta dati.
Query di log di esempio
Contare le voci di log IIS in base all'URL per l'host www.contoso.com.
W3CIISLog | where csHost=="www.contoso.com" | summarize count() by csUriStem
Esaminare i byte totali ricevuti da ogni computer IIS.
W3CIISLog | summarize sum(csBytes) by Computer
Regola di avviso di esempio
Creare una regola di avviso per qualsiasi record con stato restituito pari a 500.
W3CIISLog | where scStatus==500 | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
Risoluzione dei problemi
Usare la procedura seguente per risolvere i problemi relativi alla raccolta di log IIS.
Controllare se sono stati ricevuti log IIS
Per iniziare, verificare se sono stati raccolti record per i log IIS eseguendo la query seguente in Log Analytics. Se la query non restituisce record, controllare le altre sezioni per individuare le possibili cause. Questa query cerca intere negli ultimi due giorni, ma è possibile modificare per un altro intervallo di tempo.
W3CIISLog
| where TimeGenerated > ago(48h)
| order by TimeGenerated desc
Verificare che l'agente invii heartbeat correttamente
Verificare che l'agente di Monitoraggio di Azure comunichi correttamente eseguendo la query seguente in Log Analytics per verificare se sono presenti record nella tabella Heartbeat.
Heartbeat
| where TimeGenerated > ago(24h)
| where Computer has "<computer name>"
| project TimeGenerated, Category, Version
| order by TimeGenerated desc
Verificare che i log IIS siano in corso di creazione
Esaminare i timestamp dei file di log e aprire la versione più recente per verificare che i timestamp più recenti siano presenti nei file di log. Il percorso predefinito per i file di log IIS è C:\inetpub\logs\LogFiles\W3SVC1.
Verificare di aver specificato il percorso del log corretto nella regola di raccolta dati
La regola di raccolta dati avrà una sezione simile alla seguente. L'elemento logDirectories
specifica il percorso del file di log da raccogliere dal computer agente. Controllare il computer agente per verificare che sia corretto.
"dataSources": [
{
"configuration": {
"logDirectories": ["C:\\scratch\\demo\\W3SVC1"]
},
"id": "myIisLogsDataSource",
"kind": "iisLog",
"streams": [{
"stream": "ONPREM_IIS_BLOB_V2"
}
],
"sendToChannels": ["gigl-dce-6a8e34db54bb4b6db22d99d86314eaee"]
}
]
Questa directory deve corrispondere al percorso dei log IIS nel computer dell'agente.
Verificare che i log IIS siano formattati in W3C
Aprire Gestione IIS e verificare che i log vengano scritti in formato W3C.
Aprire il file di log IIS nel computer agente per verificare che i log siano in formato W3C.
Nota
Il campo X-Forwarded-For personalizzato non è attualmente supportato. Se si tratta di un campo critico, è possibile raccogliere i log iis come log di testo personalizzato.
Passaggi successivi
Altre informazioni su:
- Agente di Monitoraggio di Azure.
- Regole di raccolta dati.
- Procedure consigliate per la gestione dei costi in Monitoraggio di Azure.