Arkitektur
En selvhostet Status200-installation er en håndfuld containere: én ingress, som hver forespørgsel kommer ind gennem, ét app-image, der gør arbejdet, probes, der kører dine monitorers tjek, og tre datalagre. Denne side viser, hvordan de hænger sammen, hvad hver enkelt gør, og hvilke forbindelser der krydser dit netværk.
En selvhostet Status200-installation
Det viser dette
- Personer når Status200 gennem ingress, som afslutter TLS og sender hver forespørgsel videre til appen: Dashboardet, statussiderne, API'et og hvert ingest-endpoint, som telemetri sendes til.
- Appen læser og skriver sin tilstand i PostgreSQL, gemmer telemetri i ClickHouse og bruger Valkey (den BSD-licenserede fork af Redis 7.2) som cache og til de køer, dens baggrundsjob arbejder sig igennem.
- Probes kan køre inde i din klynge (anbefalet) og/eller andre steder på dit netværk. De kan overvåge:
- Interne/private tjenester bag din firewall.
- Eksterne/offentlige ressourcer på internettet.
- Proberesultater sendes til appen, sættes i kø i Valkey og behandles af baggrundsjobbene ind i dine datalagre. En probe andre steder på dit netværk når appen gennem ingress, på din Status200-URL.
- Telemetri (metrikker, traces, logs og mere) modtages af den samme app og gemmes i ClickHouse.
Hvis du bruger ekstern PostgreSQL, Valkey (eller Redis) eller ClickHouse i stedet for de medfølgende, forbinder appen sig i stedet til dine eksterne endpoints. Det logiske flow forbliver det samme.
Komponenterne
| Komponent | Docker Compose-tjeneste | Helm-chart | Hvad den gør |
|---|---|---|---|
| Ingress | ingress | nginx | Afslutter TLS, betjener dit værtsnavn og dine statussiders domæner og sender hver forespørgsel videre til appen. |
| App | app | app | Dashboardet, statussiderne, API- og ingest-endpoints og, medmindre du skiller dem ud, baggrundsjobbene. |
| Worker | En del af app | worker (slået fra som standard) | Baggrundsjobbene i deres egne pods, så tung købehandling aldrig konkurrerer med API-forespørgsler. |
| Telemetry writer | En del af app | telemetryWriter (slået fra som standard) | Et lag af fast størrelse, der udfører hver ClickHouse-indsættelse, så indsættelserne holdes begrænsede, uanset hvor langt workerne skalerer. |
| Probe | probe-1 | probes | Kører monitortjek og sender resultaterne tilbage. Hver medfølgende probe er en global probe, som alle projekter kan bruge. |
| Runner | runner | runner | Instansens egen Runner, som kan køre AI-koderettelser for alle projekter. Runbook-trin kører på Runnere, som du installerer der, hvor de skal køre. |
| Global Runner | global-runner | globalRunner | En global Runner: den kører JavaScript-trinnene i alle projekter, der ikke vælger deres egen Runner, hvert i en sandkasse, der kun når internettet. Den har sin egen nøgle og intet andet fra serveren. |
| PostgreSQL | postgres | postgresql eller postgresOperator.cnpg | Projekter, monitorer, hændelser, brugere og alle andre indstillinger og tilstande. |
| ClickHouse | clickhouse | clickhouse eller clickhouseOperator.altinity | Logs, metrikker, traces, undtagelser, profiler og monitorlogs. |
| Valkey | valkey | valkey | Cachen, jobkøerne og kortlivet tilstand som ventende push-kvitteringer. |
Alle appens roller er det samme image: Docker Compose kører dem i én app-container, og Helm-chartet kan køre workeren og telemetry writer som deres egne deployments. Hvordan du dimensionerer hvert lag, står i Dimensionering og kapacitetsplanlægning.
Forbindelser ud af dit netværk
Tre forbindelser oprettes, medmindre du ændrer en indstilling:
- Én gang om dagen spørger appen GitHubs API (
api.github.com), om der er kommet en nyere udgivelse. Du slår det fra medupdateCheck.disabled: truei Helm-chartet eller medDISABLE_UPDATE_CHECK=trueiconfig.envpå Docker Compose. - Tilmelder nogen sig med »Underret mig om sikkerhedsrettelser og nye udgivelser« markeret, som den er fra start, sendes personens navn og e-mail, et eventuelt firma og telefonnummer samt din installations adresse og version til
status200.ru. Fjern markeringen på et netværk uden internetadgang. - På Kubernetes falder probes tilbage på de offentlige resolvere
8.8.8.8og1.1.1.1efter din klynges egen DNS. SætdnsConfig.nameserverstil[]for at holde alle opslag på din egen DNS.
Alt andet forbinder sig kun udad, når du slår det til, og hver har en side, der nævner de præcise adresser, der skal tillades:
| Udgående forbindelse | Bruges til | Læs mere |
|---|---|---|
| E-mail (SMTP eller SendGrids API) | Notifikationer og invitationer | SMTP |
| Twilio | Sms og telefonopkald | Twilio-integration |
| Status200s push-relay eller Expo | Mobile push-notifikationer | Push-notifikationer |
| Slack og Microsoft Teams | Notifikationer og handlinger i arbejdsområdet | Slack-integration |
| En LLM-udbyder som OpenAI, Anthropic, Microsoft Foundry eller en model, du selv kører | Status200 AI | LLM-udbydere |
status200.ru | Aktivering af en Enterprise-licens online | Enterprise Edition |
Forbindelser den anden vej – SendGrid, der leverer indgående e-mail, og Slack og Microsoft Teams, der kalder tilbage – kræver, at ingress kan nås fra internettet. Hvilke private adresser appen og probes må nå, bestemmer du: se Adgang til privat netværk.
Status200s logo ligger inde i hver e-mail, som Status200 sender, så det vises selv på et netværk uden internetadgang, og når en e-mail åbnes, bliver ingen anden vært spurgt efter det. Billeder, du selv uploader, som dit eget logo eller en statussides logo, vises fra din Status200-URL, som de, der læser disse e-mails, skal kunne nå.