Log di diagnostica del Gateway applicativo per contenitori

Informazioni su come risolvere i problemi comuni nel Gateway applicativo per contenitori.

È possibile monitorare le risorse del Gateway applicativo per contenitori di Azure nei modi seguenti:

  • Log: i log consentono di salvare o usare i dati delle prestazioni, di accesso e di altre tipologie da una risorsa a fini di monitoraggio.

  • Metriche: il Gateway applicativo per contenitori include diverse metriche che consentono di verificare che il sistema funzioni come previsto.

Log di diagnostica

In Azure, è possibile usare diversi tipi di log per gestire e risolvere i problemi del Gateway applicativo per contenitori. Alcuni di questi log sono accessibili tramite il portale. Tutti i log possono essere estratti dall'archiviazione BLOB di Azure e visualizzati in strumenti diversi, ad esempio i log di Monitoraggio di Azure, Excel e Power BI. L'elenco seguente contiene altre informazioni sui diversi tipi di log:

  • Log attività: è possibile usare i log attività di Azure, chiamati in precedenza log operativi e log di controllo, per visualizzare tutte le operazioni inviate alla sottoscrizione di Azure e il relativo stato. Le voci dei log attività vengono raccolte per impostazione predefinita e possono essere visualizzate nel portale di Azure.
  • Log di accesso: è possibile usare questo log per visualizzare i modelli di accesso al Gateway applicativo per contenitori e analizzare informazioni importanti. I dati includono indirizzo IP del chiamante, URL richiesto, latenza della risposta, codice restituito, byte in ingresso e in uscita. Un log di accesso viene raccolto ogni 60 secondi. I dati possono essere archiviati in un account di archiviazione specificato al momento dell'abilitazione della registrazione.
  • Log del firewall: è possibile usare il log del firewall per visualizzare le richieste registrate tramite la modalità di rilevamento o prevenzione di una distribuzione di Gateway applicativo per contenitori configurato con un web application firewall. I log del firewall vengono raccolti ogni 60 secondi.

Configurare i log di accesso

Registrazione attività viene abilitata automaticamente per tutte le risorse di Resource Manager. È necessario abilitare la registrazione degli accessi per iniziare a raccogliere i dati disponibili tramite tali log. Per abilitare la registrazione, è possibile configurare le impostazioni di diagnostica in Monitoraggio di Azure.

Usare la procedura seguente per abilitare tutte le registrazioni in un account di archiviazione per il Gateway applicativo per contenitori tramite il portale di Azure. È necessario disporre di un account di archiviazione disponibile nella stessa area del Gateway applicativo per contenitori.

  1. Accedere al portale di Azure con il proprio account Azure.

  2. In Cerca risorse, servizio e documentazione, digitare Gateway applicativo per contenitori e selezionare il nome del Gateway applicativo per contenitori.

  3. Selezionare Impostazioni di diagnostica in Monitoraggio.

  4. Selezionare Aggiungi impostazione di diagnostica.

  5. Immettere un Nome per l'impostazione di diagnostica (ad esempio agfc-logs), scegliere i log e le metriche da salvare e scegliere una destinazione, ad esempio Archivio in un account di archiviazione. Per salvare tutti i log, selezionare allLogs e AllMetrics.

  6. Per salvare le impostazioni, fare clic su Save (Salva). Vedere l'esempio seguente:

    Configurare log di diagnostica

Note

Dopo l'abilitazione iniziale dei log di diagnostica, potrebbero essere necessarie fino a un'ora prima che i log siano disponibili nella destinazione selezionata.

Per altre informazioni ed esercitazioni sulla distribuzione di Monitoraggio di Azure, vedere Impostazioni di diagnostica in Monitoraggio di Azure.

Formato del log di accesso

Ogni voce del log di accesso nel Gateway applicativo per contenitori contiene le informazioni seguenti.

