29 November 2022

Monitoring van Hybride IT landschap - part 3

Elastic

Cloud is niet meer weg te denken uit het IT landschap. Wat de toekomst ook doet, we zullen de komende jaren gebruik blijven maken van on-premise omgevingen. Hoe ga je nu deze hybride omgevingen monitoren? Er zijn veel tools en er is veel informatie beschikbaar over het toepassen van observability met bijvoorbeeld Elastic Observability, bijvoorbeeld door het gebruik van APM (Application Performance Monitoring). Door een library toe te voegen aan je eigen ontwikkelde applicatie krijg je snel inzicht in hoe de applicatie precies presteert, waar bottlenecks zitten en nog veel meer.

Maar wat als je een klassiek landschap hebt met bijvoorbeeld applicaties die niet in je OpenShift omgeving draaien of extern ontwikkeld zijn?

In deze blogserie gaan we in op het monitoren van een hybride omgeving. Ons voorbeeld bestaat uit een PHP applicatie draaiend op een Linux webserver en een Linux database server. Deze systemen en applicaties zouden we graag willen monitoren.

In deel 1 zijn we ingegaan op het monitoren van onze hosts en in deel twee zijn we onze diensten gaan monitoren. In deze derde en laatste blogpost gaan we een eerste vorm van ketenmonitoring inregelen. Om hier gebruik van te maken gaan we een custom canvas maken die de relatie tussen de database server en de webserver weer gaat geven.

Als eerste moeten we een Data View aanmaken van onze Synthetic data.  

1. Ga naar Discover onder Analytics.

2. Druk op de huidige geselecteerde dataview en kies voor ‘Create a data view’. 

3. Geef de dataview een herkenbare naam (in het voorbeeld gebruiken we ‘synthetics’). Vul als index pattern ‘synthetics-*’ in en druk op Save data view in Kibana. 

4. Ga naar Canvas, maak een nieuwe Canvas aan, geef deze een herkenbare naam. In ons voorbeeld wordt dit: ‘WebApp Status’ 

5. Voeg een willekeurig object toe, selecteer het object en druk rechts onderin op ‘Expression editor’ en plak de volgende tekst in de editor:

6. Voeg nog een willekeurig object toe, selecteer deze ook en druk rechts onderin op ‘Expression editor’ en plak de volgende tekst in de editor:

7. Voeg vervolgens nog wat opmaak toe zoals de teksten: ‘WebApp’ en ‘Database’ en een pijl.

8. Daarmee kom je op het volgende eindresultaat:

Hoe werkt dit nou? Als eerste het database blokje, hier halen we Elasticsearch documenten op uit de “synthetics” datasource. Alle checks die je maakt binnen de Uptime applicatie kan je uit weer gebruiken om visualisaties van te maken. De opgehaalde status gebruiken we om te bepalen of we het vlakje rood of groen kleuren. Zie hieronder de ruwe data in de Discover applicatie:

Voor de tweede visualisatie moet de status weergeven van de webapp. We willen er voor zorgen dat deze ook rood kleurt wanneer de database niet werkt en rood kleur wanneer de webapp zelf ook niet werkt. Voor de tweede visualisatie maken we gebruik van ElasticSearch SQL [https://www.elastic.co/what-is/elasticsearch-sql]. Hiermee kan je gebruik maken van traditionele database syntax en de performance van Elastic. Dus ‘SELECT * FROM’ over petabytes aan data in real-time!

Om dit weer te geven voeren we twee queries uit, eerst om de status van de database op te halen vervolgens de status van de webapp.

 

Deze slaan we op in variables die we bij het renderen van de vakjes weer gebruiken om de kleur te bepalen.

Dit zorgt er uiteindelijk voor dat wanneer de database niet meer te bereiken is onze webapp ook rood kleurt.

Hiermee hebben we met Elastic Canvas er voor gezorgd dat we relaties tussen componenten weer geven en dus ketenmonitoring realiseren!