Etwas schließt Verbindungen in meinen CentOS-VMs – wie kann ich das Problem am besten beheben?

Etwas schließt Verbindungen in meinen CentOS-VMs – wie kann ich das Problem am besten beheben?

Ich habe ein Setup mit 3 VMs (1 Anwendungsserver auf CentOS6 und 2 Datenbankserver auf CentOS7). In den letzten 1-2 Wochen hatten wir Probleme mit Timeouts bei der Verbindung zu den Datenbankservern (und zwischen den beiden Servern, die sich in einem Cluster befinden).

Der Datenbankanbieter (Couchbase) kann anhand der Protokolle erkennen, dass die Verbindungen zwangsweise geschlossen werden:

WARN com.couchbase.endpoint - [com.couchbase.endpoint][UnexpectedEndpointDisconnectedEvent] The remote side disconnected the endpoint unexpectedly

Die Protokolle zeigen auch, dass Pakete gelöscht werden, wie:

[warn] Interface ‘ens32’ (removedip) failures: RX:2863 / TX:0 - Details:
- RX packets:308,593,167 errors:0
dropped:2,863 overruns:0 frame:0

Die VMs werden auf demselben Host gehostet, einem VMware ESXi (Version 6.5). Siesollenin der Lage sein, gute Verbindungen zueinander aufzubauen.

Und was hat sich in den letzten Wochen geändert? Sicherheitsupdates für die VM-Betriebssysteme und die Datenbankserverversion (von 6.6.0 auf 7.0.0). Das Datenbank-Upgradesollte nichtnichts im Netzwerk ändern, aber das ist offensichtlich der Grund, warum ich zuerst den Datenbankanbieter kontaktiert habe ...

Ich bin für jede Idee dankbar, wie wir den Täter finden können :-)

Bearbeiten:

Ich bin Camerons Vorschlag gefolgt und habe einfach eine kurze Netzwerkverfolgung ausgeführt und sie in Wireshark auf meinem lokalen Computer geladen. Dann habe ich die „Experteninformationen“ geöffnet und Folgendes erhalten: Wireshark - Experteninformationen Ich muss sagen, dass sich vor dem Anwendungsserver ein Nginx-Proxyserver befindet. Er kümmert sich um SSL und „hebt es ab“, bevor es den Anwendungsserver erreicht. Wenn ich mir nur die Informationen ansehe, würde ich erwarten, dass die beiden „roten“ Blöcke mit Anfragen von außen zusammenhängen – und nicht vom Anwendungsserver an die Datenbankserver.

Aber ich bin mir nicht ganz sicher, wonach ich bei den Ergebnissen suchen soll? – und ich schätze, ich muss es noch etwas länger laufen lassen – aber vielleicht ohne die Informationen von außen?

Bearbeiten 2

Während ich dasaß und es mir ansah, trat das Problem tatsächlich auf ... - also startete ich schnell den tcpdump erneut. Die Ergebnisse enthalten also möglicherweise nicht die Grundursache - sollten aber relevanter sein als die ersten: Wireshark - Experteninfos (2) Die von mir erweiterten Blöcke scheinen mit der Kommunikation mit einem der Datenbankserver zusammenzuhängen.... :-)

Doch was bedeuten diese Ergebnisse und wie komme ich der Ursache näher?

Antwort1

Willkommen bei Server Fault.

Angesichts des Alters (CentOS 6 wird derzeit nicht mehr unterstützt) ist es sehr wahrscheinlich, dass Sie unter SSL/TLS-Inkompatibilitäten leiden (vorausgesetzt natürlich, dass Sie sich darüber verbinden). Wir haben im Laufe unserer Zeit mit RHEL6 sicherlich viele solcher Ereignisse erlebt, da SSL2 usw. standardmäßig schrittweise deaktiviert wurde. Ähnliches gilt für verschiedene Punktversionen von Java (einige Punktversionen der 1.7-Reihe waren besonders störrisch).

Ein weiterer möglicher Grund, da Sie eine CentOS-Arbeitslast auf ESXi ausführen, ist, dass Ihnen die Entropie ausgehen könnte, was zu Blockierungsverhalten führt, das wiederum zu Timeouts und Clusterproblemen führen kann, was wiederum zu Verbindungsabbrüchen führt. Bis zu Java 8 war Java hierfür besonders anfällig. Sie können beurteilen, ob dies ein Problem für Sie ist, indem Sie sich im Laufe der Zeit /proc/sys/kernel/random/entropy_avail ansehen; wenn es unter 128 oder so fällt und sich nicht erholt, dann haben Sie Entropiemangel. Dies kommt häufig bei einer VM vor, bei der keine Tastatur-Maus-Aktivität stattfindet; in diesem Fall könnten Sie versuchen, einen Entropie-Sammel-Daemon auszuführen.

Übrigens würde ich aus diesen Protokollen nicht schließen, dass etwas [anderes] diese Verbindungen aktiv schließen will; es ist nur so, dass die Verbindung zu einem Zeitpunkt geschlossen wurde, als eine Partei nicht damit gerechnet hat. Dies könnte auf Dinge wie Timeout, Ausnahmen, Prozessabsturz usw. zurückzuführen sein.

Sie sagen, dass der Datenbankserver aktualisiert wurde ... war das ein Betriebssystem-Upgrade von CentOS 6? Wurde die Anwendung auch aktualisiert oder wurde sie verschoben?

Grüße, Cameron

verwandte Informationen