TLS Agent registrieren

Hi,

ich würde gerne TLS auf unseren Hosts aktivieren. Wir verwenden Checkmk 2.2.0p24 unter Debian 12. Folgenden Befehl habe ich eingegeben:

cmk-agent-ctl.exe register -H SRV22HELPT -I monitoring -S 10.7.88.213 -U cmkadmin

Leider erhalte ich immer folgende Meldung:

Request failed with code 500 Internal Server Error: Internal Server Error

Hat jemand eine Idee?

Hatte ein ähnliches Problem (bei uns war es die Firewall). Quick&dirty Workaround war die Registrierung als Proxy z.B. auf dem Monitoring Server selbst auszuführen, den Output im json File zu speichern und dann auf dem zu überwachenden Host zu importieren.

Guck mal hier: Linux überwachen - Der neue Agent für Linux im Detail

4.7. Im Auftrag registrieren

Gibt es bei deinen Benutzern einen User “Automation” ? Ich hatte dort schon genau das Problem, wenn der Benutzer gelöscht wurde.

Zusätzlich kannst du während der Registrierung für eine Analyse in die folgenden Logdateien schauen :

/omd/sites/<your site>/var/log/agent-receiver/error.log
/omd/sites/<your site>/var/log/web.log

Hi,

vielen Dank an alle für eure Antworten.

@kdeutsch
Ich habe es mit dem cmkadmin als auch mit dem automation User versucht. Klappt bei beiden nicht.

@thoc
Ich habe auch die Registrierung als Proxy versucht und bekommen trotzdem die gleiche Fehlermeldung: “Request failed with code 500 Internal Server Error: Internal Server Error”

Ich habe nun einen Test checkmk Server installiert und dort hat die Registrierung ohne Probleme funktioniert.

Die Server unterscheiden sich nicht wirklich von einander mit der Ausname das der Produktive Sever ein Zertifikat für https besitzt.

Was für dieses Problem ja keine unrelevante Änderung ist.

Jetzt noch die info wie das andere Zertifikat eingebunden wurde und wir kommen der Sache näher

1 Like

Du kannst auch die Registrierung direkt ansprechen. Per default ist das port 8000. da ist dann das cmk Zertifikat eingebunden

Hi,
ich hab es exakt so gemacht wie hier beschrieben:

01. On the Linux host type

mkdir /etc/cer

02. In the next step you create the certificate request

openssl req -new -sha256 -nodes -days 1095 -out \certificate.csr -newkey rsa:2048 -keyout \certificate.key -config <(
cat <<-EOF
[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[ dn ]
C=SR
L=Zemoon
CN = checkmk.mycompany.local
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = checkmk.mycompany.local
IP.1 = 10.7.88.213
EOF
)

03. Now switch to the Windows-CA start Powsershell and type

certreq -submit -attrib “Company-Linux”

04. In the next step upload the Certificate with WinSCP on the Linux Host

05. Copy all Files from /etc/cer in the right directory

cp certificate.key /etc/ssl/private/
cp certificate.cer /etc/ssl/certs/
cp chain.cer /etc/ssl/certs/

06. Edit the Apache config file

nano /etc/apache2/sites-available/default-ssl.conf

SSLCertificateFile /etc/ssl/certs/certificate.cer
SSLCertificateKeyFile /etc/ssl/private/nagios.key
SSLCertificateChainFile /etc/ssl/certs/chain.cer

07. In the last step type the following commandlets

a2ensite default-ssl

a2enmod ssl

systemctl restart apache2

@pitchfork

Wie kann ich die Registrierung dirket ansprechen?

Oft dürfte es am einfachsten sein, auf dem Checkmk-Server den Port des Agent Receiver auszulesen und zu notieren. Führen Sie dazu den folgenden Befehl als Instanzbenutzer aus:

OMD[mysite]:~$ omd config show | grep AGENT_RECEIVER
AGENT_RECEIVER: on
AGENT_RECEIVER_PORT: 8000

Sie können nun den ermittelten Port bei der Registrierung direkt angeben und so die erste Anfrage via REST-API überspringen. Die Kommunikation findet dann ohne Umwege direkt mit dem Agent Receiver statt:

root@linux# cmk-agent-ctl register --hostname mynewhost \
    --server mycmkserver:8000 --site mysite \
    --user automation --password 'test23'

Auch dieser Port 8000 muss vom Host aus erreichbar sein. Ist er das nicht, erhalten Sie die eindeutige Fehlermeldung:

ERROR [cmk_agent_ctl] Connection refused (os error 111)

Analog zu Port 443 (respektive 80) oben können Sie jetzt die Routing- oder Firewall-Einstellungen so anpassen, dass der zu registrierende Host den Checkmk-Server auf dem Port des Agent Receiver (8000 oder 8001…) erreichen kann.

Hi,

all das ist zwar für die Einrichtung von TLS für die checkmk Webseite richtig und wichtig, hat aber mit der TLS Registrierung des Agenten gar nichts zu tun.
Dafür erstellt checkmk Site intern eine eigene CA, die davon vollständig unabhängig ist.

Bei der Registrierung wird aber erst die api auf https nach dem Port gefragt.

Aber hier kommt ja die Antwort schon von port 8000 und liefert einen 500er error. Also ist es wohl nicht das Zertifikat.

Hi,
ich habe das so gemacht und bekomme leider trotzdem den gleichen Fehler.

Vom Client habe ich versucht über den Browser auf den Port 8000 zuzugreifen.

002

Hat noch jemand eine Idee was ich überprüfen könnte?

Genau :wink:
@Noxn der Fehler aus deinem allerersten Post mit dem 500er Error zeigt eigentlich sehr genau wo der Fehler liegt. → Automation User mit dem Namen “automation” ist entweder nicht vorhanden oder an dem User wurde per Hand “herumgespielt” → Rolle geändert von Admin oder ähnliches.
Einfach diesen User wieder in Ordnung bringen dann klappts auch mit der Registrierung.
Es gibt noch eine andere Möglichkeit, diese scheint aber hier nicht vorzuliegen, ist, dass das Zertifikat der internen CA gegen ein eigenes ausgetauscht wurde.

PS: es macht keinen Sinn in Public Keys Zeilen zu schwärzen. Das ist eh “öffentlich” wie der Name sagt.

1 Like

@andreas-doehler
Holyshit du hattest recht :slight_smile:

Der User hatte zuerst bei der Authentication “Normal user login with password”

Ich hab nun folgende Anpassungen gemacht:

Ich habe es auch mal ohne der Administratorrolle versucht, da hat es nicht funktioniert.
Ich teste es nun bei allen anderen Servern, ob dort auch die Registrierung funktioniert.
Sobald ich durch bin würde ich mich nochmal melden.

1 Like

Hi,

wie versprochen wollte ich mich nochmal melden. Die Registrierung hat auf allen Servern geklappt.
Vielen Dank an alle dir mir geholfen haben.

1 Like