Der Kern des Problems, und die Stelle, an der man am laengsten sucht: "no_proxy=localhost" deckt eine Anfrage an 127.0.0.1 NICHT ab, und umgekehrt genauso wenig. An curl 7.88 nachgemessen: no_proxy an 127.0.0.1 an localhost localhost ueber den Proxy direkt 127.0.0.1 direkt ueber den Proxy In Firmennetzen steht oft nur "localhost" in der Ausnahmeliste - dann laeuft ausgerechnet der Zugriff auf die Schnittstelle des Proxy Managers ueber den Proxy, obwohl no_proxy dem Anschein nach gesetzt ist. Deshalb NPM_API_HOST: damit laesst sich die Schnittstelle als "localhost" ansprechen, ohne die Ausnahmeliste zu aendern - was im Kundennetz oft nicht in der eigenen Hand liegt. Vorgabe bleibt 127.0.0.1, denn das kommt ohne Namensaufloesung aus und zeigt immer auf IPv4. "noproxy" prueft jetzt beide Schreibweisen einzeln und sagt, welche fehlt, statt nur "geht nicht" zu melden: http://127.0.0.1:81/ geht an den Proxy http://localhost:81/ direkt [ WARN ] Nur 'localhost' ist ausgenommen, 127.0.0.1 nicht. Bis das geaendert ist, hilft sofort: cmk-manage.sh config set NPM_API_HOST localhost Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
249 lines
11 KiB
Bash
249 lines
11 KiB
Bash
# =====================================================================
|
|
# Checkmk + NGINX Proxy Manager - zentrale Konfiguration
|
|
# Kopieren nach ".env" und anpassen: cp .env.example .env
|
|
#
|
|
# Diese Datei ist die EINZIGE Quelle der Wahrheit. Sie wird gelesen von
|
|
# * docker-compose.yml / podman-compose (Variablen-Ersetzung)
|
|
# * der systemd-Unit (EnvironmentFile=)
|
|
# * scripts/cmk-manage.sh (source)
|
|
# Das Verwaltungsskript SCHREIBT hier nur hinein (z.B. CMK_IMAGE),
|
|
# es haelt keine zweite Konfiguration.
|
|
#
|
|
# Werte mit Leerzeichen bitte in Anfuehrungszeichen setzen.
|
|
# =====================================================================
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Container-Runtime (leer = automatische Erkennung: docker oder podman)
|
|
# ---------------------------------------------------------------------
|
|
CMK_RUNTIME=
|
|
|
|
# =====================================================================
|
|
# CHECKMK-IMAGE
|
|
# =====================================================================
|
|
# Das ist der einzige Wert, den compose/systemd tatsaechlich verwendet.
|
|
#
|
|
# IMMER VOLLQUALIFIZIERT ANGEBEN (mit Registry-Praefix)!
|
|
# Podman loest kurze Namen ueber "unqualified-search-registries" auf -
|
|
# auf RHEL steht dort registry.access.redhat.com an erster Stelle. Ein
|
|
# kurzer Name wie "checkmk/check-mk-enterprise" wird deshalb dort gesucht
|
|
# und nicht gefunden ("image not known") oder es erscheint eine Abfrage.
|
|
#
|
|
# Beispiele:
|
|
# docker.io/checkmk/check-mk-raw:2.3.0-latest
|
|
# registry.checkmk.com/enterprise/check-mk-enterprise:2.3.0p23
|
|
# localhost/checkmk/check-mk-enterprise:2.3.0p23 (aus Tarball geladen)
|
|
CMK_IMAGE=docker.io/checkmk/check-mk-raw:2.3.0-latest
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Nur fuer den Image-Downloader: scripts/cmk-manage.sh image ...
|
|
# Daraus wird CMK_IMAGE ermittelt und oben automatisch eingetragen.
|
|
# ---------------------------------------------------------------------
|
|
# Edition:
|
|
# raw Docker Hub, frei (bis 2.4)
|
|
# community Docker Hub, frei (ab 2.5, Nachfolger von "raw")
|
|
# enterprise NUR registry.checkmk.com oder Tarball - NICHT auf Docker Hub!
|
|
# pro Docker Hub (ab 2.5, Nachfolger von "enterprise")
|
|
# cloud Docker Hub
|
|
# managed Docker Hub (bis 2.4)
|
|
# ultimate Docker Hub (ab 2.5)
|
|
# ultimatemt Docker Hub (ab 2.5, Nachfolger von "managed")
|
|
CMK_EDITION=raw
|
|
|
|
# Konkrete Version. Fuer den Tarball-Download muss eine exakte Version
|
|
# angegeben werden (z.B. 2.3.0p23), "-latest" funktioniert dort nicht.
|
|
CMK_VERSION=2.3.0-latest
|
|
|
|
# Woher soll das Image geholt werden, wenn es lokal fehlt?
|
|
# auto erst Registry, dann Downloadportal (Vorgabe)
|
|
# registry nur aus der Registry
|
|
# download nur als Tarball vom Downloadportal
|
|
# Hintergrund: Registries halten meist nur die juengsten Patchstaende
|
|
# vor. Eine aeltere Version - etwa die einer zu migrierenden Site -
|
|
# liegt dann nur noch im Downloadportal.
|
|
CMK_IMAGE_SOURCE=auto
|
|
|
|
# --- Bezugsweg 1: private Registry (Enterprise) ----------------------
|
|
# Zugangsdaten aus dem Checkmk-Kundenportal (portal.checkmk.com)
|
|
CMK_REGISTRY=registry.checkmk.com
|
|
CMK_REGISTRY_USER=
|
|
CMK_REGISTRY_PASSWORD=
|
|
|
|
# --- Bezugsweg 2: Image-Tarball vom Download-Portal ------------------
|
|
# Zugangsdaten der Checkmk-Downloadseite. Der Downloader probiert die
|
|
# ueblichen Dateinamen unter <BASEURL>/<version>/ durch; mit
|
|
# CMK_DOWNLOAD_URL laesst sich die vollstaendige URL fest vorgeben.
|
|
CMK_DOWNLOAD_BASEURL=https://download.checkmk.com/checkmk
|
|
CMK_DOWNLOAD_URL=
|
|
CMK_DOWNLOAD_USER=
|
|
CMK_DOWNLOAD_PASSWORD=
|
|
|
|
# =====================================================================
|
|
# CHECKMK-LAUFZEIT
|
|
# =====================================================================
|
|
CMK_CONTAINER_NAME=checkmk
|
|
CMK_HOSTNAME=checkmk
|
|
|
|
# Site, die der Container beim Start automatisch anlegt/startet.
|
|
# Bei einer Migration hier den Namen der importierten Site eintragen!
|
|
CMK_SITE_ID=cmk
|
|
|
|
# Initiales Passwort fuer den Benutzer "cmkadmin" (nur bei Neuanlage relevant)
|
|
CMK_PASSWORD=bitte-aendern
|
|
|
|
# Livestatus via TCP (Port 6557) fuer verteilte Umgebungen: on / off
|
|
CMK_LIVESTATUS_TCP=off
|
|
|
|
# Optionaler SMTP-Relay fuer Benachrichtigungen
|
|
MAIL_RELAY_HOST=
|
|
|
|
# Zeitzone
|
|
TZ=Europe/Berlin
|
|
|
|
# =====================================================================
|
|
# NGINX PROXY MANAGER (HTTPS: Let's Encrypt ODER selbstsigniert)
|
|
# =====================================================================
|
|
# Ebenfalls vollqualifiziert - siehe Hinweis oben zu Podman!
|
|
# Soll der Proxy-Manager-Container ueberhaupt betrieben werden?
|
|
# on = wird gebaut und gestartet (Vorgabe)
|
|
# off = wird weder angelegt noch gestartet - sinnvoll, wenn die
|
|
# HTTPS-Terminierung ein bereits vorhandener NGINX auf einem
|
|
# anderen System uebernimmt. Der leitet dann auf Port 5000 weiter.
|
|
# Die Daten unter ./data/npm bleiben beim Abschalten erhalten.
|
|
# Umschalten ueber das Menue oder: ./scripts/cmk-manage.sh npm-enable off
|
|
NPM_ENABLED=on
|
|
|
|
NPM_IMAGE=docker.io/jc21/nginx-proxy-manager:2
|
|
NPM_CONTAINER_NAME=nginx-proxy-manager
|
|
NPM_DISABLE_IPV6=true
|
|
|
|
# Erstes Administratorkonto.
|
|
# WICHTIG: Ohne diese beiden Werte zeigt der Proxy Manager beim ersten
|
|
# Aufruf einen Einrichtungsassistenten im Browser - die frueher ueblichen
|
|
# Standardzugangsdaten admin@example.com/changeme gibt es seit 2.15 NICHT
|
|
# mehr. Mit den Werten legt der Container das Konto beim ERSTEN Start
|
|
# selbst an (nur bei leerer Datenbank) und die REST-API ist sofort
|
|
# nutzbar - damit funktioniert "cmk-manage.sh proxy ...".
|
|
# Ist das Konto bereits von Hand angelegt, hier dessen Daten eintragen.
|
|
NPM_ADMIN_EMAIL=admin@example.com
|
|
NPM_ADMIN_PASSWORD=bitte-aendern-mindestens-8-zeichen
|
|
|
|
# Port der Adminoberflaeche. Vorgabe im Image ist fest 81; ein abweichender
|
|
# Port wird ueber einen zusaetzlichen nginx-Server bereitgestellt.
|
|
# NICHT von Hand aendern - dabei muss die nginx-Zusatzdatei mitgezogen werden:
|
|
# ./scripts/cmk-manage.sh npm-port 10443
|
|
# oder im Menue unter "Einstellungen".
|
|
NPM_ADMIN_PORT=81
|
|
|
|
# Unter welchem Namen die Schnittstelle des Proxy Managers angesprochen
|
|
# wird. Wichtig nur in Netzen mit Zwangsproxy: no_proxy vergleicht NAMEN,
|
|
# nicht Adressen - steht dort nur "localhost", laeuft eine Anfrage an
|
|
# 127.0.0.1 trotzdem ueber den Proxy. Dann hier auf localhost stellen.
|
|
NPM_API_HOST=127.0.0.1
|
|
|
|
# =====================================================================
|
|
# TERMINAL-BROWSER (lokale Bedienung des Proxy Managers)
|
|
# Fuer den Fall, dass Port 81 von aussen nicht erreichbar ist.
|
|
# Aufruf: ./scripts/cmk-manage.sh browser
|
|
# =====================================================================
|
|
# Vorgaben fuer "cmk-manage.sh proxy add" (Proxy-Host fuer Checkmk)
|
|
PROXY_DOMAIN=
|
|
PROXY_FORWARD_HOST=127.0.0.1
|
|
PROXY_FORWARD_PORT=5000
|
|
|
|
# Startseite des Browsers. Leer = automatisch aus NPM_ADMIN_PORT abgeleitet.
|
|
NPM_ADMIN_URL=
|
|
|
|
# Vorgabe-Engine: browsh | carbonyl | links | w3m | lynx | shell
|
|
# ACHTUNG: nur browsh und carbonyl koennen JavaScript und damit die
|
|
# Oberflaeche des Proxy Managers darstellen.
|
|
BROWSER_ENGINE=browsh
|
|
|
|
# Images der Engines (vollqualifiziert - siehe Podman-Hinweis oben)
|
|
BROWSH_IMAGE=docker.io/browsh/browsh:v1.8.3
|
|
CARBONYL_IMAGE=docker.io/fathyb/carbonyl:latest
|
|
|
|
# Selbst gebautes Werkzeug-Image (Textbrowser, curl, jq, openssl).
|
|
# Leer lassen - das Skript waehlt automatisch den zur Runtime passenden
|
|
# Namen (Podman braucht das Praefix "localhost/", Docker darf es nicht haben).
|
|
BROWSER_TOOLS_IMAGE=
|
|
|
|
# =====================================================================
|
|
# PFADE (relativ zum Projektverzeichnis)
|
|
# Ausschliesslich Bind-Mounts - keine Docker/Podman-Volumes!
|
|
# =====================================================================
|
|
CMK_DATA_DIR=./data/checkmk/sites
|
|
NPM_DATA_DIR=./data/npm/data
|
|
NPM_LE_DIR=./data/npm/letsencrypt
|
|
|
|
# Ablage fuer MANUELLE Backups und Migrations-Bundles.
|
|
# Geplante Jobs bringen ihr eigenes Zielverzeichnis mit (backup-jobs.conf).
|
|
BACKUP_DIR=./backups
|
|
|
|
# Sollen die Backup-Jobs automatisch per cron laufen?
|
|
# Umschalten ueber das Menue oder: ./scripts/cmk-manage.sh job auto on
|
|
BACKUP_AUTO=off
|
|
IMAGE_DIR=./images
|
|
|
|
# =====================================================================
|
|
# SELBSTSIGNIERTES ZERTIFIKAT (Vorgaben fuer "cmk-manage.sh cert")
|
|
# =====================================================================
|
|
CERT_DOMAIN=checkmk.example.local
|
|
CERT_DAYS=3650
|
|
CERT_COUNTRY=DE
|
|
CERT_ORG="Beispiel GmbH"
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Firewall: was von aussen erreichbar sein muss
|
|
#
|
|
# Diese Werte oeffnen nichts von selbst - sie sagen "cmk-manage.sh
|
|
# firewall", welche Ports dieser Aufbau braucht.
|
|
# ---------------------------------------------------------------------
|
|
|
|
# Rolle im verteilten Monitoring:
|
|
# single - eigenstaendige Site (Vorgabe)
|
|
# central - Zentrale; baut die Verbindungen selbst auf, braucht
|
|
# eingehend nichts zusaetzlich
|
|
# remote - Remote-Site; die Zentrale fragt hier Livestatus (6557) ab,
|
|
# dazu muss CMK_LIVESTATUS_TCP=on gesetzt sein
|
|
FW_ROLE=single
|
|
|
|
# Event Console: Syslog annehmen - off, udp, tcp oder beide (Port 514)
|
|
FW_EC_SYSLOG=off
|
|
|
|
# Event Console: SNMP-Traps annehmen (Port 162/udp)
|
|
FW_EC_SNMPTRAP=off
|
|
|
|
# Event Console: Status und Ereignisse ueber TCP (Port 6558)
|
|
FW_EC_TCP=off
|
|
|
|
# Laeuft auf diesem Host ein Checkmk-Agent, der im Pull-Betrieb
|
|
# abgefragt wird? (Port 6556/tcp)
|
|
FW_AGENT=off
|
|
|
|
# Weitere Ports, die mitgeprueft werden sollen - durch Komma getrennt,
|
|
# Beschreibung nach dem Gleichheitszeichen. Ohne Protokoll gilt tcp.
|
|
# Enthaelt eine Beschreibung Leerzeichen, gehoert der ganze Wert in
|
|
# Anfuehrungszeichen (das erledigt "cmk-manage.sh config set" selbst).
|
|
# FW_EXTRA_PORTS=3000/tcp=Grafana,5667/tcp=NSCA,514/udp=Syslog
|
|
FW_EXTRA_PORTS=
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Von aussen geliefertes Zertifikat
|
|
#
|
|
# Wird das Zertifikat von einer fremden Stelle in ein Verzeichnis
|
|
# gelegt und beim Erneuern dort ersetzt (gleicher Dateiname, neuer
|
|
# Inhalt), dann zeigt der Proxy Manager auf diese Dateien, statt sie zu
|
|
# kopieren. Das Verzeichnis wird schreibgeschuetzt als /certs in den
|
|
# Container gehaengt - nach einer Aenderung ist ein "up" noetig.
|
|
#
|
|
# cmk-manage.sh cert external --domain kunde.example.com
|
|
# ---------------------------------------------------------------------
|
|
CERT_EXTERNAL_DIR=./data/npm/external-certs
|
|
CERT_EXTERNAL_FULLCHAIN=fullchain.pem
|
|
CERT_EXTERNAL_KEY=privkey.pem
|
|
|
|
# Taeglich nachsehen, ob die Datei ausgetauscht wurde, und nginx dann
|
|
# neu laden. Ohne das liefert nginx bis zum naechsten Neustart weiter
|
|
# das alte Zertifikat.
|
|
CERT_EXTERNAL_WATCH=off
|