Page 1 of 1

Kleines Statistik-Script

Posted: 2006-06-13 16:22
by theomega
Hallo Leute,
ich biete hier ein Script an, das folgende Daten mitloggt und daraus Graphen erstellt:
- CPU Last in Prozent
- Load 1min/5min/15min
- Festplatten-Auslastung für bis zu 12 Paritionen
- Temperatur der Systemkomponenten CPU,Motherboard, Gehäuse und Festplatte
- Speicherauslastung
Beispiel/Demo: http://flacons.org/rrdtool/

Vorrausetzungen:
- Ein Kernel 2.6.x (sonst funktioniert das CPU-Modul nicht)
- Konfigurierte LM_Sensors für das Temperatur-Modul (Dafür gebe ich hier keine Anleitung)
- Installiertes hddtemp für die Festplatten-Temerpatur. Es muss auch eure Platte erkennen.
- Installiertes RRDTool mit Version>=1.2 (bitte nachschaun, es geht wirklich nicht darunter)
- ca. 15MB freien Speicherplatz

Installation:
1. Ein Verzeichniss anlegen wohin installiert wird. In meinem Beispiel /opt/rrdtool:

Code: Select all

mkdir /opt/rrdtool
cd /opt/rrdtool
2. Datei runterladen & entpacken

Code: Select all

wget http://www.dbruhn.de/div/domstat.tar.gz
tar -xvzf domstat.tar.gz
3. RRD-Dateien anlegen

Code: Select all

sh install.sh
4. Konfigurierern:
Mit dem bevorzugten Editor die config.sh öffnen:

Code: Select all

nano config.sh
Allgemeines
debug Zum testen auf 1 setzten, nacher auf 0 sonst gibt unmengen an Mails vom Cron-Daemon
inputdir Verzeichniss in dem die Dateien liegen, in meinem Fall also /opt/rrdtool . Bitte ohne Slash dahinter
rrdtoolbin Der volle Pfad zur RRDTool-Binary. Herausfinden mit 'which rrdtool'. Sollte auf Debian und Gentoo passen.
outputdir Verzecihniss in dem die Ausgabe-Dateien also Bilder usw erstellt werden. Sollte irgendwo in euerem webroot liegen. Auch ohne Slash dahinter.
dotemps Auf 0 setzten falls ihr das Temperatur-Modul nicht nutzen wollt weil ihr es nicht eingerichtet habt.
modules So lassen außer ihr wollt bestimmte Statistiken nicht erstellen lassen.
times Welche Zeitspannen sollen erstellt werden. Sie rrdtool-doku, wenn ihr einen weiteren Zeitbeeich wollt einfach hier hinzufügen.
indextime Welcher Zeitraum soll auf der Übersicht angezeigt werden?

Festplatten-Modul
X sei eine Zahl zwischen 1 und 12 dann ist:
lpX Paritionsname. Dieser muss eindeutig in 'df' sein. Bitte nur Partitionen eintragen die dort aufgeführt sind.
lpXl Beschreibung. Ein frei wählbarer Name der die Parition beschreibt
lpXc Eine Farbe: HTML-Farbcode bestehend aus 6 Hex-Ziffern ohne das # davor

Temperatur-Modul
Vor dieser Konfiguration testen ob sensors richtige Ausgaben macht.
temp_cpu Name des CPU-Temperatur-Sensors in der "sensors" ausgabe. Meistens "CPU Temp". Vor jedes leerzeichen MUSS ein davor (escaping).
temp_cpu_s Enthält der Name des Sensors ein Leerzeichen dann hier 3 setzten, sonst 2.

Für die anderen beiden Sensoren (mb und case genauso)

temp_hdd Festplatten-Device das mitgeloggt werden soll.

5. Daten-Sammeln testen:

Code: Select all

sh update.sh
Es müssten jetzt die verschiedenen Werte aufgeführt werden, am besten überprüfen. Wenn eine Fehlermeldung kommt nochmal alles genau checken.

