2012-08-11 3 views
5

Ich möchte ein Python-Skript schreiben, um einige sehr einfache "agentenlose" Überwachung von Remote-Prozessen auf Linux-Servern durchzuführen.Einfache Remote-Prozessüberwachung mit Python

Es würde die folgenden Aufgaben in psuedocode ausführen:

for each remoteIPAddress in listOfIPAddresses: 
    log into [email protected] via ssh 
    execute the equivalent of a 'ps -ef' command 
    grep the result to make sure a particular process (by name) is still running 

Eine Möglichkeit, dies zu tun, ist Python Aufruf von Shell-Skripten in einem Teilprozess haben und ihre Leistung zu analysieren. Das scheint ziemlich ineffizient. Gibt es einen besseren Weg, dies über Python-Bibliotheken zu tun?

Alles, was ich über Forschung hier finden konnten, und an anderer Stelle war:

  • psutil - sieht aus wie es nicht die Fernüberwachung macht, so würde ich Agenten auf den Remote-Rechnern laufen Statistiken zu berichten über RPC.
  • pymeter - Ich müsste mein eigenes Plugin für die Überwachung eines bestimmten Remote-Service schreiben.
  • stackoverflow #4546492 - Einige hilfreiche Links, aber das Plakat suchte nach einer anderen Lösung.

Dank und bitte einfach auf mich gehen, dann ist es meine erste Frage :-)

+0

http://www.noah.org/python/pexpect/ ist auch eine gud option Ich denke –

+0

Danke. Ich habe es heruntergeladen und werde parallel mit Fabric (unten) bewerten. – tohster

Antwort

3

Die Bibliothek Fabric könnte für Sie von Interesse sein.

+0

+1 zu Fabric, macht so etwas effizienter zu schreiben und zu pflegen anstelle von Shell-Skripten aus Python. –

+0

Vielen Dank. Sieht so aus, als ob ich mit ssh-Kommandos immer noch den Kern davon machen muss, aber Fabric wickelt das viel eleganter ab, als ich es mir hätte vorstellen können. Schätzen Sie den schnellen Vorschlag! – tohster

1

Check out paramiko. Sie können es verwenden, um den Server zu starten und Befehle auszuführen. Sie können dann die Ergebnisse analysieren und tun, was Sie möchten.

+0

Danke für den Vorschlag. Ich denke, ich werde mit Fabric beginnen, aber das ist Plan B und eine gute Antwort. – tohster

+0

Sah sowohl Stoff und Paramiko. Ich akzeptiere diese Antwort, weil sie der ursprünglichen Frage am nächsten kommt. – tohster

0

Es könnte schwerer sein als das, was Sie suchen, aber Zenoss unterstützt agentenlose Überwachung.

Paramiko und Stoff, in den anderen Antworten vorgeschlagen, sind auch große Optionen.

+0

Danke. Sieht aus wie ein kommerzielles Produkt, also werde ich es in meinem Notebook aufbewahren, um es später zu skalieren. – tohster

+0

Es ist Open Source, aber sie haben auch eine kommerzielle Ausgabe. –

0

Warum Sie nicht über ein dediziertes Monitoring-Tool wie Nagios benutzen? Nagios Agent und Agent weniger Überwachung durch NRPE-Plugins und SSH-Plugins etc. Probieren Sie es aus.