Weitere Sites anlegen und entfernen
Bisher liess sich eine zweite Site nur importieren, nicht anlegen - der
Entrypoint des Abbilds macht ausschliesslich die Site aus CMK_SITE_ID.
Absicht war das nicht, es fehlte schlicht.
site-create NAME [--password PW] [--expose] [--no-start]
site-delete NAME [--force]
Im Container laeuft "omd create --no-tmpfs"; ohne --no-tmpfs scheitert
es, weil sich dort kein tmpfs einhaengen laesst. Laeuft der Container
nicht im Host-Netz, wird der Apache der Site zusaetzlich auf 0.0.0.0
gebunden - im Host-Netz genuegt 127.0.0.1, und der Proxy kommt trotzdem
hin. Das wird am Container nachgesehen, nicht geraten.
Der eigentliche Punkt sind die Ports. omd vergibt sie selbst weiter, am
laufenden Container nachgemessen:
erste zweite dritte
Oberflaeche 5000 5001 5002
Agent-Receiver 8000 8001 8002
Livestatus 6557 6558 6559
Die Agents einer zweiten Site sprechen also 8001 an, nicht 8000 - das
faellt sonst erst auf, wenn niemand Daten liefert. "site-create" gibt
deshalb beides fertig aus: den Proxy-Pfad mit der richtigen Portnummer
und den Firewall-Eintrag fuer den Receiver, dazu den Hinweis auf den
Standard-Server, falls er eingerichtet ist.
Beim Loeschen war "omd rm" zuerst wirkungslos: es fragt selbst nach, die
Site blieb stehen, waehrend hier Erfolg gemeldet wurde. Jetzt mit dem
globalen -f, und danach wird nachgesehen, ob sie wirklich weg ist. Die
Standard-Site ist geschuetzt - der Entrypoint legt sie ohnehin wieder
an.
In der Oberflaeche unter "Sites im Container verwalten": anlegen mit
Namens- und Kennwortabfrage, entfernen mit Rueckfrage.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2549,6 +2549,8 @@ Eine Dateiauswahl mit Verzeichnisnavigation ist eingebaut.
|
||||
| `sites` | Sites im Container auflisten |
|
||||
| `site-start SITE` / `site-stop SITE` | einzelne Site steuern |
|
||||
| `start-all-sites` | alle Sites starten (wird von systemd aufgerufen) |
|
||||
| `site-create NAME` | weitere Site im Container anlegen – eigene Ports (5001, 8001, …) |
|
||||
| `site-delete NAME` | Site samt Daten entfernen |
|
||||
| `backup …` | Backup als `.tar.gz`-Bundle |
|
||||
| `list` / `verify` / `prune --keep N` | Backups verwalten |
|
||||
| `job list\|add\|set\|del\|run\|auto` | geplante Backups (eigene Zielpfade je Job) |
|
||||
@@ -3054,25 +3056,81 @@ Danach in der Oberfläche prüfen:
|
||||
|
||||
## 18. Mehrere Sites in einem Container
|
||||
|
||||
Der Checkmk-Entrypoint legt beim Start nur die Site aus `CMK_SITE_ID` an und
|
||||
startet auch nur diese. Weitere Sites (z. B. mehrere importierte) existieren im
|
||||
Bind-Mount, werden aber nach einem Neustart nicht automatisch hochgefahren.
|
||||
Der Entrypoint des Abbilds legt nur die Site aus `CMK_SITE_ID` an und startet
|
||||
auch nur diese. Weitere Sites lassen sich aber anlegen – und mit dem Proxy
|
||||
davor liegen sie nebeneinander unter einem einzigen Port:
|
||||
|
||||
Deshalb:
|
||||
```bash
|
||||
./scripts/cmk-manage.sh site-create zweite
|
||||
./scripts/cmk-manage.sh site-create kunde2 --password geheim123
|
||||
./scripts/cmk-manage.sh sites
|
||||
./scripts/cmk-manage.sh site-delete zweite
|
||||
```
|
||||
|
||||
### 18.1 Eigene Ports je Site
|
||||
|
||||
`omd` vergibt die Ports selbst weiter – daran hängt alles Weitere:
|
||||
|
||||
| | erste Site | zweite | dritte |
|
||||
|---|---|---|---|
|
||||
| Oberfläche (Apache) | 5000 | 5001 | 5002 |
|
||||
| **Agent-Receiver** | 8000 | **8001** | **8002** |
|
||||
| Livestatus | 6557 | 6558 | 6559 |
|
||||
|
||||
Zwei Dinge folgen daraus:
|
||||
|
||||
1. **Im Proxy** bekommt jede Site ihren Pfad:
|
||||
|
||||
```bash
|
||||
./scripts/cmk-manage.sh proxy edit --domain <name> --location /zweite=127.0.0.1:5001
|
||||
./scripts/cmk-manage.sh proxy reload
|
||||
```
|
||||
|
||||
Danach liegt sie neben der ersten: `https://<ip>/cmk/` und
|
||||
`https://<ip>/zweite/`. Checkmk kommt mit dem Präfix zurecht, weil der
|
||||
Site-Name ohnehin Teil jeder Adresse ist – siehe
|
||||
[Kapitel 10.12](#1012-weitere-dienste-dazunehmen--beispiel-grafana).
|
||||
|
||||
2. **In der Firewall** sprechen die Agents dieser Site einen anderen Port an:
|
||||
|
||||
```bash
|
||||
./scripts/cmk-manage.sh config set FW_EXTRA_PORTS "8001/tcp=Agent-Receiver zweite"
|
||||
sudo ./scripts/cmk-manage.sh firewall open --apply
|
||||
```
|
||||
|
||||
`site-create` gibt genau diese beiden Befehle mit den richtigen Portnummern
|
||||
aus, dazu die Erinnerung an den Standard-Server für den IP-Zugang, falls er
|
||||
eingerichtet ist.
|
||||
|
||||
### 18.2 Was beim Anlegen passiert
|
||||
|
||||
Im Container läuft `omd create --no-tmpfs` – ohne `--no-tmpfs` scheitert es,
|
||||
weil sich im Container kein tmpfs einhängen lässt. Läuft der Container **nicht**
|
||||
im Host-Netz, wird der Apache der Site zusätzlich auf `0.0.0.0` gebunden, sonst
|
||||
wäre sie von außen nicht erreichbar; im Host-Netz genügt `127.0.0.1`, und der
|
||||
Proxy kommt trotzdem hin. Ohne `--password` erzeugt `omd` eines und zeigt es an.
|
||||
|
||||
### 18.3 Nach einem Neustart
|
||||
|
||||
```bash
|
||||
sudo ./scripts/cmk-manage.sh start-all-sites
|
||||
```
|
||||
|
||||
Dieses Kommando wird von der systemd-Unit (`ExecStartPost`) bzw. der
|
||||
Quadlet-Unit automatisch nach dem Containerstart ausgeführt und startet alle
|
||||
vorhandenen Sites.
|
||||
Der Entrypoint startet nur die Standard-Site. Dieses Kommando wird von der
|
||||
systemd-Unit (`ExecStartPost`) bzw. der Quadlet-Unit automatisch nach dem
|
||||
Containerstart ausgeführt und fährt alle vorhandenen Sites hoch.
|
||||
|
||||
> **Empfehlung:** Für sauber getrennte Umgebungen lieber je Site ein eigenes
|
||||
> Projektverzeichnis mit eigener `.env` betreiben. Da beide Container im
|
||||
> Host-Netzwerk laufen, kann pro Host allerdings nur **ein** Checkmk-Container
|
||||
> die Ports 5000/8000 belegen – für echte Mehrfachinstanzen dann getrennte
|
||||
> Hosts oder eine Bridge-Netzwerk-Variante verwenden.
|
||||
### 18.4 Wann lieber getrennte Projekte?
|
||||
|
||||
Mehrere Sites in einem Container teilen sich Abbild und Version – ein
|
||||
`omd update` betrifft alle. Für sauber getrennte Umgebungen (unterschiedliche
|
||||
Checkmk-Versionen, getrennte Wartungsfenster, verschiedene Kunden) ist je Site
|
||||
ein eigenes Projektverzeichnis mit eigener `.env` besser. Da beide Container im
|
||||
Host-Netzwerk laufen, kann pro Host allerdings nur **ein** Checkmk-Container die
|
||||
Ports 5000/8000 belegen – für echte Mehrfachinstanzen dann getrennte Hosts oder
|
||||
eine Bridge-Netzwerk-Variante.
|
||||
|
||||
In der Oberfläche liegt alles unter **Sites im Container verwalten**.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user