Windows Server registrieren

CMK version: 2.3.0p40 CME
OS version: Windows Server 2025

Error message: Request failed with code 404 Not Found: Not Found

Ich versuche in einer meiner Sites zwei Windows 2025 Server zu registrieren und scheitere. Die Linux-Server waren kein Problem. Ich versuche es wie folgt:

C:\ProgramData\checkmk\agent>bin\cmk-agent-ctl.exe -vv register --trust-cert --server master.example.com:8000 --site slavesite --user omdadmin --hostname host.domain.lan

Das Ergebnis ist:

Request failed with code 404 Not Found: Not Found

Der Host existiert selbstverständlich in der CMK-Site. Lasse ich den Port 8000 weg, dann bekomme ich:

Failed to discover agent receiver port using https.

Trage ich statt der Slave-Site die Master-Site ein bekomme ich:

Request failed with code 405 Method Not Allowed: Wrong site - Details: This host is monitored on the site slave, but you tried to register it at the site master.

Man sieht also sehr schön: Er kennt den host und die Site. Er weiss auch zu welcher Site der Host gehört.

Bei den Linux-Agents brauche ich den ganzen Paramter foo nicht, ich werde einfach nur nach dem Hostnamen, User und Passwort gefragt, das war’s.

Gibt es eine Lösung ohne, dass ich mir ein CMK-Upgrade antun muss?

Hallo Matthias,

wenn du mehre CMK Instanzen (Slaves) auf dem selben Server betreibst, dĂĽrften die unterschiedliche Agent Receiver Ports haben.

Einfach mal mit omd config prĂĽfen.

Auch Sinnvoll unter Windows, ob der Port erreichbar ist:

PS: Test-NetConnection SERVER -Port 8000

LG Simon

1 Like

Danke, aber die Verbindung zum Port 8000 ist ĂĽberhaupt nicht das Problem.

Der Master ist alleine, die Sites sind remote Sites. Es funktioniert auch alles. Linuxe lassen sich von der Site registrieren. Von anderen Remote-Sites aus geht auch alles. Nur bei der einen Remote-Site lassen sich 2 Windows 2025 Server nicht registrieren. AFAIK hat die registierung auch nichts mit den Site-Instanzen etwas zu tun sondern läuft nur zwischen dem Host und dem Master ab.

Es geht war aus meiner Frage hervor dass das funktioniert, aber TNC ist mit der Port 8000 Kommunikation auch zufrieden.

Ich hol das mal nach oben, vielleicht kann mir doch jemand helfen …

Nö - die TLS Registrierung erfolgt immer zwischen Host und der Site welche diesen Host überwacht. Der Master hat hier normal nix zu sagen.

Um vielleicht etwas sagen zu können wäre der komplette Output der versuchten Registrierung hilfreich.

Die Schreibweise bei der Registrierung ist auch nicht so toll und wie gesagt falls die Slave Site auf dem gleichen Host wie der Master läuft hat diese bestimmt nicht Port 8000.
Am besten ist einfach den Port weglassen und den Agent Controller selber den Port finden lassen.

Wie in anderen Post ich auch schon mal geschrieben hab sehen bei mir die Registrierungen im Windows meist so aus.

$ComputerName = $env:COMPUTERNAME.ToLower() 
$cmdPath = "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" 
$cmdArgList = @( 
	"register", 
	"--trust-cert", 
	"-s", "CMKSERVER", 
	"-i", "MONITORINGSITE", 
	"-H", "$($ComputerName)", 
	"-U", "user", 
	"-P", "password"
	) 
& $cmdPath $cmdArgList

mein quick’n’dirty zweizeiler für die windows clients:

cd “C:\Program Files (x86)\checkmk\service”
./cmk-agent-ctl.exe register --hostname $env:computername.ToLower() --server DEINSERVERHOSTNAME:8004 --trust-cert --site DEINSITENAME --user DEINAUTOMATENUSER --password “PASSWORTVOMAUTOMATENUSER”

Danke so weit, nur funktioniert das halt nicht. 8004 geht so wie so nicht bei mir, wenn dann 8000. Die Sites sind echte Sites also an ganz anderen Orten.

PS C:\Program Files (x86)\checkmk\service> ./cmk-agent-ctl.exe register --hostname w2025dc01.stkk.lan --server nagios.stkk.lan:8000 --trust-cert --site STKK --user omdadmin --password “xxx”
[2026-03-31 14:55:18.543035 +02:00] ERROR [cmk_agent_ctl] src\main.rs:29: Error registering existing host at https://nagios.stkk.lan:8000/STKK

Caused by:
Request failed with code 404 Not Found: Not Found

image

Wie gesagt: Linuxe in diesem Netz und für diese Seite lassen sich einfach so per “cmk-update-agent register” registrieren.

Das hat nix mit dem

zu tun - das Erste ist die Agent Bakery Registration und das Zweite ist eine TLS Registration. In einer verteilten Umgebung kann Nr.1 gegen die Slaves oder die Zentrale erfolgen und Nr.2 immer nur gegen den Host von welchem aus das System ĂĽberwacht wird.

Und wie ich schon geschrieben hab bitte im TLS Register Befehl nie den Port beim Server direkt mit angeben.

Danke, dann muss ich anders fragen: Was muss ich auf einem Windows-Server tun um diese Meldung weg zubekommen:

Version: 2.3.0p40, OS: windows, TLS is not activated on monitored host (see details)WARN, Update error: The agent updater is not registered at the deployment serverWARN, No successful connect to server yetWARN, Agent plug-ins: 6, Local checks: 0

