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:

  1. Nel menu Monitoraggio selezionare Regole di raccolta dati.

  2. Selezionare Crea per creare una nuova regola di raccolta dati e le relative associazioni.

    Screenshot che mostra il pulsante Crea nella schermata Regole di raccolta dati.

  3. 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.

    Screenshot che mostra la scheda Informazioni di base della schermata Regola raccolta dati.

  4. Nella scheda Risorse :

    1. 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.

    2. Selezionare Abilitare gli endpoint di raccolta dei dati.

    3. 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.

    Screenshot che mostra la scheda Risorse della schermata Regola raccolta dati.

  5. Nella scheda Raccogli e recapita selezionare Aggiungi origine dati per aggiungere un'origine dati e impostare una destinazione.

  6. Selezionare Log IIS.

    Screenshot che mostra il modulo portale di Azure per selezionare i contatori delle prestazioni di base in una regola di raccolta dati.

  7. Specificare un modello di file per identificare la directory in cui si trovano i file di log.

  8. Nella scheda Destinazione aggiungere una destinazione per l'origine dati.

    Screenshot che mostra il modulo portale di Azure per aggiungere un'origine dati in una regola di raccolta dati.

  9. Selezionare Rivedi e crea per esaminare i dettagli della regola di raccolta dati e l'associazione con il set di macchine virtuali.

  10. 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.

Screenshot di un log IIS che mostra il timestamp.

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.

Screenshot dei file di log IIS nel computer agente.

Verificare che i log IIS siano formattati in W3C

Aprire Gestione IIS e verificare che i log vengano scritti in formato W3C.

Screenshot della finestra di dialogo di configurazione della registrazione IIS nel computer agente.

Aprire il file di log IIS nel computer agente per verificare che i log siano in formato W3C.

Screenshot di un log IIS che mostra l'intestazione , che specifica che il file è 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: