Prometheus: monitoring software voor microservices en Kubernetes

Prometheus monitoring
Prometheus monitoring
Home / Blog & Nieuws / Cloud / Prometheus: monitoring software voor microservices en Kubernetes

De ontwikkeling van webapplicaties vindt steeds vaker plaats volgens het microservices-principe. Voor elke microservice wordt een of meerdere containers ingezet. Als het aantal microservices toeneemt, is het bijna onvermijdelijke om Kubernetes in te zetten. Maar hoe monitor je alle data die microservices, containers en Kubernetes genereren? Prometheus is een tool die je daarbij kan helpen.

Lees ook: wat is Kubernetes?

Wat is Prometheus?

Prometheus is open-source software voor monitoring en alerting bij complexe webprojecten. In de kern wordt Prometheus gebruikt om inzichten te verkrijgen uit metrics die je kunt monitoren met betrekking tot de systemen en microservices van je webapplicatie. Prometheus maakt gebruik van drie kernconcepten die zij beschrijven als data models, metric types en jobs en instances.

De software is aanvankelijk ontwikkeld door engineers van SoundCloud en is sinds 2015 verbonden aan de Cloud Native Computing Foundation (CNCF), een door Linux ondersteunde organisatie die zich inzet om cloud-native technologie te incuberen totdat de technologie volwassen genoeg is voor productie-omgevingen.

Hoe werkt Prometheus?

Prometheus en Kubernetes

Prometheus wordt vaak in één adem genoemd met Kubernetes, omdat Kubernetes van zichzelf geen monitoringcapabiliteiten heeft. Vanuit de CNCF is er echter een ecosysteem aan open-source tools ontwikkeld die naadloos aansluiten bij Kubernetes, waarbij Prometheus een van de belangrijkste monitoringtools is.

Prometheus is wat men noemt een ’time series streaming data tool’. De tool haalt beschikbare data op via HTTP endpunten van Kubernetes en maakt deze data vervolgens beschikbaar in een tijdreeks. Hierdoor wordt het mogelijk om gegevens te analyseren.

Prometheus visualiseert de data zelf niet, maar kan bijvoorbeeld naadloos worden geïntegreerd met Grafana, een datavisualisatielaag waarmee je met de geobserveerde gegevens in Prometheus een dashboard kunt maken.

Een van de grootste voordelen van Prometheus is dat het zeer schaalbaar is en dat het grote hoeveelheden gegevens kan verwerken. Dat is bij software zoals Kubernetes van groot belang, omdat ger voortdurend grote hoeveelheden gegevens worden op-en afgeschaald in Kubernetes. Dat komt ook de prestaties ten goede.

Prometheus en Istio

Prometheus wordt ook vaak gekoppeld aan Istio, een Service Mesh voor Kubernetes. Je kunt Istio het best zien als een aanvulling op het creëren van inzichten in microservices – de mini-applicaties waar Kubernetes vaak voor wordt ingezet.

Istio richt zich met name op de netwerken tussen de (micro)services. Metrics die door Istio bijvoorbeeld beschikbaar worden zijn bijvoorbeeld total request count, request per second, failed requests enzovoorts. Dit zijn over het algemeen metrics die zichtbaarheid geven in de prestaties en beschikbaarheid van een microservices die met Kubernetes wordt beheerd.

Alerting

Een belangrijke functie van Prometheus is dat je het ook in kunt zetten voor alerting. Je kunt bijvoorbeeld configureren dat je een melding krijgt als een bepaalde service binnen Kubernetes afwijkend gedrag vertoont. Zo’n alert kun je dan krijgen via Slack of andere online communicatiemiddelen.

Wanneer Prometheus inzetten en wanneer niet?

Prometheus werkt goed voor numerieke tijdreeksen. Dat kun je bijvoorbeeld inzetten voor data van machines (bijv. servers) of juist voor meer dynamische architecturen waar bijvoorbeeld microservices worden ingezet. Prometheus is ontworpen om goed beschikbaar te blijven, zelfs als er een sprake is van uitval van systemen. Dat laatste komt in het geval van Kubernetes vaak voor, zoals je ook kunt lezen in ons e-book over Kubernetes waar we flink wat praktijkvoorbeelden delen over hoe het opeens mis kan gaan met Kubernetes.

Prometheus servers zijn standalone en hebben geen netwerkopslag nodig. Hierdoor kun je vertrouwen dat de software blijft werken als bijvoorbeeld andere onderdelen van de infrastructuur kapot zijn. Zo kun je snel kijken waar eventuele knelpunten zitten en deze snel oplossen. Ook kan je hiermee problemen oplossen als het juist de monitoring of alerting agent is dat problemen veroorzaakt. Ook dat was een use case die vaak terugkwam in ons e-book over Kubernetes.

Prometheus vergroot inzicht

Bij alle verzoeken die de microservices naar elkaar versturen kunnen fouten ontstaan. En omdat webapplicaties steeds vaker uit tientallen, zo niet honderden microservices bestaan, wordt het oppervlakte voor fouten groter. Dit wil je dus monitoren. Prometheus maakt het mogelijk om die data los te trekken en inzicht te genereren wanneer er spake is van (mogelijke) uitval.

Wil je meer weten over Prometheus of hoe het geïntegreerd kan worden in een Kubernetes-cluster? Onze Managed Kubernetes-specialisten vertellen je er graag meer over.

E-book 26 Kubernetes tools voor beginners

Het aantal cloud-native tools neemt in rap tempo toe. In ons e-book delen wij 26 van de meest populaire Kubernetes en cloud-native tools van het moment. Zo heb je het juiste gereedschap voor het beheren van je containerapplicaties in welke cloud dan ook.

Application Modernization met Kubernetes

 

True Ligan
Managed hosting sinds 2000