Hoppa till innehållet
Stackship-dokumentation English

SentinelAnvändareMaskinöversatt

Så fungerar Sentinel

Regelkontrollerna och analyskörningarna som ger resultat, vad Sentinel läser, vad den skickar till en språkmodell och hur boundaries hålls isär.

Sentinel tar fram resultat på två sätt: med regelkontroller, som inte behöver någon språkmodell, och med analyskörningar, som gör det. Den omfattar varje boundary på plattformen, en boundary i taget.

Regelkontroller

Varannan minut som standard, och under varje analyskörning, läser Sentinel varje boundarys poddar och registrerar direkt ett resultat för vart och ett av följande:

Regel När Allvarlighetsgrad
Slut på minne En container avslutades för att den använde mer minne än sin gräns Hög
Krasch-loop En container misslyckas gång på gång med att starta Hög
Avbildningen kan inte hämtas Containerns avbildning kan inte hämtas eller har ett ogiltigt namn Hög
Containern kan inte skapas Containerns konfiguration hindrar att den skapas Hög
Ingen plats att köras En podd har väntat mer än 5 minuter på en nod som kan ta emot den Medel
Tar inte emot trafik En podd har körts i mer än 10 minuter utan att klara sin hälsokontroll Medel
Startar om upprepade gånger En container har startats om 3 gånger eller fler Medel

Bara avslut under den senaste timmen räknas. Kopior av samma arbetslast som fallerar på samma sätt ger ett resultat, inte ett per kopia.

Analyskörningar

En körning startar när Sentinel startar och sedan var 30:e minut som standard. För varje boundary:

  1. registrerar den körningen, som boundaryns flik Körningar visar;
  2. samlar den in boundaryns bevis: poddar som är ohälsosamma eller har stannat under den senaste timmen, varningshändelser i Kubernetes, Deployments och StatefulSets med färre redo kopior än önskat, plattformens aktiva larm för boundaryns resurser och anslutningar som plattformen blockerat de senaste 24 timmarna, där den registrerar dem;
  3. kör den regelkontrollerna ovan;
  4. låter den en språkmodell läsa bevisen i tre steg — Triage läser allt snabbt, Brain läser det mest talande noggrant och Code föreslår kodändringar — och registrerar de resultat de skriver;
  5. stänger den resultat som den inte längre ser — se Resultat.

Bara en körning pågår åt gången, och nästa startar som standard 30 minuter efter att den förra avslutades.

Språkmodellen är den som plattformens operatör har registrerat och tilldelat Sentinel. Utan en sådan hoppas körningarna över: regelkontrollerna registrerar fortfarande resultat, men inga nya körningar visas på fliken Körningar. Om modellen inte går att nå eller dess svar inte går att läsa registreras körningen som Misslyckad med orsaken, och den stänger inga av de resultat som modellen skrivit tidigare.

Analysera med loggar

För ett resultat om en app, en statisk webbapp eller en containerinstans kan den som får läsa resursens loggar välja Analysera med loggar. Sentinel läser de senaste loggraderna från resursens poddar — med den personens egna behörigheter — maskerar dem och skickar dem tillsammans med resultatets bevis till språkmodellen. Modellens förklaring ersätter resultatets sammanfattning, påverkan, steg och verifiering, och loggraderna sparas på resultatet som bevis. Se Analysera ett resultat med loggar.

Plattformsresultat

Varje körning tittar också på själva plattformen: noder som använder 85 % eller mer av sin processor, sitt minne eller sin lagring, plattformens egna aktiva larm och lagringsvolymernas hälsa. Det modellen hittar där är ett plattformsresultat, som inte hör till någon boundary och bara visas för plattformsadministratörer.

Boundaries hålls isär

  • Varje resultat och varje bevis hör till en boundary, eller till plattformen. Det kan bara läsas via den boundaryn; den som frågar efter en annan boundarys resultat får svaret att det inte finns.
  • Varje anrop till språkmodellen innehåller bara en boundarys bevis. Ett resultat som modellen kopplar till bevis som inte fanns i anropet stannar hos den boundary anropet gällde.

Vad som tas bort innan något sparas eller skickas

Sentinel läser smala delar av Kubernetes-objekt: namn, etiketter, containrars tillstånd och resursgränser, aldrig miljövariabler, kommandorader eller annoteringar. Den text den läser — händelsemeddelanden, larmtexter och loggrader — maskeras så fort Sentinel samlar in den, innan den sparas eller skickas till modellen. Det modellen skriver tillbaka maskeras innan det sparas, och varje svar Sentinel lämnar ut maskeras en gång till. Maskeringen tar bort:

  • inloggningsuppgifter med kända former: nycklar och token från AWS, GitHub, GitLab, Slack, Stripe och Google, JSON Web Tokens, rubriker för privata nycklar, bearer-token, inloggningsuppgifter i URL:er, och värden efter password=, secret=, token=, api_key= och liknande;
  • e-postadresser, utom domänen;
  • IPv4-adresser, utom 127.0.0.1 och 0.0.0.0;
  • värdnamn med tre eller fler delar, utom de två sista: api.team-a.example.com blir [REDACTED].example.com.

Allt som tas bort ersätts med [REDACTED].

Se upp

Maskeringen känner igen former. En hemlighet som ser ut som vanlig text — en slumpmässig sträng utan password= eller liknande framför — passerar rakt igenom, in i resultatet och till språkmodellen. Håll hemligheter borta från loggutdata.