Was ist die beste Strategie, um mysteriöse Prozesse aufzudecken?

Was ist die beste Strategie, um mysteriöse Prozesse aufzudecken?

Auf meinem Server laufen Prozesse, die jede Nacht um Mitternacht beendet werden. Das passiert auf der Arbeit, ich bin nicht da, wenn das passiert, und ich habe keinen Fernzugriff.

Der Abschuss erfolgt jede Nacht um 23:59 Uhr, wie vorhersehbar. Ich weiß das, denn wenn ich am nächsten Tag ankomme:

  • Prozesse laufen bis 23:59 Uhr
  • Die Protokolle des Prozesses zeigen die letzte Änderungszeit um 23:59 Uhr (und ein neues datiertes Protokoll wird direkt danach gestartet).

Da die Tötung zur selben Stunde erfolgt, vermutete ich stark einen Batch-Job. Ich habe die crontabDateien aller unserer Maschinen durchgesehen und konnte nichts finden. Offensichtlich übersehe ich etwas.

Ich denke darüber nach, ein Überwachungsskript zu erstellen, das die Ausgabe psperiodisch meldet, einige Minuten vorher gestartet wird atund eine kurze Zeit lang in einer Schleife läuft. Diese Idee scheint schwach und sehr fehleranfällig, daher frage ich mich, ob jemand eine bessere Idee hat.

Mehr Details:

  • Das Universum ist ein sehr großes und sehr altes Altsystem. Niemand in meinem Team scheint sich eines solchen Prozesses bewusst zu sein (wenn es jemand wüsste, wäre sie in unserem Team). Obwohl die größere Organisation aus Tausenden von Mitarbeitern besteht, hätten viele von ihnen theoretisch Zugriff darauf (ich sehe keinen Grund dafür). Mit anderen Worten: Die Sicherheit ist nicht sehr streng.

  • Die Umgebung besteht aus mehreren Maschinen, auf denen Solaris 10 läuft.

  • Da es sich nicht um eine Produktionsumgebung handelt, sind Timeouts oder Ausfallzeiten nicht kritisch.

  • Ich schließe nicht aus, dass die Tötung nicht auf einen Batch-Job zurückzuführen ist, obwohl dies angesichts der zeitlichen Genauigkeit unwahrscheinlich ist.

  • Offensichtlich gibt es Mängel in unserer Buchführung, daher ist alles Denkbare möglich.

Meine Frage ist, welche Strategie am besten geeignet ist. Sie fällt unter den Oberbegriff „Freude an der Arbeit mit Altsystemen“. Ich beginne gerade mit der Arbeit an meinem Skript, das ich in Kürze hier veröffentlichen werde, um Feedback zu erhalten. Wenn in der Zwischenzeit jemand eine bessere Idee hat, sagen Sie es bitte.

Antwort1

Es ist üblich, Protokolle regelmäßig zu rotieren, beispielsweise um Mitternacht. Viele Anwendungen tun dies automatisch.

Für diejenigen, die dies nicht tun, gibt es Tools wie logrotatedieses, die die Rotation durchführen. Viele Programme sind so konfiguriert, dass sie ihre Protokolle erneut öffnen, wenn ihnen ein HUP-Signal gesendet wird, und dies ist eine der von verwendeten Techniken logrotate.

Zu überprüfende Punkte:

  • Ändern sich alle PIDs? Wenn nicht, rotieren die Programme möglicherweise ihr eigenes Protokoll oder reagieren entsprechend auf die Rotation ihrer Protokolle.
  • Wurden Programme, die PIDs ändern, um Mitternacht neu gestartet? Wenn nicht, überprüfen Sie das übergeordnete Programm, um zu sehen, was es tut.
  • Überprüfen Sie die Crontab für Root, um zu sehen, welche Prozesse am Ende des Tages ausgeführt werden.
  • Überprüfen Sie die Crontab auf die Prozess-Benutzer-ID, um zu sehen, welche Prozesse am Ende des Tages ausgeführt werden.
  • Überprüfen Sie, ob die Protokolldateien direkt oder von einem Protokollschreiber geschrieben werden, der die Protokolle rotiert.

verwandte Informationen