Hallo Schwarmhirn,
Mein neuer 18.04 nagios 4 server kann sich nicht mit den clients verbinden, ich habe einen ssl-fehler.
Wir haben einen alten icinga monitoring server auf 12.04 den ich ablösen will. Nachdem wir ein grosses netzwerk mit ziemlich vielen komponenten auf mehreren Locations in Deutschland ( Office, rechenzentrum etc. ) verteilt haben und für alle geräte custom checks geschrieben wurden, habe ich mich entschieden wieder auf nagios zurückzugehen weil ich sonst mindestens alle clients erneuern müsste und die checks neu schreiben müsste durch den versionssprung bei icinga.
die config wird bei uns ausnahmslos auf alle servergruppen per puppet verteilt
der nrpe client wird mit folgendem puppet script ( auszug ) verteilt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | class icinga::target { # Für einen Icinga Host (aka Monitoring Server) $icinga_monitor_packages = [ 'nagios-nrpe-server', 'nagios-plugins', 'nagios-plugins-basic', 'nagios-plugins-standard', 'libsys-statistics-linux-perl', 'libnagios-plugin-perl', 'libnet-dns-perl', 'libreadonly-perl', ] package { $icinga_monitor_packages: ensure => 'installed' } if $::lsbdistcodename == 'lucid' { service { 'nagios-nrpe-server': name => 'nagios-nrpe-server', require => Package['nagios-nrpe-server'], enable => true, pattern => '/usr/sbin/nrpe', hasrestart => true, subscribe => File['/etc/nagios/nrpe.d/icinga.cfg'] } } else { service { 'nagios-nrpe-server': ensure => 'running', name => 'nagios-nrpe-server', require => Package['nagios-nrpe-server'], enable => true, hasstatus => true, hasrestart => true, subscribe => File['/etc/nagios/nrpe.d/icinga.cfg'] } } |
Nagios 4 auf dem neuen server habe ich aus der source kompiliert. das nrpe plugin habe ich zuerst aus dem ubuntu repository geholt. fehler: auf dem server:
1 2 3 4 | root@nagios:/usr/local/nagios/etc# /usr/local/nagios/libexec/check_nrpe -H x.x.x.x -n CHECK_NRPE: Receive header underflow - only -1 bytes received (4 expected). root@nagios:/usr/local(nagios/etc# /usr/local/nagios/libexec/check_nrpe -H 192.168.33.162 CHECK_NRPE: (ssl_err != 5) Error - Could not complete SSL handshake with 192.168.33.162: 1 |
und auf dem client ( syslog )
1 2 3 4 5 6 7 8 | Jun 20 14:21:19 weather nrpe[1661]: Starting up daemon Jun 20 14:21:19 weather nrpe[1661]: Server listening on 0.0.0.0 port 5666. Jun 20 14:21:19 weather nrpe[1661]: Server listening on :: port 5666. Jun 20 14:21:19 weather nrpe[1661]: Warning: Daemon is configured to accept command arguments from clients! Jun 20 14:21:19 weather nrpe[1661]: Listening for connections on port 0 Jun 20 14:21:19 weather nrpe[1661]: Allowing connections from: x.x.x.x,x.x.x.x Jun 20 14:23:09 weather nrpe[1680]: Error: Could not complete SSL handshake. 1 Jun 20 14:23:09 weather nrpe[1682]: Error: Could not complete SSL handshake. 1 |
die icinga.cfg ( also die customized nrpe.cfg ) habe ich natürlich auf die neue IP angepasst.
daraufhin habe ich das nagios-plugin aus dem repository weggeworfen und das plugin aus der source kompiliert, bekomme aber wieder exakt den gleichen fehler.
lokal bekomme ich folgende meldungen:
code root@nagios:/tmp# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 NRPE v3.2.1 root@nagios:/tmp# /usr/local/nagios/libexec/check_nrpe -H 127.0.1 -n CHECK_NRPE: Receive header underflow - only -1 bytes received (4 expected).
und jetzt? auf nagios 3 zurückgehen? das muss mit den clients aus dem repository funktionieren, sonst gehts gar nicht. wir haben auch teilweise noch 12.04 im einsatz mit uptimes von 1500 tagen weil die zuständigen abteilungen nicht hinterherkommen ihre software auf den neuen distris zu testen. Upgrade aller server um den richtigen client zu bekommen fällt aus.
edit: ich habe ausserdem gesehen dass anscheinend openssl 1.1.0 dafür verantwortlich ist weil die art wie sich nagios mit nrpe verbindet damit nicht mehr unterstützt wird. siehe hier: https://github.com/NagiosEnterprises/nrpe/issues/113
ich habe auf dem nagios server folgenden check gemacht
1 2 3 4 5 6 7 8 9 10 11 12 | root@nagios:/tmp# apt list --installed | grep ssl WARNING: apt does not have a stable CLI interface. Use with caution in scripts. libssl-dev/bionic,now 1.1.0g-2ubuntu4 amd64 [installed] libssl-doc/bionic,now 1.1.0g-2ubuntu4 all [installed,automatic] libssl1.0.0/bionic,now 1.0.2n-1ubuntu5 amd64 [installed] libssl1.1/bionic,now 1.1.0g-2ubuntu4 amd64 [installed] libxmlsec1-openssl/bionic,now 1.2.25-1build1 amd64 [installed] openssl/bionic,now 1.1.0g-2ubuntu4 amd64 [installed] python3-openssl/bionic,now 17.5.0-1ubuntu1 all [installed] ssl-cert/bionic,now 1.0.39 all [installed,automatic] |
wie kriege ich openssl 1.1.0 schonend von bionic runter und benutze nur noch 1.0.2? das nagios nrpe plugin scheint automatisch die neueste version zu nutzen.... ? in dem verlinkten thread wird openssl 1.0.2 aus der source kompiliert, aber das ist ja hier anscheinend schon drauf....