Inviare log del piano di controllo a CloudWatch Logs - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Inviare log del piano di controllo a CloudWatch Logs

La registrazione del piano di controllo Amazon EKS fornisce registri di audit e di diagnostica direttamente dal piano di controllo Amazon EKS a CloudWatch Logs nell'account. Questi log consentono di semplificare la protezione e l'esecuzione dei cluster. Puoi selezionare i tipi di registro esatti di cui hai bisogno e questi vengono inviati come flussi di log a un gruppo per ogni cluster Amazon EKS in CloudWatch. È possibile utilizzare i filtri di sottoscrizione CloudWatch per eseguire analisi in tempo reale sui log o per inoltrarli ad altri servizi (i log saranno codificati in Base64 e compressi nel formato gzip). Per ulteriori informazioni, consulta Amazon CloudWatch logging (Utilizzo di file di log di Amazon CloudWatch).

É possibile iniziare a utilizzare il piano di controllo Amazon EKS scegliendo quali tipi di log che si desidera abilitare per ogni cluster Amazon EKS nuovo o esistente. È possibile abilitare o disabilitare ogni tipo di log in base al cluster utilizzando la Console di gestione AWS, AWS CLI (versione 1.16.139 o successiva) o tramite l’API Amazon EKS. Se abilitati, i log vengono inviati automaticamente dal cluster Amazon EKS a CloudWatch Logs nello stesso account.

Quando si utilizza la registrazione del piano di controllo Amazon EKS, viene addebitato il prezzo Amazon EKS standard per ogni cluster eseguito. Vengono addebitati i costi di inserimento e archiviazione dei dati CloudWatch Logs standard per gli eventuali log inviati a CloudWatch Logs dai cluster. Inoltre, vengono addebitati i costi delle risorse AWS, ad esempio istanze Amazon EC2 o volumi Amazon EBS, di cui si effettua il provisionig come parte del cluster.

Sono disponibili i seguenti tipi di registro del piano di controllo del cluster. Ogni tipo di registro corrisponde a un componente del piano di controllo Kubernetes. Per ulteriori informazioni su questi componenti, consultare Kubernetes Components nella documentazione Kubernetes.

Server APIapi ()

Il server API del cluster è il componente del piano di controllo (control-plane) che espone l’API Kubernetes. Se abiliti i log del server API quando avvii il cluster o poco dopo, questi log includono i flag del server API utilizzati per l'avvio del server API. Per ulteriori informazioni, consulta kube-apiserver e la policy di audit nella documentazione Kubernetes.

Auditaudit ()

I log di audit Kubernetes forniscono un record dei singoli utenti, amministratori o componenti di sistema che interessano il cluster. Per ulteriori informazioni, consultare Auditing nella documentazione Kubernetes.

Autenticatoreauthenticator ()

I log dell'autenticatore sono univoci per Amazon EKS. Questi registri rappresentano il componente del piano di controllo utilizzato da Amazon EKS per l'autenticazione Role Based Access Control (RBAC) Kubernetes utilizzando credenziali IAM. Per ulteriori informazioni, consulta Organizzazione e monitoraggio delle risorse del cluster.

Gestore controllercontrollerManager ()

Il gestore controller gestisce i loop di controllo di base inviati con Kubernetes. Per ulteriori informazioni, consultare kube-controller-manager nella documentazione Kubernetes.

Pianificatorescheduler ()

Il componente pianificatore gestisce quando e dove eseguire i pod nel cluster. Per ulteriori informazioni, consultare kube-scheduler nella documentazione Kubernetes.

Abilitare o disabilitare i log del piano di controllo (control-plane)

Per impostazione predefinita, i log del piano di controllo (control-plane) del cluster non vengono inviati a CloudWatch Logs. Ogni tipo di registro deve essere abilitato individualmente per inviare log per il cluster. L'acquisizione di CloudWatch Logs, lo spazio di archiviazione e i costi di scansione dei dati si applicano ai registri del piano di controllo abilitati. Per ulteriori informazioni, consultare la pagina dei prezzi di CloudWatch

Per aggiornare la configurazione di registrazione del piano di controllo (control-plane), Amazon EKS richiede fino a cinque indirizzi IP disponibili in ciascuna sottorete. Quando abiliti un tipo di registro, i log vengono inviati con un livello di dettaglio dei log di 2.

È possibile abilitare o disabilitare i log del piano di controllo (control-plane) con la Console di gestione AWS o AWS CLI.

