Hoppa till innehåll
Arkitektur

Arkitektur

Visa som Markdown

En egeninstallerad Status200 består av en handfull containrar: en ingress som varje begäran kommer in genom, en app-image som gör jobbet, prober som kör dina övervakares kontroller och tre datalager. Den här sidan visar hur de hänger ihop, vad var och en gör och vilka anslutningar som korsar ditt nätverk.

flowchart TB People["Personer och<br/>webbläsare"] Senders["Telemetriavsändare:<br/>OpenTelemetry,<br/>Fluent Bit,<br/>syslog, agenter"] Targets["Det du<br/>övervakar:<br/>internt<br/>och publikt"] subgraph Install["Ditt nätverk"] direction TB Ingress["Ingress<br/>(Nginx, TLS)"] App["App<br/>instrumentpaneler,<br/>statussidor,<br/>API, inmatning,<br/>bakgrundsjobb"] Runner["Runner"] Probe["Prober"] subgraph Data["Datalager"] direction LR Postgres[("PostgreSQL<br/>konfiguration<br/>och tillstånd")] ClickHouse[("ClickHouse<br/>loggar,<br/>mätvärden,<br/>spår")] Valkey[("Valkey<br/>cache och<br/>köer")] end end People -->|"HTTPS"| Ingress Senders -->|"OTLP, HTTPS"| Ingress Ingress --> App Runner -->|"ta jobb,<br/>skicka<br/>resultat"| App Probe -->|"hämta arbete,<br/>skicka<br/>resultat"| App Probe -->|"HTTP, TCP, ping,<br/>DNS, SNMP"| Targets App --> Postgres App --> ClickHouse App --> Valkey Targets ~~~ Probe

En egeninstallerad Status200

Det här visar bilden

  • Personer når Status200 genom ingressen, som avslutar TLS och skickar varje begäran vidare till appen: Dashboard, statussidorna, API:et och varje inmatningsslutpunkt som telemetri skickas till.
  • Appen läser och skriver sitt tillstånd i PostgreSQL, sparar telemetri i ClickHouse och använder Valkey (den BSD-licensierade forken av Redis 7.2) som cache och för de köer som dess bakgrundsjobb arbetar sig igenom.
  • Prober kan köras i ditt kluster (rekommenderas) och/eller någon annanstans i ditt nätverk. De kan övervaka:
    • Interna/privata tjänster bakom din brandvägg.
    • Externa/publika resurser på internet.
  • Probresultat skickas till appen, köas i Valkey och bearbetas av bakgrundsjobben in i dina datalager. En prob någon annanstans i ditt nätverk når appen genom ingressen, på din Status200-URL.
  • Telemetri (mätvärden, spår, loggar och mer) tas emot av samma app och lagras i ClickHouse.
Obs

Om du använder en extern PostgreSQL, Valkey (eller Redis) eller ClickHouse i stället för de medföljande ansluter appen i stället till dina externa slutpunkter. Det logiska flödet förblir detsamma.

Komponenterna

KomponentDocker Compose-tjänstHelm-chartVad den gör
IngressingressnginxAvslutar TLS, betjänar ditt värdnamn och dina statussidors domäner och skickar varje begäran vidare till appen.
AppappappDashboard, statussidorna, API- och inmatningsslutpunkterna och, om du inte delar upp dem, bakgrundsjobben.
WorkerEn del av appworker (av som standard)Bakgrundsjobben i egna poddar, så att tung köbearbetning aldrig konkurrerar med API-begäranden.
Telemetry writerEn del av apptelemetryWriter (av som standard)En nivå med fast storlek som gör varje ClickHouse-insättning, så att insättningarna håller sig begränsade hur långt workers än skalar.
Probprobe-1probesKör övervakarkontroller och skickar tillbaka resultaten. Varje medföljande prob är en global prob som alla projekt kan använda.
RunnerrunnerrunnerInstansens egen Runner, som kan köra AI-kodkorrigeringar för alla projekt. Runbook-steg körs på Runners som du installerar där de ska köras.
Global Runnerglobal-runnerglobalRunnerEn global Runner: den kör JavaScript-stegen i alla projekt som inte väljer en egen Runner, vart och ett i en sandlåda som bara når internet. Den har sin egen nyckel och inget annat från servern.
PostgreSQLpostgrespostgresql, eller postgresOperator.cnpgProjekt, övervakare, incidenter, användare och alla andra inställningar och tillstånd.
ClickHouseclickhouseclickhouse, eller clickhouseOperator.altinityLoggar, mätvärden, spår, undantag, profiler och övervakarloggar.
ValkeyvalkeyvalkeyCachen, jobbköerna och kortlivat tillstånd som väntande push-kvitton.

Alla appens roller är samma image: Docker Compose kör dem i en enda app-container, och Helm-chartet kan köra worker och telemetry writer som egna deployments. Hur du dimensionerar varje nivå står i Dimensionering och kapacitetsplanering.

Anslutningar ut från ditt nätverk

Tre anslutningar görs om du inte ändrar en inställning:

  • En gång om dagen frågar appen GitHubs API (api.github.com) om en nyare version har kommit. Du stänger av det med updateCheck.disabled: true i Helm-chartet, eller med DISABLE_UPDATE_CHECK=true i config.env med Docker Compose.
  • Registrerar sig någon med ”Meddela mig om säkerhetsuppdateringar och nya versioner” markerad, som den är från början, skickas personens namn och e-post, eventuellt företag och telefonnummer samt din installations adress och version till status200.ru. Avmarkera den i ett nätverk utan internetåtkomst.
  • På Kubernetes faller prober tillbaka på de publika resolvrarna 8.8.8.8 och 1.1.1.1 efter klustrets egen DNS. Sätt dnsConfig.nameservers till [] för att hålla alla uppslag på din egen DNS.

Allt annat ansluter bara utåt när du slår på det, och var och en har en sida som anger exakt vilka adresser som ska tillåtas:

Utgående anslutningAnvänds tillLäs mer
E-post (SMTP, eller SendGrids API)Aviseringar och inbjudningarSMTP
TwilioSMS och telefonsamtalTwilio-integration
Status200s push-relä, eller ExpoMobila push-aviseringarPush-aviseringar
Slack och Microsoft TeamsAviseringar och åtgärder i arbetsytanSlack-integration
En LLM-leverantör, som OpenAI, Anthropic, Microsoft Foundry eller en modell du kör självStatus200 AILLM-leverantörer
status200.ruAktivera en Enterprise-licens onlineEnterprise Edition

Anslutningar åt andra hållet – SendGrid som levererar inkommande e-post, Slack och Microsoft Teams som anropar tillbaka – kräver att ingressen går att nå från internet. Vilka privata adresser appen och proberna får nå bestämmer du: se Åtkomst till privat nätverk.

Status200s logotyp finns inuti varje e-postmeddelande som Status200 skickar, så den visas även i ett nätverk utan internetåtkomst, och när ett meddelande öppnas efterfrågas ingenting från någon annan värd. Bilder som du laddar upp själv, som din egen logotyp eller en statussidas, visas från din Status200-URL, som de som läser meddelandena måste kunna nå.

Nästa steg