Ist es möglich, eine Ressourcenüberwachungsanwendung (z. B. Netdata) in einem Docker-Container auszuführen, der eine andLinux

Linux verstehen
Guest
 Ist es möglich, eine Ressourcenüberwachungsanwendung (z. B. Netdata) in einem Docker-Container auszuführen, der eine and

Post by Guest »

Mir ist klar, dass dies eine eher linke Frage ist, da die beabsichtigte Verwendung eines Docker-Containers darin besteht, eine Umgebung für die Ausführung eines einzelnen Prozesses bereitzustellen, und nicht für mehr als einen Prozess.
Ich führe eine Python-Anwendung in einem Docker-Container aus. Es lädt regelmäßig einige Daten mithilfe eines Pandas-Datenrahmens. Ungefähr einmal im Monat stürzt der Container mit der Fehlermeldung „Nicht genügend Speicher“ ab.
Ich bin mir nicht sicher, ob das an einem Speicherleck liegt, das nach und nach den Systemspeicher aufsaugt, bis der Container endgültig ist getötet wurde oder wenn das Verhalten eher zufällig ist, so dass es gelegentlich ausgeführt wird und erheblich mehr Speicher als gewöhnlich verbraucht.
Ich habe nicht bemerkt, dass die Systemspeicherauslastung im Laufe des Monats zunehmend höher wird lässt mich denken, dass das Problem wahrscheinlich eher Letzteres und nicht eine allmähliche Erinnerung ist Leck.
Ich dachte, ich könnte Netdata verwenden, um die Speichernutzung des Containers zu überwachen.
Hinweis: Es gibt zwei Möglichkeiten könnte Netdata zum Überwachen von Docker-Containern verwenden:
  • Der typische Weg wäre, Netdata zum Überwachen von Containern zu verwenden, indem es auf dem Container-Host ausgeführt wird. Der Host ist in diesem Fall ein Debian 12-System. Die über apt verfügbare Version von Netdata ist v1.37.1. Dies scheint ziemlich veraltet zu sein, da es sich bei der aktuellen Version um Version 2 handelt ... Ich kann in der Web-Benutzeroberfläche nichts sehen, was wie ein Diagramm aussieht, das die Speichernutzung von Docker-Containern überwacht. Daher vermute ich, dass meine Version zu alt ist.
  • Der „seltsame“ und überhaupt nicht empfohlene Weg, den ich versuche, besteht darin, Netdata im Ziel-Docker-Container selbst zu installieren .
Bisher ist es mir gelungen, Netdata zu installieren, indem ich den Docker-Befehl RUN apt update && apt install netdata -y zum entsprechenden hinzugefügt habe Dockerfile.
Die Container CMD ist immer noch auf „CMD [.venv/bin/python3“, „myPythonApp.py“] eingestellt.
Wenn ich den Container starte, ist Netdata (wenig überraschend) ) läuft nicht. Ich kann es manuell starten, indem ich
ausführe

Code: Select all

docker exec -it MY_CONTAINER_NAME bash
/usr/sbin/netdata -D
Das ist jedoch nicht der richtige Weg. Normalerweise würde es mit systemctl ausgeführt werden, aber ich habe das nicht in diesem Container installiert.
Auch wenn ich es auf diese Weise starte, wenn ich mich mit den Netdata verbinde Wenn ich eine Instanz im Container ausführe, stelle ich fest, dass sie nur ein einziges Diagramm hat, das zur Messung von Jitter dient.
Diagramme zum Speicher fehlen.
Zusammenfassend:
  • Was ich hier versuche, ist wirklich nicht der richtige Ansatz
  • Dennoch lässt es sich vielleicht umsetzen, auch wenn es ein kleiner Hack ist
    Obwohl es mir gelungen ist, Netdata in einem Docker-Container zu installieren, weiß ich nicht, wie ich es starten soll, da der Container kein systemctl hat. Gibt es eine Möglichkeit, den Netdata-Prozess beim Start des Containers zu starten? Wenn ja, wie soll das gemacht werden?
  • Wenn ich netdata manuell starte, stelle ich fest, dass es keine der üblichen erwarteten Diagramme gibt, und am wichtigsten ist, dass es keine Diagramme zur Überwachung der Speichernutzung gibt . Dies deutet darauf hin, dass einige Abhängigkeiten fehlen, die Containerprozesse sollten jedoch Zugriff auf die Datei /proc/meminfo haben. (Ich habe überprüft, ob diese Datei vorhanden ist.)
Ich vermute, dass meine Version von Netdata veraltet ist, aber nicht in der Lage ist, eine zu erstellen Ich habe einen neuen Server installiert und so etwas wie den neuesten Ubuntu-Server anstelle von Debian installiert. Ich weiß nicht, wie ich das beheben kann. Ich möchte nicht wirklich eine spätere Version von netdata manuell installieren, anstatt sie apt verwalten zu lassen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post