Monitora i dati di log Kubernetes con OCI Logging Analytics
Un ambiente basato su Kubernetes può essere diviso in tre livelli, ciascuno composto da numerosi componenti in continua evoluzione guidati dalle esigenze aziendali.
- Livello dell'infrastruttura: contiene numerosi componenti, tra cui risorse di rete, istanze di computazione e host dei nodi Kubernetes.
- Livello di piattaforma Kubernetes: contiene i vari servizi Kubernetes come rete, servizio kubelet e DNS, che alimentano la piattaforma kubernetes.
- Livello applicazione: contiene le diverse tecnologie, database e applicazioni.
Architettura
Questa architettura mostra come utilizzare Oracle Cloud Infrastructure Logging Analytics per monitorare una piattaforma Kubernetes e applicazioni cloud native.
Il diagramma riportato di seguito è un esempio di topologia di un cluster Kubernetes in una singola area geografica Oracle Cloud Infrastructure (OCI). Mostra il livello di infrastruttura e il secondo diagramma evidenzia i livelli di kubernet e applicazione.

Descrizione dell'immagine kubernetes-master-worker-nodes.png
kubernetes-master-worker-nodes-oracle.zip
Il diagramma riportato di seguito illustra il monitoraggio Kubernetes per i cluster Kubernetes in locale e Oracle Cloud Infrastructure Kubernetes Engine (noto anche come Kubernetes Engine o OKE) con OCI Logging Analytics. Questa soluzione offre una raccolta di vari log di un cluster Kubernetes in OCI Logging Analytics e offre analitica avanzata oltre ai log raccolti. È possibile personalizzare la raccolta dei log modificando la configurazione predefinita.