valore Descrizione
backendHost Indirizzo della destinazione back-end con porta accodata. Ad esempio <ip>:<porta> 
backendIp L'indirizzo IP del Gateway applicativo per contenitori di destinazione back-end a cui il proxy esegue la richiesta. 
backendPort Numero di porta della destinazione back-end. 
backendResponseLatency Tempo in millisecondi per ricevere il primo byte dal Gateway applicativo per contenitori alla destinazione back-end. 
backendTimeTaken Tempo in millisecondi per la trasmissione della risposta dalla destinazione back-end al Gateway applicativo per contenitori. 
clientIp Indirizzo IP del client che avvia la richiesta al front-end del Gateway applicativo per contenitori
frontendName Nome del front-end del Gateway applicativo per contenitori che ha ricevuto la richiesta dal client
frontendPort Numero di porta in cui la richiesta è stata ascoltata dal Gateway applicativo per contenitori
frontendTLSFailureReason Contiene informazioni sul motivo per cui la negoziazione TLS non è riuscita. Comunemente usato per comprendere le richieste di autenticazione non riuscite per l'autenticazione reciproca client
frontendTLSPeerFingerprint L’impronta digitale (identificazione personale) del certificato presentato da un client al front-end del gateway applicativo per contenitori
hostName Valore dell'intestazione host ricevuto dal client dal Gateway applicativo per contenitori
httpMethod Metodo HTTP della richiesta ricevuta dal client dal Gateway applicativo per contenitori in base a RFC 7231
httpStatusCode Codice di stato HTTP restituito dal Gateway applicativo per contenitori al client
httpVersion Versione HTTP della richiesta ricevuta dal client dal Gateway applicativo per contenitori
referrer Intestazione referrer della richiesta ricevuta dal client dal Gateway applicativo per contenitori
requestBodyBytes Dimensioni in byte del payload del corpo della richiesta ricevuta dal client dal Gateway applicativo per contenitori
requestHeaderBytes Dimensioni in byte delle intestazioni della richiesta ricevuta dal client dal Gateway applicativo per contenitori
requestUri URI della richiesta ricevuta dal client dal Gateway applicativo per contenitori (tutto dopo <protocollo>://<host> dell'URL)
responseBodyBytes Dimensioni in byte del payload del corpo della risposta restituita al client dal Gateway applicativo per contenitori
responseHeaderBytes Dimensioni in byte delle intestazioni della risposta restituita al client dal Gateway applicativo per contenitori
timeTaken Tempo in millisecondi della richiesta del client ricevuta dal Gateway applicativo per contenitori e l'ultimo byte restituito al client dal Gateway applicativo per contenitori
tlsCipher Suite di crittografia TLS negoziata tra il client e il front-end del Gateway applicativo per contenitori
tlsProtocol Versione TLS negoziata tra il client e il front-end del Gateway applicativo per contenitori
trackingId GUID generato dal Gateway applicativo per contenitori per facilitare il rilevamento e il debug. Questo valore è correlato all'intestazione x-request-id restituita al client dal Gateway applicativo per contenitori. 
userAgent Intestazione User-Agent della richiesta ricevuta dal client dal Gateway applicativo per contenitori

Note

I valori dei parametri della stringa di query, ad esempio "secret", "password", "pwd", "passwd", "key", "token", "pat", "accesskey", "accesstoken", "credential", "sas", "personalAccessToken" e "personal.access.token" registrati nel campo requestUri verranno sostituiti con un valore <redacted> per impedire la registrazione delle informazioni riservate. Questa opzione non è configurabile.

Di seguito è riportato un esempio del log di accesso generato in formato JSON in un account di archiviazione.

{
    "category": "TrafficControllerAccessLog",
    "operationName": "ReqRespLogs",
    "properties": {
        "backendHost": "10.1.0.15:80",
        "backendIp": "10.1.0.15",
        "backendPort": "80",
        "backendResponseLatency": "2",
        "backendTimeTaken": "-",
        "clientIp": "xxx.xxx.xxx.xxx:52526",
        "frontendName": "frontend-primary",
        "frontendPort": "443",
        "frontendTLSFailureReason": "-",
        "frontendTLSPeerFingerprint": "2c01bbc93009ad1fc977fe9115fae7ad298b665f",
        "hostName": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.fzXX.alb.azure.com",
        "httpMethod": "GET",
        "httpStatusCode": "200",
        "httpVersion": "HTTP\/1.1",
        "referer": "-",
        "requestBodyBytes": "0",
        "requestHeaderBytes": "223",
        "requestUri": "\/index.php",
        "responseBodyBytes": "91",
        "responseHeaderBytes": "190",
        "timeTaken": "2",
        "tlsCipher": "TLS_AES_256_GCM_SHA384",
        "tlsProtocol": "-",
        "trackingId": "0ef125db-7fb7-48a0-b3fe-03fe0ffed873",
        "userAgent": "curl\/7.81.0"
    },
    "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/YYYYYY/PROVIDERS/MICROSOFT.SERVICENETWORKING/TRAFFICCONTROLLERS/ZZZZZZZ",
    "time": "2023-07-22T06:26:58.895Z",
    "location": "northcentralus"
}

Formato del log del firewall

Il log del firewall viene generato solo se è definito un criterio di sicurezza di tipo WAF . Ogni voce del log del firewall in Gateway applicativo per contenitori contiene le informazioni seguenti.

valore Descrizione
TimeGenerated Ora (UTC) di creazione del log.
Nome dell'operazione Nome dell'operazione.
ID dell’istanza Istanza del gateway delle applicazioni per cui vengono generati i dati del firewall. Per un gateway applicazione a più istanze viene visualizzata una riga per ogni istanza.
ClientIp IP di origine della richiesta.
ClientPort Porta di origine della richiesta.
Azione Azione eseguita sulla richiesta. I valori disponibili sono Blocked e Allowed (per le regole personalizzate), Matched (quando una regola corrisponde a una parte della richiesta) e Detected e Blocked (entrambi per le regole obbligatorie).
Messaggio Messaggio descrittivo dell'evento di attivazione. Altre informazioni sono disponibili nella sezione dei dettagli.
Messaggio Dettagliato Descrizione della regola per l'evento attivato.
Dati Dettagliati Dati specifici trovati nella richiesta che corrispondono alla regola per l'evento attivato.
Dettagli del File File di configurazione contenente la regola per l'evento attivato.
LineDetails Numero di riga nel file di configurazione che ha attivato l'evento.
nomehost Nome host o indirizzo IP del gateway dell'applicazione.
ID della polizza ID risorsa del criterio firewall per le applicazioni Web.
PolicyScope Ambito denominato costituito da riferimenti a risorse di Kubernetes ai quali viene applicato l'ambito.
PolicyScopeName Il nome del tipo di assegnazione dell'ambito a cui è assegnata la policy del firewall per applicazioni web.
RequestUri URL della richiesta ricevuta.
RuleSetType Tipo di set di regole. Il valore disponibile è Microsoft_DefaultRuleSet o Microsoft_BotManagerRuleSet.
RuleSetVersion Versione del set di regole usata per Microsoft_DefaultRuleSet o Microsoft_BotManagerRuleSet.
RuleId ID regola dell'evento di attivazione.
ID di tracciamento GUID generato da Gateway applicativo per contenitori
{
    "timeStamp": "2025-06-17T20:06:05+00:00",
    "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/YYYYYY/PROVIDERS/MICROSOFT.SERVICENETWORKING/TRAFFICCONTROLLERS/ZZZZZZZ",
    "operationName": "TrafficControllerFirewall",
    "category": "TrafficControllerFirewallLog",
    "properties": {
        "instanceId": "8a02ae47-8435-4f3d-84a5-6f5ded3763f5",
        "clientIp": "xxx.xxx.xxx.xxx",
        "requestUri": "\/?1=1=1",
        "ruleSetType": "Microsoft_DefaultRuleSet",
        "ruleSetVersion": "2.1",
        "ruleId": "949110",
        "ruleGroup": "BLOCKING-EVALUATION",
        "message": "Inbound Anomaly Score Exceeded (Total Score: 5)",
        "action": "Blocked",
        "details": {
            "message": "Greater and Equal to Tx:inbound_anomaly_score_threshold at TX:anomaly_score.",
            "data": "",
            "file": "BLOCKING-EVALUATION.conf",
            "line": "36"
        },
        "hostName": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.fzXX.alb.azure.com",
        "trackingId": "0ef125db-7fb7-48a0-b3fe-03fe0ffed873",
        "policyId": "/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/YYYYYY/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/ZZZZZZZ",
        "policyScope": "HTTPRoute-test-infra-contoso-waf-route-rule-0-match-0-waf.fzXX.alb.azure.com",
        "policyScopeName": "Route",
        "engine": "Azwaf"
    },
    "location": "northcentralus"
}