Es mĂĽssen beide Registration Commands ausgefĂĽhrt werden.

$cmdArgList = @( 
    'register', 
    '--trust-cert', 
    '-s', "$($ServerName)", 
    '-i', "$($Site)", 
    '-H', "$($ComputerName)", 
    '-U', "$($User)", 
    '-P', "$($Secret)"
) 
Start-Process "${env:ProgramFiles(x86)}\checkmk\service\cmk-agent-ctl.exe" -ArgumentList $cmdArgList -PassThru -NoNewWindow | Wait-Process

$cmdArgList = @( 
    'updater',
    'register', 
    '-s', "$($ServerName)", 
    '-i', "$($Site)", 
    '-H', "$($ComputerName)", 
    '-p', 'https', 
    '-U', "$($User)", 
    '-S', "$($Secret)", 
    '-v' ) 
Start-Process "${env:ProgramFiles(x86)}\checkmk\service\check_mk_agent.exe" -ArgumentList $cmdArgList -PassThru -NoNewWindow | Wait-Process

Hierbei ist wie schon geschrieben zu beachten

  • cmk-agent-ctl.exe erfolgt gegen den Server welcher diesen Host ĂĽberwachen soll
  • “check_mk_agent.exe updater register” ist abhängig davon ob die verteilte Agent Bakery benutzt wird oder nicht - ohne verteilte Agent Bakery ist es der Zentrale Server als Ziel mit verteilter Agent Bakery ist das Ziel hier der Server auf welcher der Host ĂĽberwacht wird.

Danke, folgendes ist das Ergebnis:

PS C:\Users\administrator.STKK\Documents> .\reg1.ps1
 -- cmk-agent-ctl -------
[2026-04-01 15:39:37.869884 +02:00] ERROR [cmk_agent_ctl] src\main.rs:29: Failed to discover agent receiver port from Checkmk REST API, both with http and https. Run with verbose output to see errors.
PS C:\Users\administrator.STKK\Documents>
PS C:\Users\administrator.STKK\Documents> .\reg2.ps1
 -- check_mk_agent -------
Updated the certificate store "C:\ProgramData\checkmk\agent\config\cas\all_certs.pem" with 1 certificate(s)
Going to register agent at deployment server
Response without json Content-Type
404 Client Error: Not Found for url: https://master.domain.de/stkk/check_mk/register_agent.py

Hier wäre dann wohl mal die Ausgabe mit Verbose relevant.

Für den zweiten Fehler sieht es ähnlich aus - gibt es die URL aus der Fehlermeldung überhaupt so? Ein 404 bedeutet ja URL gibts nicht.

Stimmt. Hätte ich den passenden Parameter ermitteln können hätte ich es auch schon so gepostet. -v und –verbose geht nicht. Das "usage” ist leider auch keine Hilfe:

Usage: cmk-agent-ctl.exe register [OPTIONS] --server <SERVER_SPEC> --site --user --hostname

Da "$Site” nicht eindeutig ist habe ich die Slave-Site genommen. Klar, wenn er da den Master fragt hat er die nicht. Nehme ich den Site-Namen des Master bekomme ich:

 -- check_mk_agent -------
Updated the certificate store "C:\ProgramData\checkmk\agent\config\cas\all_certs.pem" with 1 certificate(s)
Going to register agent at deployment server
Response without json Content-Type
Unexpected answer from Checkmk server, missing json data. Please check that the credentials you entered are correct or use an automation user for the registration

Ich schreib das gern nochmal - das Agent Updater Register ist abhängig vom eigenen Setup wo das hingehen muss.

  • Distributed Agent Bakery → Register geht gegen den Slave Host mit der Slave Site
  • Central Agent Bakery → Register geht gegen den Central Host mit der Central Site

Was geht da nicht? Hier einmal mit -vvv und einmal ohne wie der Output normal los geht.

.\cmk-agent-ctl.exe -vvv register -s MONITORINGSERVER -i SITE --user USER --hostname HOSTNAME
[2026-04-01 19:04:51.168699 +02:00] INFO [cmk_agent_ctl] cmk-agent-ctl\src\main.rs:16: starting
[2026-04-01 19:04:51.169387 +02:00] INFO [cmk_agent_ctl] cmk-agent-ctl\src\lib.rs:50: Loaded config from '"C:\\ProgramData\\checkmk\\agent\\cmk-agent-ctl.toml"', connection registry from '"C:\\ProgramData\\checkmk\\agent\\registered_connections.json"'
[2026-04-01 19:04:51.169868 +02:00] DEBUG [reqwest::connect] C:\Users\jenkins\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\reqwest-0.12.12\src\connect.rs:620: starting new connection: 

ohne -vvv oder auch nur -v kommt halt gleich die Abfrage des Zertifikates.

Danke fĂĽr die Hinweise. Nach weiteren Experimenten hat das hier funktioniert:

check_mk_agent.exe updater register --trust-cert --server master.domain.de --site MASTERSITE --user omdadmin  --hostname w2025dc01.stkk.lan

Danach war nur noch die TLS Warning ĂĽbrig, die damit wegging:

cmk-agent-ctl.exe register --trust-cert --server slave.domain.de --site stkk --user cmkreg  --hostname w2025dc01.stkk.lan

Nach dem ich den globalen User “cmkreg” passend und für alle Sites angelegt hatte.

Also genau so wie am Anfang gesagt :wink: