Vad övervakningen behöver från klustret
Hur övervakningsmodulen hittar kubelets, ingresskontrollern och Longhorn, vad var och en ger, vad som saknas utan dem, och inställningarna som pekar modulen mot dem.
Övervakningsmodulen kör som driftsättningen module-monitoring i stackship-system. Den
bevakar klustret den kör i — plattformens eget — och inget annat: resurser i andra kluster anslutna
till plattformen har inga mätvärden och utlöser inga larm. Den installerar inget i klustret; den hittar
det som finns där, och en komponent som inte finns ger helt enkelt ingen data.
Vad den läser
| Källa | Hittas som | Vad den ger | Utan den |
|---|---|---|---|
| Varje nods kubelet | Varje nod, via Kubernetes API-serverns nodproxy | CPU, minne och nätverk för containrar; nodens använda CPU och minne; fyllnadsgrad för persistenta volymer | Inga mätvärden alls |
| Ingresskontrollern nginx | Poddarna bakom en Service med namnet ingress-nginx-controller, på port 10254 |
HTTP-förfrågningar per resurs och status | Inga HTTP-diagram och inga larm om felandel i ingressen |
| Traefik | Poddarna bakom en Service med namnet traefik-metrics, på port 9100 |
Detsamma, från Traefik | Detsamma |
| Longhorn | Poddarna bakom en Service med namnet longhorn-backend, på port 9500 |
Lagring per nod och disk, och volymernas hälsa | Inga lagringssiffror på Hälsa och inga lagringslarm |
En Service hittas på sitt namn i vilken namnrymd som helst. Nodernas kapacitet — vad varje nod kan tilldela och vad dess poddar har begärt — kommer från själva Kubernetes-API:t.
Modulen läser allt detta med sitt eget tjänstekonto, stackship-module-monitoring, som installationen
binder till ClusterRole stackship-module-monitoring-role: läsåtkomst till noder, poddar, services,
endpoints, persistenta volymer, ingresser och Traefiks IngressRoutes, och till nodproxyn. Plattformen
binder det också till en ClusterRole som genereras från behörighetskatalogen,
stackship-module-monitoring, som också bara ger läsåtkomst. Ingen av dem ger skrivåtkomst.
Ingresskontroller
- nginx. Installationens nginx har sina mätvärden påslagna. Om kontrollern installerades med ett
annat Helm-releasenamn än diagrammets har dess Service ett annat namn — sätt
IngressController__ServiceNametill det. - Traefik. Installationens Traefik har mätvärdestjänsten
traefik-metricspåslagen. En Traefik utan den tjänsten ger inga HTTP-mätvärden förrän en Service med det namnet exponerar dess mätvärdesport 9100.
Förfrågningar kopplas till resurser genom etiketterna som plattformen sätter på sina ingresser och Traefik-rutter.
Longhorn
Två Longhorn-inställningar exporteras inte som mätvärden, så modulen måste få veta dem, och de måste stämma med vad Longhorn är inställt på. En avvikelse snedvrider lagringssiffrorna och larmen utan något fel.
| Inställning | Måste stämma med Longhorns | Standard | Används till |
|---|---|---|---|
Longhorn__OverProvisioningPercentage |
storage-over-provisioning-percentage |
100 |
Lagring reserverat på Hälsa och larmet om schemaläggningsmarginal. Med Longhorn på 200 och modulen på 100 visar båda dubbla den verkliga siffran |
Longhorn__MinimalAvailablePercentage |
storage-minimal-available-percentage |
25 |
Larmet om diskutrymme, som varnar 5 enheter ovanför den |
Jämför dem med:
kubectl -n longhorn-system get settings.longhorn.io storage-over-provisioning-percentage -o jsonpath='{.value}'
kubectl -n longhorn-system get settings.longhorn.io storage-minimal-available-percentage -o jsonpath='{.value}'
kubectl -n stackship-system get configmap module-monitoring-config -o yaml | grep Longhorn__Inställningar
Installationsprogrammet frågar efter de fem första bland modulen Monitorings inställningar, under
Ingress och Storage. De når modulen som miljövariabler från ConfigMap
module-monitoring-config i stackship-system, och läses när den startar.
| Miljövariabel | I installationsprogrammet | Standard | Betydelse |
|---|---|---|---|
IngressController__ServiceName |
Ingress Controller Service Name | ingress-nginx-controller |
nginx-kontrollerns Service |
Longhorn__ServiceName |
Longhorn Manager Service Name | longhorn-backend |
Longhorns Service |
Longhorn__MetricsPort |
Longhorn Metrics Port | 9500 |
Porten där Longhorn levererar sina mätvärden |
Longhorn__OverProvisioningPercentage |
Longhorn Storage Over-Provisioning % | 100 |
Se Longhorn |
Longhorn__MinimalAvailablePercentage |
Longhorn Minimal Available % | 25 |
Se Longhorn |
TraefikController__ServiceName |
Frågas inte efter | traefik-metrics |
Traefiks mätvärdestjänst |
TraefikController__MetricsPort |
Frågas inte efter | 9100 |
Porten där Traefik levererar sina mätvärden |
Alerts__RetentionDays |
Frågas inte efter | 30 |
Dagar ett löst larm sparas — se Lagringstid för larm |
Alerts__Notifications__Enabled |
Frågas inte efter | true |
Om modulen försöker mejla larm på nivån Critical — se Larmmejl |
Starta om modulen efter att du har ändrat ConfigMap:
kubectl -n stackship-system rollout restart deployment/module-monitoringUppgraderingar av plattformen behåller ett värde du har ändrat och en nyckel du har lagt till. Alla inställningar som modulen läser står i dess konfigurationsreferens.