6. Cronjob für den Datensammler anlegen:

Code: Select all

crontab -e
Dort einfügen

Code: Select all

*/1 * * * *     /opt/rrdtool/update.sh
Den Pfad evtl anpassen

7. In der config-datei das debugging ausschalten

8. Einige Stunden warten und den root-mail-account prüfen ob fehlermeldungen ankommen.

9. Das Generator-Script ausprobieren:

Code: Select all

sh generate.sh
Es sollten jetzt im Ausgabe-Verzeichniss viele gif-dateien und einige html-dateien existieren, einfach mal mit dem browser anschaun ob alles passt

10. Einen Cronjob für das generate-Script anlegen (Vorschlag: Jede Stunde, kann aber auch mehr oder weniger sein)

Code: Select all

crontab -e
Dort einfügen

Code: Select all

0  * * * *      /opt/rrdtool/generate.sh
Pfad evtl anpassen.

Das wars, es wäre nett, wenn ihr einen Link für die Statistiken sehen lasst und ein bischen feedback geben würdet.

Gruß
TO

Re: Kleines Statistik-Script

Posted: 2006-06-13 22:47
by lufthansen
bis auf den cpu graph funktioniert das bei mir.
da ich kernel 2.4.32-grsec einsetze.
mal gucken ob ich dasumstricken kann.
ansonsten sehr nett *Lob* ! :D
lag an einer falschen rrdtool version
cpu geht jetzt zumindest der load

Re: Kleines Statistik-Script

Posted: 2006-06-13 23:18
by theomega
Poste einfach mal bitte die ausgabe folgendes befehls, dann kann ich es auch übernehmen:

Code: Select all

cat /proc/stats

Re: Kleines Statistik-Script

Posted: 2006-06-13 23:21
by lufthansen

Code: Select all

cat /proc/stat
cpu  45886060 105278265 5109468 716531365
cpu0 45886060 105278265 5109468 716531365
page 1092145940 1238790828
swap 1057919 126041
intr 1575327593 872805158 2 0 0 68272 0 2 2 0 0 495867782 0 0 0 103276795 103309580
disk_io: (3,0):(104625153,22677706,1092364798,81947447,2477077856)
ctxt 3791244766
btime 1141505638
processes 7381655
dankeschön :)
wobei wenn ich die debug ausgabe richtig interpretiere scheint er die daten doch zu bekommen oder nicht ?

Code: Select all

./update.sh
[LOAD][1150233743][0.30:0.33:0.26]
[CPU][1150233743][45886746:5109535:105278265:716536019:::]
[HDD][1150233743][17896:474348:87916312:155906404:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0]
[CPUSPEED][1150233743][2004.585]
[MEM][1150233743][1057189888:71741440:534409216:33439744:417599488]

Re: Kleines Statistik-Script

Posted: 2006-06-14 00:04
by theomega
Stimmt, wie siehts bei der Grafik-Erstellung aus? Die Linie mit den Interrups müsste nicht sichtbar sein, aber sonst müsste es funktionieren oder?

Gibt...

Posted: 2006-06-14 08:11
by vevelt
...es irgendwo 'n Demo, was man sich im Vorwege einmal kurz ansehen kann? :wink:

Re: Kleines Statistik-Script

Posted: 2006-06-14 11:02
by braindead

Re: Kleines Statistik-Script

Posted: 2006-07-09 20:59
by lufthansen
wolltest du nicht eine korrigierte versien hochladen ?

Re: Kleines Statistik-Script

Posted: 2006-07-09 22:17
by theomega
So, eine aktualisierte Version ist oben, folgende Änderungen:
1. Ein Kernel 2.4 support, allerdings müsste den jemand testen, siehe neue Einstellungsmöglichkeit in der config
2. Das Festplatten-Modul gibt jetzt die Festplatten aus.