Ich protokolliere einige Daten zur NFS-Nutzung des Clients über ein Netzwerk. Jetzt möchte ich es in einem Liniendiagramm darstellen und bin überwältigt von den Möglichkeiten, die ich dort vorfinde. Niemand scheint für mich leicht zu verstehen zu sein.
Hier ist ein vereinfachtes Protokoll:
1356112995 192.168.1.46 766
1356112995 192.168.1.12 14
1356112995 192.168.1.141 5
1356112995 192.168.1.11 38
1356114790 192.168.1.46 760
1356114790 192.168.1.12 10
1356114790 192.168.1.11 18
1356116586 192.168.1.46 758
1356116586 192.168.1.12 9
1356118387 192.168.1.46 783
1356120187 192.168.1.46 687
1356121987 192.168.1.46 699
1356123787 192.168.1.46 371
1356125587 192.168.1.46 717
1356127386 192.168.1.46 0
Die erste Spalte ist ein Zeitstempel und sollte sich auf der X-Achse befinden. Die zweite Spalte ist die Client-IP. Die dritte Spalte gibt die Anzahl der Operationen an, die auf der Y-Achse liegen sollen. Das Diagramm sollte ein Liniendiagramm sein.
Ich möchte, dass dies automatisch erfolgt, daher ist das Plotten über die Befehlszeile der richtige Weg. Keine Ahnung, wie das geht.
Es sollte eine PNG-Datei generiert werden, die anschließend zur Visualisierung auf einen Webserver hochgeladen wird.
Antworten:
Es gibt wahrscheinlich einige Möglichkeiten, dies zu tun, ohne Software zu installieren (bei NFS gehe ich davon aus, dass Sie eine Linux-Box verwenden). Aber meine Lieblingslösung beinhaltet R Dies ist kostenlos und für Linux / Windows / Mac usw. verfügbar und bietet Ihnen unzählige Möglichkeiten, Ihre Handlung anzupassen oder Ihre Daten zu manipulieren.
Schritt 1
Erstellen Sie ein Skript mit folgendem Code:
Ich habe mein Skript aufgerufen
log.to.png.R
Schritt 2
Über eine Unix- oder Mac-Befehlszeile können Sie das Skript folgendermaßen aufrufen:
$R CMD BATCH log.to.png.R
quelle
lattice
Vielleicht war es ein bisschen übertrieben, aber es war der schnellste Weg, das gesamte Protokoll mit einem einfachen Befehl zu zeichnen und gleichzeitig verschiedenen "Clients" unterschiedliche Farben zuzuweisen.Das ist wirklich spät, aber als ich über diesen Beitrag hinweg kam, werde ich meine zwei Pennies einsetzen.
Ohne die Installation von R können wir call awk in gnuplot verwenden:
Dabei wird die Ausgabe des Befehls awk in doppelten Anführungszeichen von gnuplot zum Plotten Ihrer Daten verwendet. Der Befehl awk druckt einfach die erste und dritte Spalte aus.
Sie können den obigen Befehl in eine gnuplot-Datei einfügen, z. B. plot_log.gp, und ihn dann wie folgt in der Befehlszeile aufrufen
Dies ist ein Befehl, der einfach in einen Cron-Job oder ein Skript eingefügt werden kann. Beachten Sie die einfachen Anführungszeichen um den Text.
Ich wollte nur demonstrieren, dass Gnuplot wirklich sehr flexibel ist, da es Befehlszeilenargumente verwenden und sie als Variablen in einem Skript zuweisen kann. Keine starken Abhängigkeiten (dich ansehend, R), da awk ziemlich allgegenwärtig ist.
quelle