Kategorien
work

check_esx3 Service Check Timeout

Seit dem Update eines Monitoring-Servers mit Icinga auf Debian 9 (Stretch) liefen auf einmal die Service Checks für unsere VMWare ESXi Hosts in einen Timeout. Für den Check wird check_esx3 benutzt.

Die mit Google gefundenen Lösungsansätze waren alle mind. 2 Jahre alt und basierten darauf irgendwelche Perl HTTP Bibliotheken zu downgraden. Kein praktikabler Lösungsansatz für mich – und in diesem Fall haben diese Vorschläge auch nicht geholfen.

Teilweise (scheinbar nach einem Zufallsprinzip) sind die Checks übrigens durchgelaufen. Aber nur bei ca. jeder zehnten Ausführung.

Um herauszufinden, an welcher Stelle der Timeout auftritt hatte ich den Perl-Debugger aktiviert (Flag -d am Anfang des Scripts) das Script laufen lassen. Es stellte sich heraus, dass das Lesen von /dev/random die Ursache war. Da der Check viele HTTPS-Verbindungen aufbaut scheint dafür auf dem Server nicht genug Entropie vorhanden zu sein. Hier kann man nachlesen, wie man die aktuell vorhandene Entropie auslesen kann. Auf dem Monitoring-Server waren es zwischen 1 und 50 Bytes(?).

Als Lösung habe ich rng-tools installiert, ein Deamon, der Hardware-Zufallszahlen-Generatoren nutzt um die Entropie-Vorräte des Systems aufzufüllen. Dieser kann aber auch z.B. /dev/urandom dafür verwenden. Die Idee dazu kommt von hier.

Da, während ich am Server arbeitete, Entropie generiert wurde, kamen öfter Recoveries. Was mich immer zunächst glauben ließ, das Problem sei jetzt behoben – ein sehr nerviger Effekt.

Jetzt sind konstant 2 KB Entropie vorhanden und die Checks laufen wieder schnell.

Von msquare

Baut in seiner Freizeit gerne Häuser, kocht, musiziert und hackt.

Eine Antwort auf „check_esx3 Service Check Timeout“

/dev/urandom als Entropiequelle herzunehmen führt aber nicht zu gutem Zufall – denn letztendlich führst du damit den Ausgang eines CSPRNG wieder als Eingang für diesen zurück. Irgendwann wird auch die Periode dieses PRNG erreicht sein, und spätestens ab da – wahrscheinlich schon weit vorher! – ist dein Zufall nicht mehr zufällig und damit deine Crypto unsicher. Nimm lieber ein Script her, dass Netzwerk-IO generiert, z.B. Linux-ISOs runterlädt…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.