Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Suggerimento
Questo contenuto è un estratto dell'eBook Architecting Cloud Native .NET Applications for Azure, disponibile in .NET Docs o come PDF scaricabile gratuito che può essere letto offline.
La registrazione predefinita in Kubernetes è primitiva. Esistono tuttavia alcune opzioni ideali per ottenere i log da Kubernetes e in un luogo in cui possono essere analizzati correttamente. Se è necessario monitorare i cluster del servizio Azure Kubernetes, la configurazione di Elastic Stack per Kubernetes è una soluzione ideale.
Monitoraggio di Azure per contenitori
Monitoraggio di Azure per contenitori supporta la raccolta dei log non solo da Kubernetes, ma anche da altri motori di orchestrazione, ad esempio DC/OS, Docker Swarm e Red Hat OpenShift.
figura 7-10. Consumo di log da vari contenitori
Prometheus è una soluzione di monitoraggio delle metriche open source più diffusa. Fa parte di Cloud Native Compute Foundation. Generalmente, l'utilizzo di Prometheus richiede la gestione di un server Prometheus con il proprio archivio. Tuttavia, Azure Monitor per contenitori offre l'integrazione diretta con gli endpoint delle metriche di Prometheus, quindi non è necessario un server separato.
Le informazioni sui log e sulle metriche vengono raccolte non solo dai contenitori in esecuzione nel cluster, ma anche dagli host del cluster stessi. Consente di correlare le informazioni di log dai due rendendo molto più semplice tenere traccia di un errore.
L'installazione degli agenti di raccolta log è diversa nei cluster Windows e Linux . In entrambi i casi, tuttavia, la raccolta di log viene implementata come DaemonSet di Kubernetes, ovvero l'agente di raccolta log viene eseguito come contenitore in ognuno dei nodi.
Indipendentemente dal sistema operativo o dall'agente di orchestrazione che esegue il daemon di Monitoraggio di Azure, le informazioni di log vengono inoltrate agli stessi strumenti di Monitoraggio di Azure con cui gli utenti hanno familiarità. Questo approccio garantisce un'esperienza parallela in ambienti che combinano origini di log diverse, ad esempio un ambiente Kubernetes/Funzioni di Azure ibrido.
Figura 7-11. Dashboard di esempio che mostra le informazioni di log e metriche provenienti da molti contenitori in esecuzione.
Log.Finalize()
La registrazione è una delle parti più trascurate e ancora più importanti della distribuzione di qualsiasi applicazione su larga scala. Man mano che le dimensioni e la complessità delle applicazioni aumentano, quindi la difficoltà di eseguirne il debug. La disponibilità di log di alta qualità rende il debug molto più semplice e lo trasforma da "quasi impossibile" a "un'esperienza piacevole".