Console di gestione AWS

  1. Aprire la Console Amazon EKS.

  2. Scegliere il nome del cluster per visualizzare le informazioni sul cluster.

  3. Scegli la scheda Osservabilità.

  4. Nella sezione Registrazione del piano di controllo, scegli Gestisci registrazione.

  5. Per ogni singolo tipo di log, scegli se il tipo di log deve essere attivato o disattivato. Per impostazione predefinita, i tipi di log sono disattivati.

  6. Scegliere Salva le modifiche per terminare.

CLI AWS

  1. Verificare la versione della AWS CLI con il comando seguente.

    aws --version

    Se la versione della AWS CLI è precedente alla 1.16.139, sarà prima necessario eseguire l’aggiornamento alla versione più recente. Per installare o aggiornare AWS CLI, consultare la pagina Installing the AWS Command Line Interface della Guida per l’utente dell’Interfaccia della linea di comando AWS.

  2. Aggiornare la configurazione di esportazione dei log del piano di controllo (control-plane) del cluster con il seguente comando della AWS CLI. Sostituisci my-cluster con il nome del cluster e specifica i valori desiderati per l'accesso all'endpoint.

    Nota

    Il comando seguente invia tutti i tipi di log disponibili a CloudWatch Logs.

    aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}'

    Di seguito viene riportato un output di esempio:

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "InProgress", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }
  3. Monitorare lo stato di aggiornamento della configurazione del log con il comando seguente utilizzando il nome del cluster e l'ID di aggiornamento restituiti dal comando precedente. L'aggiornamento è completo quando lo stato viene visualizzato come Successful.

    aws eks describe-update \ --region region-code\ --name my-cluster \ --update-id 883405c8-65c6-4758-8cee-2a7c1340a6d9

    Di seguito viene riportato un output di esempio:

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "Successful", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }

Visualizzare i log del piano di controllo (control-plane) del cluster

Dopo aver abilitato uno qualsiasi dei tipi di log del piano di controllo (control plane) per il cluster Amazon EKS, è possibile visualizzarli nella console CloudWatch.

Per ulteriori informazioni sulla visualizzazione, l'analisi e la gestione dei log in CloudWatch, consultare la Guida per l'utente di Amazon CloudWatch Logs.

  1. Aprire la CloudWatch console (Console CloudWatch). Questo link apre la console e mostra i gruppi di log disponibili correnti e li filtra con il prefisso /aws/eks.

  2. Scegliere il cluster per il quale si intende visualizzare i log. Il formato del nome del gruppo di log è /aws/eks/my-cluster/cluster.

  3. Scegliere il flusso di log da visualizzare. L'elenco seguente descrive il formato del nome del flusso di log per ogni tipo di registro.

    Nota

    Al crescere della quantità di dati del flusso di log, i nomi del flusso di log vengono ruotati. Quando esistono più flussi di log per un determinato tipo di log, puoi visualizzare l'ultimo flusso di log cercando il nome del flusso di log con Last event time (Ora ultimo evento) più recente.

    • Log del componente server API Kubernetes (api)kube-apiserver-1234567890abcdef01234567890abcde

    • Audit (audit)kube-apiserver-audit-1234567890abcdef01234567890abcde

    • Autenticatore (authenticator)authenticator-1234567890abcdef01234567890abcde

    • Gestore controller (controllerManager)kube-controller-manager-1234567890abcdef01234567890abcde

    • Pianificatore (scheduler)kube-scheduler-1234567890abcdef01234567890abcde

  4. Esamina gli eventi del flusso di log.

    Ad esempio, dovresti vedere i flag iniziali del server API del cluster quando visualizzi la parte iniziale di kube-apiserver-1234567890abcdef01234567890abcde .

    Nota

    Se i log del server API non vengono visualizzati all’inizio del flusso di log, è probabile che il file di log del server API sia stato ruotato sul server prima di abilitare la registrazione di log del server API sul server. I file di log ruotati prima dell’abilitazione della registrazione di log del server API non possono essere esportati in CloudWatch.

Tuttavia, è possibile creare un nuovo cluster con la stessa versione di Kubernetes e abilitare la registrazione del server API quando si crea il cluster. I cluster con la stessa versione della piattaforma hanno gli stessi flag abilitati, quindi i flag devono corrispondere a quelli del nuovo cluster. Al termine della visualizzazione dei flag per il nuovo cluster in CloudWatch, è possibile eliminare il nuovo cluster.