Monitoring van Hybride IT landschap - part 2

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. In dit deel gaan we het hebben over het monitoren van diensten. Binnen Elastic is hier Synthetic Monitoring voor beschikbaar. Synthetic Monitoring stelt je in staat om vanuit de gebruiker te monitoren en te zien of je diensten vanuit hun ook echt werkt.

De checks kun je laten uitvoeren vanaf meerdere locaties over de hele wereld, maar het heeft ook de mogelijkheid om een agent in je netwerk te plaatsen om on-premise deze checks ook uit te kunnen laten voeren.
Synthetic Monitoring biedt de mogelijkheid om de volgende drie type checks te doen:
- HTTP(s)
- TCP
- ICMP (oftewel ping)
Bij al deze checks kan je jouw request aanpassen, (bijvoorbeeld welke HTTP-headers verzonden moeten worden). Ook kun je checken of de response de juiste response-headers bevat en of er een bepaalde string in de body van de response zit.
Onze voorbeeld diensten zijn alleen on-premise beschikbaar. Aangezien we gebruik maken van ElasticCloud moeten we nog een ‘Monitor’ gaan toevoegen die binnen ons eigen netwerk draait en vanuit daar onze diensten kan monitoren.
1.Maak eerst een lege nieuwe agent policy aan.

2. Voeg aan deze policy een agent toe en installeer deze agent op een host (of container) die gaat fungeren als de on-premise monitor (kunnen er natuurlijk ook meer dan één zijn). Vanaf deze agent worden interne systemen vervolgens gemonitord voor de Uptime app.
3. Ga binnen Observability naar Monitors onder Uptime.
4. Ga naar Monitor Management.
5. Kies voor Private Locations.
6. Druk hier Add Location.

7. Geef deze een naam en kies de eerder aangemaakt agent policy.
8. Ga vervolgens terug naar Uptime en kies voor Monitors.
9. Druk op Monitor Management en druk Add monitor.

10. We gaan eerst een simpele TCP-check toevoegen om te kijken of onze database server werkt. Kies hier de private monitor die we hierboven hebben aangemaakt. Kies voor TCP als Monitor Type. Voeg vervolgens het IP-nummer van de database server gevolgd door “:3306”, oftewel de TCP-port van MySQL.

11. Vervolgens kan je de status van deze monitor terugzien in de Uptime app onder Monitors.

12. Tot slot voegen we nog een monitor toe voor onze web app.
13. Ga weer terug naar Monitor Management, voeg een nieuwe monitor toe, selecteer onze private monitor, kies voor Monitor Type HTTP en voeg de URL toe waarop de webapp beschikbaar is.

14. Als extra’s gaan we controleren of de HTTP-status code 200 is en checken we of we een inlogscherm krijgen door de controleren of de string ‘Username’ in de response terugkomt.

15. Ook deze monitor komt nu terug op de Monitors pagina van de Uptime app.

In deze blogpost heb je gezien hoe je met Elastic Synthetic Monitoring de beschikbaarheid van diensten kan monitoren. In deel drie van onze blogserie gaan we in op hoe we ketenmonitoring kunnen doen met Elastic Canvas.