Descrizione dell'immagine k8s-oke-monitoring.png
L'architettura presenta i seguenti componenti:
- Tenancy
Una tenancy è una partizione sicura e isolata che Oracle imposta all'interno di Oracle Cloud quando ti iscrivi a Oracle Cloud Infrastructure. Puoi creare, organizzare e amministrare le risorse in Oracle Cloud all'interno della tua tenancy. Una tenancy è sinonimo di azienda o organizzazione. Di solito, un'azienda avrà una singola tenancy e rifletterà la sua struttura organizzativa all'interno di quella tenancy. Una singola tenancy viene in genere associata a una singola sottoscrizione e una singola sottoscrizione in genere ha una sola tenancy.
- Area
Un'area geografica Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (tra paesi o addirittura continenti).
- Compartimento
I compartimenti sono partizioni logiche tra più aree all'interno di una tenancy Oracle Cloud Infrastructure. Usare i compartimenti per organizzare, controllare l'accesso e impostare le quote d'uso per le risorse Oracle Cloud. In un determinato compartimento, si definiscono i criteri che controllano l'accesso e impostano i privilegi per le risorse.
- Rete cloud virtuale (VCN) e subnet
Una VCN è una rete personalizzabile e definita dal software configurata in un'area Oracle Cloud Infrastructure. Come le tradizionali reti di data center, le reti VCN consentono di controllare l'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo aver creato la VCN. Puoi segmentare una VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. È possibile modificare le dimensioni di una subnet dopo la creazione. Una subnet può essere pubblica o privata.
- Load balancer
Il servizio Oracle Cloud Infrastructure Load Balancing fornisce la distribuzione automatica del traffico da un unico punto di accesso a più server nel back-end.
- Gateway del servizio
Il gateway di servizi fornisce l'accesso da una VCN ad altri servizi, come Oracle Cloud Infrastructure Object Storage. Il traffico dalla VCN al servizio Oracle viene instradato sul fabric di rete Oracle e non attraversa Internet.
- Logging Analytics
Oracle Cloud Infrastructure (OCI) Logging Analytics è un servizio regionale SaaS completamente gestito disponibile in più di 27 aree che fornisce raccolta, indicizzazione, arricchimento, query, visualizzazione e avvisi per i log da qualsiasi componente IT in esecuzione su cloud on-premise, OCI o 3rd party.
- Origine Logging Analytics
L'origine di Logging Analytics è una risorsa di configurazione che fornisce specifiche per l'analisi, le estrazioni, l'etichettatura, il mascheramento dei dati e altri arricchimenti per garantire che i log vengano inclusi e indicizzati correttamente per l'analisi e il monitoraggio. Questa architettura utilizza più di 30 origini predefinite per i servizi, le applicazioni e gli oggetti Kubernetes. Queste fonti vengono continuamente migliorate per fornire funzionalità di analisi più approfondite.
- Pod di sistema Kubernetes
I pod di sistema Kubernetes sono piccole unità di elaborazione distribuibili che puoi creare e gestire in Kubernetes. Un pod è uno o più container, con risorse di storage e rete condivise e regole per l'esecuzione dei container.
- Pod utente
Applicazioni avviate nel cluster Kubernetes. Tutti i log dei pod dell'applicazione che scrivono
STDOUT/STDERR
sono in genere disponibili in/var/log/containers/
. Le applicazioni con handler di log personalizzati possono instradare i log in modo diverso, ma in generale sono disponibili sul nodo (attraverso un volume). - Servizi e pod del piano di controllo
Servizi e pod del piano di controllo della piattaforma Kubernetes. Il piano di controllo gestisce i nodi di lavoro e i pod nel cluster Kubernetes. I nodi di lavoro eseguono le applicazioni containerizzate. Ogni cluster dispone di almeno un nodo di lavoro. I nodi di lavoro ospitano i pod che costituiscono i componenti del carico di lavoro dell'applicazione.
- Servizi sistema operativo nodo
Servizi Linux in esecuzione sull'istanza in cui è installato Kubernetes. I log vengono raccolti sui servizi del sistema operativo.
- Pod Log e Object Collector
I pod Log e Object Collector sono costituiti da set di repliche, FluentD e daemon.
- Collector FluentD
FluentD è un strumento di raccolta dati open source che fornisce un livello di log unificato tra le origini dati e i sistemi backend. Consente la raccolta e il consumo unificati dei dati per le pipeline di elaborazione dei dati di un edificio. Questa architettura utilizza un contenitore FluentD containerizzato che viene eseguito come set di daemon e set di replicati nel cluster kubernetes. Utilizza il plugin di output Fluentd per l'analisi dei log per caricare i log in OCI Logging Analytics.
- Plugin FluentD di Logging Analytics
Plugin di output FluentD che si connette al servizio OCI Logging Analytics nella tenancy per caricare o includere i log raccolti dal Collector FluentD.
- Oggetti Kubernetes
Gli oggetti Kubernetes sono entità persistenti nel sistema Kubernetes. Kubernetes utilizza queste entità per rappresentare lo stato del cluster. In questa architettura, gli stati degli oggetti kubernetes riportati di seguito vengono raccolti come log per l'analisi e la risoluzione dei problemi cronologici.
- Set di daemon Kubernetes
Un Kubernetes
DaemonSet
è un tipo di carico di lavoro eseguito su Kubernetes e garantisce che tutti (o alcuni) nodi eseguano una copia di un pod. Quando i nodi vengono aggiunti al cluster, vengono aggiunti i pod. Quando i nodi vengono rimossi dal cluster, tali pod vengono raccolti come elementi non utilizzati. - Set di repliche Kubernetes
Un Kubernetes
ReplicaSet
è un tipo di carico di lavoro eseguito su Kubernetes. Mantiene un set stabile di repliche Pod in esecuzione in qualsiasi momento. In quanto tale, viene spesso utilizzato per garantire la disponibilità di un determinato numero di Pod identici
- Collector FluentD
- Motore Kubernetes
Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine o OKE) è un servizio completamente gestito, scalabile e ad alta disponibilità che puoi utilizzare per distribuire le tue applicazioni containerizzate nel cloud. Puoi specificare le risorse di computazione richieste dalle tue applicazioni e Kubernetes Engine le esegue sul Oracle Cloud Infrastructure in una tenancy esistente. OKE utilizza Kubernetes per automatizzare l'implementazione, la scalabilità e la gestione di applicazioni containerizzate tra cluster di host.
- Connettori servizio
Service Connector Hub è una piattaforma di bus di messaggi cloud. Puoi usarlo per spostare i dati tra i servizi in Oracle Cloud Infrastructure. I dati vengono spostati utilizzando i connettori del servizio. Un connettore servizio specifica il servizio di origine che contiene i dati da spostare, i task da eseguire sui dati e il servizio di destinazione a cui devono essere consegnati i dati al termine dei task specificati. In questa architettura viene eseguito il provisioning di un connettore di servizio per raccogliere i log di rete e load balancer.
- Servizi OCI
I servizi Oracle Cloud Infrastructure (OCI) sono una piattaforma di servizi cloud che ti consentono di creare ed eseguire una vasta gamma di applicazioni in un ambiente ad alta disponibilità e costantemente ad alte prestazioni.
- Log di servizio e di audit
I log di servizio e di audit vengono acquisiti nel servizio OCI Logging. OCI Logging è un servizio altamente scalabile e completamente gestito utilizzato per accedere ai log del servizio VCN e Load Balancer tramite il connettore servizio.
Per impostazione predefinita, vengono raccolti i log dei servizi di sistema Kubernetes e i dati degli oggetti Kubernetes.
Oracle Cloud Infrastructure Kubernetes Engine dispone di servizi integrati in cui ognuno ha responsabilità diverse ed è eseguito su uno o più nodi del cluster sotto forma di distribuzioni o DaemonSets
.
Servizi di sistema Kubernetes | Servizi di sistema Linux | Piano di controllo Kubernetes | Oggetti Kubernetes (impostazione predefinita: ogni 15 minuti) | Log applicazioni personalizzati |
---|---|---|---|---|
|
|
|
|
|
Nota
I log del piano di controllo Kubernetes non vengono trattati come parte della raccolta predefinita, in quanto questi log non vengono esposti da OCI Kubernetes Engine (noto anche come OKE). È possibile abilitare i log del piano di controllo da cluster Kubernetes non OKE.
Suggerimenti
Utilizzare i seguenti suggerimenti come punto di partenza. Le vostre esigenze potrebbero differire dall'architettura descritta qui.
- Gruppi di log
Definire più gruppi di log per fornire autorizzazioni di accesso in scrittura a team diversi ed evitare la condivisione di dati riservati. I gruppi di log possono essere basati su Oracle E-Business Suite, database, infrastruttura OCI, log degli host.
- Cost Management
Il servizio Oracle Cloud Infrastructure (OCI) Logging Analytics viene addebitato sul volume di dati nello storage attivo e di archiviazione. Per consentire la risoluzione dei problemi quotidiani e ottenere vantaggi dal rilevamento delle anomalie, dal rilevamento dei pattern e da altre funzionalità di apprendimento automatico, si consiglia di utilizzare un periodo di storage attivo di 90 giorni e di spostare i log più vecchi di 90 giorni nello storage di archiviazione. I log archiviati possono essere richiamati rapidamente su richiesta.
- FluentD Più lavoratori
Configurare FluentD in modalità multi-worker per i log sensibili al tempo.
- Log applicazioni personalizzati
Questa soluzione acquisisce automaticamente tutti i log generati dalle applicazioni in esecuzione in un cluster Kubernetes. Per impostazione predefinita, questi log vengono mappati all'origine log
Kubernetes Generic Container Logs
. Il parser, le origini e l'arricchimento specifici dei log dell'applicazione devono essere creati in Oracle Cloud Infrastructure Logging Analytics per estrarre i campi obbligatori e allegare etichette dei problemi ai log. - Autenticazione
Questa architettura supporta l'autenticazione basata sul principal dell'istanza e sul file Oracle Cloud Infrastructure
config
. L'autenticazione basata sul principal dell'istanza è consigliata per Oracle Cloud Infrastructure Kubernetes Engine (OKE).
Considerazioni
Quando si distribuisce questa architettura di riferimento, tenere presente quanto riportato di seguito.
- Prestazioni
Le prestazioni delle query si basano sull'intervallo di tempo e sul numero di operazioni, ad esempio filtri, raggruppamento e così via. Per migliorare le prestazioni delle query, si consiglia di integrare i log con etichette e campi specifici al momento dell'inclusione. Si tratta di una parte del miglioramento continuo per le operazioni IT.
- Controllo dell'accesso basato su sicurezza e ruoli (RBAC)
Personalizzare le definizioni dell'origine log per filtrare i dati PII e abilitare l'arricchimento della geolocalizzazione.
- Disponibilità
Oracle Cloud Infrastructure Logging Analytics è un servizio SaaS ad alta disponibilità completamente gestito.
Distribuire
I file manifesto e i grafici helm di Kubernetes per l'implementazione di Oracle Cloud Infrastructure Logging Analytics, DaemonSets
e ReplicaSets
sono disponibili in GitHub.
- Passare a GitHub.
- Duplica o scarica il repository nel computer locale.
- Seguire le istruzioni riportate nel documento
README
.
Visualizza altro
- Configura un cluster Kubernetes per la distribuzione di applicazioni containerizzate su Oracle Cloud (playbook della soluzione)
- Framework ben progettato per Oracle Cloud Infrastructure
- Canale YouTube di Oracle Cloud Infrastructure Logging Analytics
- Documentazione di Oracle Cloud Infrastructure Logging Analytics
- Analizza log di esempio con il laboratorio pratico di OCI Logging Analytics
- Blog di Oracle Cloud Infrastructure Logging Analytics