Kmom04: Monitoring
Nu när vi har ett system uppe och rullande behöver vi veta när något går fel, vi ska övervaka hela produktionsmiljön och alla dess delar.
Kursmomentet är under uppdatering!
Påbörja inte förens denna gula ruta är borta!
#Monitoring
När system ligger utspridda på virtuelle servrar jorden runt är det inte lätt att hålla koll på att alla servrar och system hela tiden är igång. Här kommer infrastruktur monitoring in i bilden men vi kan också ha application monitoring där vi övervakar metrics från system. T.ex. hur många request varje server har fått eller hur många 404 requests.
#Läs och titta
Microsofts förklaring av Monitoring.
#Log management
Log management är processen av att samla in, lagra, hantera och analysera loggar från infrastruktur, system och applikation. Det är ett väldigt brett ämne då typ allt genererar loggar av något slag och system för att sköta log hantering är väldigt avancerade. För att få en överblick av delarna som ingår i log management och vilken användning olika roller har av log management läs följande:
#Läs och titta
en snabb överblick av ELK stack för en överblick av ett av de mest populära systemen för Log management.
#Application performance monitoring (APM)
APM kan även kallas Application Performance Management (också APM), enligt vissa är det skillnad. APM är att övervaka, hantera och diagnosera prestanda, tillgänglighet och användare upplevelse av applikationer. Avancerade program används för att göra om data till “business value”.
#Läs och titta
#Observability
På senare år har det även börjat talas mycket om Observability vilket hänger ihop med monitoring. Vi kan se monitoring som att ha kolla på hälsan av våra system medan observability är att ha djup insikt i hur våra system beter sig. Observability ska hjälpa oss hitta fel och problem.
#Läs och titta
Om ni vill kan ni även kolla på What Does the Future Hold for Observability?.
#Prometheus och Grafana
Vi ska använda oss av Prometheus, ett väldigt populärt verktyg för att lagra tidsserie data och visualisera data. Prometheus har inbyggt stöd för att visa simpla grafer för data men oftast använder man det tillsammans med externa visualiseringsverktyg. Vi ska använda Grafana för att bygga dashboards med grafer och diagram över datan från Prometheus.
#Läs och titta
- Läs Prometheus Monitoring: The Definitive Guide in 2019 för en överblick av vad Prometheus är och vad det innehåller.
- Alertmanager
- Alerting Best practice
- Operatorer i Prometheus
#Att göra
Nu ska ni starta upp prometheus, grafana och koppla ihop dem.
Kolla på videorna 401-403 i spellistan kursen devops. Gör det lokalt på er dator för att testa få det att fungera.
Kolla på videorna 410-413 i spellistan kursen devops. PS i video 412 körs det på produktionsservrar men ni kan göra det lokalt som med allt annat, det är likadant.
#Läsanvisningar
Läsanvisningar hittar ni på sidan bokcirkel.
Kolla i lektionsplanen för att se när vi träffas för bokcirkeln.
#Uppgifter
Utöka Ansible provisioning koden så att ni skapar en till server som heter och har typen
monitoring
.- Öppna passande portar i security groups.
Skriv Ansible kod som installerar och startar Prometheus, Grafana och Alertmanager på den nya VM instansen.
- Använd er av modulen Grafana datasources för att lägga till prometheus som datakälla
Uppdatera era appservrar så de kör er nya Docker image som innehåller flask exportören.
Vi borde ha en exportör för MySQL men tidigare år har den funkat dåligt. Installera istället en Node exporter på databas VM:en. Då får vi alla fall lite koll på hur servern mår. Gör det via Ansible koden.
Konfigurera en exportör för Nginx. I övningen Övervaka nginx med Prometheus och Grafana kan ni se hur man gör.
Konfigurera Prometheus så den hämtar data från alla exportörer.
Lägg till dashboard i Grafana för alla exportörer. Använd Ansible modulen dashboards för att lägga till den från Ansible. Det går inte att koppla ihop er dashboard och datasource i Ansible koden. Modulerna saknar stöd för det. Bara skapa dem via Ansible och sen får ni koppla ihop dem manuellt.
Skapa ett valfritt larm, ett sätt att aktivera det och att avaktivera det. Larmet ska skickas till
https://webhook.site
. I redovisningstexten, skriv hur man kan aktivera och avaktivera larmet. Samt länk till er webhook sida där man kan se larmet.Lägg till en Reverse Proxy i er Nginx konfiguration till Grafana och Grafana konfiguration. Länka till er grafana sida,
<domain>/grafana
i er redovisningstext och skriv inloggs uppgifter.
Glöm inte att öppna portar i Azure!
#Extrauppgift
Om ni får tid över, testa log management verktyget Loki. Försök få loggar från Nginx eller microbloggen till Grafana med hjälp av Loki.
#Resultat & Redovisning
Svara på nedanstående frågor individuellt, lämna in på Canvas tillsammans med länken till ert gemensamma GitHub-repo och domännamn till microblog sidan.
Se till att följande frågor besvaras i texten:
Beskriv vad som menas med Monitoring, olika saker som brukar övervakas och vad det används till.
Beskriv Log management och vad det används till.
Beskriv APM och vad det används till.
Beskriv Observability och försök koppla det till ovanstående frågor.
Hur kan jag aktivera och avaktivera er larm? Skicka med länk till webhook.site.
Testade ni Loki? Fick ni ihop det, i så fall tror du att man hade hunnit med det i kursmomentet?
Skriv inloggning till er grafana sida.
#Revision history
- 2023-11-24: (C, aar) Släppt för HT23.
- 2020-11-19: (B, aar) Släppt för HT20.
- 2019-10-15: (A, aar) Första versionen.