Serverstats - Alternative zu cacti, mrtg & Co.

Bash, Shell, PHP, Python, Perl, CGI
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by andreask2 »

Installiere Dir die neuste SVN version:

Code: Select all

svn export https://svn.webmasterpro.de/serverstats/trunk serverstats-dev
Hier wurde die Fehlerbehandlung verbessert, an der Stelle an der Du die readfile Fehlermeldung gefunden hast, findest Du dann die rrdtool Fehlermeldung, die sehr viel mehr über das Problem aussagen dürfte.
Der Grund warum der Graph nicht erzeugt wurde, hat meistens nichts mit Berechtigungen zu tun, sondern vermutlich mit einem Fehler im rrd Befehl. Dies passiert meist bei fehlerhafter Konfiguration, vor allem in config/graph.php.

Welche Konfiguration verwendest Du? Was hast Du angepasst?

Werden Dateien in rrd/ geschrieben?

Auf jeden Fall solltest Du erstmal eine möglichst einfache Variante verwenden. config.sample/ wurde im SVN erheblich vereinfacht, so dass serverstats nach einem

Code: Select all

mv config.sample config
bei korrekten Berechtigungen ohne weitere Anpassungen funktionieren sollte. Wenn dann immer noch kein Graph erzeugt wird, am besten nach den FAQ vorgehen: https://svn.webmasterpro.de/serverstats ... oc/faq.txt

Für die 0.7er Version wird es dann auch ein ordentliches Gentoo ebuild geben.

Weitere Infos:
Graphen Konfiguration: https://svn.webmasterpro.de/serverstats ... config.txt
Quellen Konfiguration: https://svn.webmasterpro.de/serverstats ... ources.txt

PS: AFAIK werden die Graphen von rrdtool graph erzeugt, nicht von gd.
persil
Posts: 5
Joined: 2005-09-13 11:16
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by persil »

jetzt kommt leider:

Code: Select all

exception 'Exception' with message 'Unable to read imagefile' in /var/www/kazzam/serverstats-dev/graph.php:246
Stack trace:
#0 /var/www/kazzam/serverstats-dev/graph.php(246): unknown()
#1 {main}
bei unveränderter config (nur gemoved)
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by andreask2 »

Die config aus der svn Version? Oder die aus 0.6? Erstmal mit ersterer versuchen.

Wird was ins rrd/ Verzeichnis geschrieben?

Ã?ndere includes/rrd.class.php mal wie folgt:

Code: Select all

--- includes/rrd.class.php 2005-09-13 12:04:14.000000000 +0200
+++ includes/rrd.class.php      2005-09-13 12:05:19.000000000 +0200
@@ -152,6 +152,7 @@
                $output = array();
                $return = 0;
                $command = escapeshellcmd($this->rrdtoolbin) . $params;
+die($command);
                exec($command . ' 2>&1', $output, $return);
                if ($return != 0)
                {
@@ -357,6 +358,7 @@
                $output = array();
                $return = 0;
                $command = escapeshellcmd($this->rrdtoolbin) . $params;
+die($command);
                exec($command . ' 2>&1', $output, $return);
                if ($return != 0)
                {
Hierdurch müsste das rrd kommando ausgegen werden, das Du dann mal auf der Komandozeile eingeben kannst - um zu sehen ob das funktioniert.

Wundert mich, eigentlich sollte graph.php inzwischen die rrdtool Fehlermeldung anzeigen.
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by andreask2 »

hm, habs nochmal getestet, die SVN Version läuft bei mir ohne Probleme, und zeigt auch rrdtool Fehlermeldungen an.

Bei SVN checkouts/exports gehen die Dateirechte verloren (im Gegensatz zu tar).

Die Rechte von rrd/, cache/ (beschreibbar durch cronjob) und graph/ (beschreibbar durch webserver) müssen angepasst worden sein.

Code: Select all

php update.php
mal auf der Shell eingeben, ob hier Fehler auftauchen, und damit Daten generiert werden.

Mir fällt erhlich gesagt kein Grund ein warum diese Fehlermeldung kommt, denn das kann nur passieren, wenn ein rrdtool command ohne Fehlermeldung durchgeführt wurde, und wenn dann die Datei nicht vorhanden ist, muss doch beim speichern ein Fehler passiert sein. Seltsam.

ddanier kann vielleicht eher was dazu sagen.
persil
Posts: 5
Joined: 2005-09-13 11:16
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by persil »

geht nun.
vielen dank für die schnelle hilfe, ich hatte blind auf die version von debian vertraut, war noch ne 1.0.4.

sorry für die mühe, das nächste mal schau ich genauer hin
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by andreask2 »

Version wovon?

Was hast Du gemacht damit es jetzt funktioniert?
ddanier
Posts: 23
Joined: 2005-07-15 19:20
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ddanier »

Ein Hinweis:
In der SVN-Version bau ich grad einen Logger ein, deswegen kann es zu Problemen mit dem derzeitigen Code kommen. Also am Besten Serverstats 0.6 verwenden, bis das fertig ist (dann gibts außerdem auch bald 0.7).

Zur Version:
rrdtool nehm ich an :)
persil
Posts: 5
Joined: 2005-09-13 11:16
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by persil »

ddanier wrote:Zur Version:
rrdtool nehm ich an :)
Ja ;-)

ich muss wirklich sagen, die scripts sind genial. viel einfacher als cacti, komfortabler als alles was ich davor hatte, res. sparender als mrtg und vor allem schön bunt ;-)

vielen dank für diese wunderbaren statistiken, sie machen jetzt einen Server-Monitoring freak sehr glücklich ;-)
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by andreask2 »

dem kann ich mich nur anschließen ;-)
persil
Posts: 5
Joined: 2005-09-13 11:16
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by persil »

hi, ich bins wieder ;-)
wie kann ich denn beschriftungen der letzten werte eigenen graphen hinzufügen?

hab mich an den MySQL-Graphen orientiert (vom code her, also hab die kopiert und umgeschrieben).

danke schon einmal ;-)
ponchofiesta
Posts: 48
Joined: 2005-12-07 12:25
Location: Luckau
Contact:
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ponchofiesta »

Ich würde gern ein kleines Traffic-Modul schreiben, dass die Infos aus der /proc/net/dev ausliest. Aber wie kann ich den alten Status abrufen um die aktuelle Transferrate zu berechnen (aktuell Bytes - alte Bytes = Bytes pro Zeit)?
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by andreask2 »

persil wrote:wie kann ich denn beschriftungen der letzten werte eigenen graphen hinzufügen?
Was meinst Du damit?

Sowas wie bei Memory oder Load in der Demo? Das würde ich mir dann einfach in der zugehörigen config ansehen.
persil wrote:hab mich an den MySQL-Graphen orientiert (vom code her, also hab die kopiert und umgeschrieben).
Ja, das ist auch prinzipiell der richtige Weg.

Inzwischen gibt es ja auch eine etwas ausführlichere Internetseite mit etwas Dokumentation, auch für Sourcen: http://www.webmasterpro.de/~ddanier/ser ... ation.html

Und nicht zu vergessen der Artikel im rootiewiki: http://rootiewiki.de/index.php?pagename=Serverstats

Da habe ich auch am Beispiel Apache-Status beschrieben wie man eine eigene Source schreibt.

Das Projekt ist inzwischen auch auf freshmeat angemeldet, so dass man sich darüber über Neuerungen informaieren lassen kann: http://unix.freshmeat.net/projects/serverstats/
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by andreask2 »

ponchofiesta wrote:Ich würde gern ein kleines Traffic-Modul schreiben, dass die Infos aus der /proc/net/dev ausliest. Aber wie kann ich den alten Status abrufen um die aktuelle Transferrate zu berechnen (aktuell Bytes - alte Bytes = Bytes pro Zeit)?
Im vorherigen Posting habe ich schon ein paar Links genannt, wo man hier Infos/Ideen bekommt. Auf die konkrete Frage bzogen, es verschiedene Möglichkeiten. Als erstes mal ist rrdtool auf dieses Problem vorbereitet, ich will da mal einen Abschnitt aus dem rootiewiki Artikel zitieren:
rootiewiki.de wrote:initRRD() fügt die Datenquellen beim Anlegen der rrd-Datei mit der Methode $rrd->addDatasource().

* der erste Parameter steht für die Datenquelle ('ds' bei der Konfiguration des Graphen, siehe oben)
* beim zweiten Parameter wird unterschieden, ob es sich bei den Daten um einen Counter handelt der immer weiter steigt (so wie die Total Accesses Angabe in server-status), in diesem Fall ist DERIVE zu verwenden, oder ob es sich immer um einen absoluten Wert handelt (wie z.B. die BusyServers? Angabe in server-status), wo dann GAUGE anzugeben wäre.
Nach Möglichkeit sollte man also immer diesen direkten Weg gehen, dann kümmert sich rrdtool um den Rest. Wie die konkrete initRRD() Methode am Apache-Status Beispiel aussieht, findest Du hier:

https://svn.webmasterpro.de/filedetails ... rev=0&sc=0

Falls man aus irgendeinem Grund doch einen eigenen Cache braucht, ist das in serverstats ebenfalls vorgesehen, Beispiel:

https://svn.webmasterpro.de/filedetails ... rev=0&sc=0

Normalerweise sollte man das aber vermeiden. Wie gesagt, ich würde empfehlen mal den Artikel im rootiewiki in Ruhe durchzulesen, da ist z.B. die API für Sourcen erklärt: http://rootiewiki.de/index.php?pagename=Serverstats

Noch eine Bemerkung zu Deinem Vorhaben - vermutlich ist /proc/net/dev das was auch ifconfig etc. auslesen, oder? Dann solltest Du darauf achten, dass es sich hierbei um einen "rotierenden Wert" handelt, ich kenne mich da nicht so aus, aber soweit ich weiß fängt der Zähler ab einem bestimmten Wert immer wieder bei 0 an (evtl. behandelt rrdtool das aber auch von alleine, das weiß ich nicht).

Was ähnliches gilt übrigens auch für PHP, der INT Wert bei PHP wird nur mit 32Bit dargestellt (auf 32Bit Systemen, auf 64Bit Systemen ist es mehr), also bis 2 Mrd. irgendwas, dann wird daraus ein Float, und die Darstellung ändert sich, so dass die Zahl nicht mehr von rrdtool verarbeitet werden kann. Allerdings weiß ich nicht ob Dich das betrifft, evtl. mit entsprechenden Werten mal testen. Ich erinnere mich dass wir das Problem bei irgendeiner Source mal hatten, kann mich aber gerade nicht dran erinnern wo das war (ich glaube es war disk, nur kann ich das auch dort nichts mehr finden). Es gab jedenfalls verschiedene workarounds.

Da serverstats wie gesagt auf rrdtool aufsetzt, kann man auch in der rrdtool Doku nachlesen, wie bestimmte Dinge funktionieren, z.B. auch wie rrd Datendateien erzeugt werden: http://people.ee.ethz.ch/~oetiker/webto ... te.en.html
oder wie entsprechende graphen konfiguriert werden:
http://people.ee.ethz.ch/~oetiker/webto ... ph.en.html

Das ganze lässt sich wie gesagt sehr gut auf serverstats übertragen, die ganzen Einstellungen verwenden entsprechende Namen. Und natürlich im Quellcode nachgucken wie andere Sourcen realisiert wurden: https://svn.webmasterpro.de/listing.php ... rev=0&sc=0

Weitere Beispiele, vor allem für Graphen finden sich in der Demo: http://www.webmasterpro.de/~ddanier/ser ... /demo.html (inkl. config)
ponchofiesta
Posts: 48
Joined: 2005-12-07 12:25
Location: Luckau
Contact:
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ponchofiesta »

Danke für die sehr ausführliche Antwort.
Ich werd mir das morgen nochmal genau anschauen.
ponchofiesta
Posts: 48
Joined: 2005-12-07 12:25
Location: Luckau
Contact:
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ponchofiesta »

Zu dem Apache-Status woillte ich noch sagen, dass es scheinbar nicht so funktioniert, wie es soll.
Bei mir: http://osor.de/serverstats/detail.php?graph=5
zählt er nur hoch aber zeigt nicht die Requests pro Sekunde.
Ich verwende die von dir angegebene Klasse dafür und diesen Config-Eintrag:

Code: Select all

    array(
        'title' => 'Apache: Requests pro Sekunde',
        'lowerLimit' => 0,
        'altAutoscaleMax' => true,
        'content' => array(
            array(
                'type' => 'LINE',
                'source' => 'apache',
                'ds' => 'requests',
                'cf' => 'AVERAGE',
                'legend' => 'Requests/s',
                'width' => 1,
                'color' => '00A302'
            )
        )
    )#,
EDIT:
Ich hab da jetzt was geändert, daher sieht man momentan gar nichts mehr.
ddanier
Posts: 23
Joined: 2005-07-15 19:20
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ddanier »

andreask2 wrote:Noch eine Bemerkung zu Deinem Vorhaben - vermutlich ist /proc/net/dev das was auch ifconfig etc. auslesen, oder? Dann solltest Du darauf achten, dass es sich hierbei um einen "rotierenden Wert" handelt, ich kenne mich da nicht so aus, aber soweit ich weiß fängt der Zähler ab einem bestimmten Wert immer wieder bei 0 an (evtl. behandelt rrdtool das aber auch von alleine, das weiß ich nicht).
Die Antwort hierauf steht im rrdtool-Manual:
DERIVE
will store the derivative of the line going from the last
to the current value of the data source. This can be useful
for gauges, for example, to measure the rate of people
entering or leaving a room. Internally, derive works
exactly like COUNTER but without overflow checks. So if
your counter does not reset at 32 or 64 bit you might want
to use DERIVE and combine it with a MIN value of 0.
Heißt also:
Wenn man DERIVE verwendet und der Counter wird zurückgesetzt gibt das logischerweise negative Werte. Das kann allerdings vermieden werden, wenn man den Mindestwert auf 0 setzt (was ja bei dem Netzwerttraffic nur Sinn macht). Hier wird dann beim Sprung ein UNKNOWN eingetragen und ab dem nächsten Wert wieder richtig gerechnet. Für 32-Bit-Counter wäre aber evtl. der Typ COUNTER besser geeignet.
andreask2 wrote:Was ähnliches gilt übrigens auch für PHP, der INT Wert bei PHP wird nur mit 32Bit dargestellt (auf 32Bit Systemen, auf 64Bit Systemen ist es mehr), also bis 2 Mrd. irgendwas, dann wird daraus ein Float, und die Darstellung ändert sich, so dass die Zahl nicht mehr von rrdtool verarbeitet werden kann. Allerdings weiß ich nicht ob Dich das betrifft, evtl. mit entsprechenden Werten mal testen. Ich erinnere mich dass wir das Problem bei irgendeiner Source mal hatten, kann mich aber gerade nicht dran erinnern wo das war (ich glaube es war disk, nur kann ich das auch dort nichts mehr finden). Es gab jedenfalls verschiedene workarounds.
Ist behoben, das wird automatich erkannt und per number_format() für rrdtool lesbar ausgegeben (Sogar mit der richtigen Anzahl Stellen hinter dem Komma). Sollte also keine Probleme bereiten. ;-)
ponchofiesta wrote:Zu dem Apache-Status woillte ich noch sagen, dass es scheinbar nicht so funktioniert, wie es soll.
Bei mir: http://osor.de/serverstats/detail.php?graph=5
zählt er nur hoch aber zeigt nicht die Requests pro Sekunde.
Ich verwende die von dir angegebene Klasse dafür und diesen Config-Eintrag:

Code: Select all

[...]
                'ds' => 'requests',
[...]
"requests" ist auch nur die Anzahl der Requests...was du suchst ist "requestsps" ;-)

Edit:
ponchofiesta wrote:Ich würde gern ein kleines Traffic-Modul schreiben, dass die Infos aus der /proc/net/dev ausliest.
Wenn das fertig ist würde ich mich natürlich freuen eine Kopie davon per Email zu bekommen. Wenn du es unter die GPL stellst hat es die Chance in Serverstats aufgenommen zu werden.
ponchofiesta
Posts: 48
Joined: 2005-12-07 12:25
Location: Luckau
Contact:
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ponchofiesta »

Nachdem ich mir mal das RRD-file gedumpt habe, hab ich dann auch gesehen, dass da ein requestsps ist :oops:
Es wird jetzt (wie man sehen kann) auch richtig angezeigt.

Bei dem Traffic-Modul bräuchte man ja eigentlich nur überprüfen, ob der neue Wert kleiner als der alte ist. Wenn es so ist, dann ist der Traffic für diese Zeitspanne 2^32 - Alt + Neu (also vom alten Stand bis zum Maximalwert plus den neuen Wert. Beim minütigen Update ist es ja unwahrscheinlich, dass so viel Traffic durch geht, dass der Wert dann wieder größer als der alte Wert ist :D
Allerdings würde das wohl mit dem RRDtool nicht funktionieren. Da müsste man dann direkt schon die fertigen Werte speichern, wozu der Cache dann gebraucht wird.
ddanier
Posts: 23
Joined: 2005-07-15 19:20
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ddanier »

DERIVE sollte reichen (mit Mindestwert auf 0), probier das vorher mal ;-)
ponchofiesta
Posts: 48
Joined: 2005-12-07 12:25
Location: Luckau
Contact:
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ponchofiesta »

Dann hat man aber alle 4GB einen falschen Wert, das ist doch irgendwie unschön :)
ddanier
Posts: 23
Joined: 2005-07-15 19:20
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ddanier »

ponchofiesta wrote:Dann hat man aber alle 4GB einen falschen Wert, das ist doch irgendwie unschön :)
-> COUNTER ;-)
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by andreask2 »

Aber bei COUNTER dann den MAX Wert auf 2^32, also 4294967296?

Hab mal die Signatur von rrd::addDatasource() rausgekramt:

Code: Select all

addDatasource($name, $type, $p1 = null, $p2 = null, $p3 = null)
$name ist halt der "ds-name" (datasource name), also bei Apache z.B. "requestsps".

Bei $type = 'GAUGE', 'COUNTER', 'DERIVE' oder 'ABSOLUTE' bedeuten die Prameter ($p1-$p3):

$p1: heartbeat
$p2: min
$p3: max

Das heißt, also für COUNTER, müsste man $p3=4294967296 setzen, und $p1=null,$p2=null, ja? Und jetzt erinnere ich mich wieder, Du hattest number_format() aus der source rausgenommen, und fest in serverstats eingebaut, so dass man sich da keine Sorgen mehr machen muss, oder?

Ã?brigens kann man die Bedeutung etc. der verschiedenen Parameter auch wieder im rrdtool manual nachlesen, in diesem Fall man rrdcreate:

Code: Select all

DS:ds-name:DST:dst arguments
    A single RRD can accept input from several data sources (DS),
    for example incoming and outgoing traffic on a specific
    communication line. With the DS configuration option you must
    define some basic properties of each data source you want to
    store in the RRD.

    ds-name is the name you will use to reference this particular
    data source from an RRD. A ds-name must be 1 to 19 characters
    long in the characters [a-zA-Z0-9_].

    DST defines the Data Source Type. The remaining arguments of a
    data source entry depend on the data source type. For GAUGE,
    COUNTER, DERIVE, and ABSOLUTE the format for a data source entry 
    is:

    DS:ds-name:GAUGE | COUNTER | DERIVE | 
    ABSOLUTE:heartbeat:min:max
Und darunter stehen übrigens die genauen Beschreibungen der DS-Typen (GAUGE, COUNTER, DERIVE...)

naja, wenn wo gerade schonmal dabei sind:

Code: Select all

GAUGE
    is for things like temperatures or number of people in a room or
    the value of a RedHat share.
COUNTER
    is for continuous incrementing counters like the ifInOctets 
    counter in a router. The COUNTER data source assumes that the
    counter never decreases, except when a counter overflows. The 
    update function takes the overflow into account. The counter is 
    stored as a per-second rate. When the counter overflows, RRDtool
    checks if the overflow happened at the 32bit or 64bit border and
    acts accordingly by adding an appropriate value to the result.
DERIVE
    will store the derivative of the line going from the last to the 
    current value of the data source. This can be useful for gauges,
    for example, to measure the rate of people entering or leaving a
    room. Internally, derive works exactly like COUNTER but without 
    overflow checks. So if your counter does not reset at 32 or 64 
    bit you might want to use DERIVE and combine it with a MIN value
    of 0.

ABSOLUTE
    is for counters which get reset upon reading. This is used for 
    fast counters which tend to overflow. So instead of reading them
    normally you reset them after every read to make sure you have a 
    maximum time available before the next overflow. Another usage 
    is for things you count like number of messages since the last
    update.
Und da steht auch was genau "heartbeat", "min", und "max" bedeuten... aber das muss ich jetzt nicht auch noch zitieren, oder? ;-)
ponchofiesta
Posts: 48
Joined: 2005-12-07 12:25
Location: Luckau
Contact:
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ponchofiesta »

Der Maximalwert müsste dann ja glaube 2^32 - 1 sein (weils ja bei 0 beginnt).
Bin auch gleich fertig, muss es dann nur noch testen.
ponchofiesta
Posts: 48
Joined: 2005-12-07 12:25
Location: Luckau
Contact:
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ponchofiesta »

So, zu sehen gibts das hier:
http://osor.de/serverstats/detail.php?graph=7
Ihr habt sicherlich noch Verbessungsvorschläge :)

sources/traffic_proc.php:

Code: Select all

class traffic_proc extends source
{
    private $ifs;
    private $data;

    public function __construct($ifs = array('eth0'))
    {
        if(!is_array($ifs))
        {
            throw new Exception('Parameter must be an array');
        }
        $this->ifs = $ifs;
        $this->data = array();
    }

    public function refreshData()
    {
        if (!($lines = file('/proc/net/dev')))
        {
            throw new Exception('Could not read /proc/net/dev');
        }
        foreach($lines as $line)
        {
            if(preg_match('/([wd]+):[ ]*(d+)[ ]*(d+)[ ]*d+[ ]*d+[ ]*d+[ ]*d+[ ]*d+[ ]*d+[ ]*(d+)[ ]*(d+)[ ]*d+[ ]*d+[ ]*d+[ ]*d+[ ]*d+[ ]*d+/', $line, $m))
            {
                if(in_array($m[1], $this->ifs))
                {
                    $this->data[$m[1]] = array(
                        'rbytes'   => $m[2],
                        'rpackets' => $m[3],
                        'tbytes'   => $m[4],
                        'tpackets' => $m[5]
                    );
                }
            }
        }
    }

    public function initRRD(rrd $rrd)
    {
        foreach($this->ifs as $if)
        {
            $rrd->addDatasource($if.'_rbytes', 'COUNTER', null, 0, 4294967295);
            $rrd->addDatasource($if.'_rpackets', 'COUNTER', null, 0, 4294967295);
            $rrd->addDatasource($if.'_tbytes', 'COUNTER', null, 0, 4294967295);
            $rrd->addDatasource($if.'_tpackets', 'COUNTER', null, 0, 4294967295);
        }
    }

    public function updateRRD(rrd $rrd)
    {
        foreach($this->ifs as $if)
        {
            if(isset($this->data[$if]))
            {
                $rrd->setValue($if.'_rbytes', $this->data[$if]['rbytes']);
                $rrd->setValue($if.'_rpackets', $this->data[$if]['rpackets']);
                $rrd->setValue($if.'_tbytes', $this->data[$if]['tbytes']);
                $rrd->setValue($if.'_tpackets', $this->data[$if]['tpackets']);
            }
        }
    }
}
config/graph.php:

Code: Select all

...
    array(
        'title' => 'Traffic (eth0)',
        'lowerLimit' => 0,
        'altAutoscaleMax' => true,
        'content' => array(
            array(
                'type' => 'LINE',
                'source' => 'traffic_proc',
                'ds' => 'eth0_rbytes',
                'cf' => 'AVERAGE',
                'legend' => 'Download Bytes/s',
                'width' => 1,
                'color' => '0002A3'
            ),
            array(
                'type' => 'LINE',
                'source' => 'traffic_proc',
                'ds' => 'eth0_tbytes',
                'cf' => 'AVERAGE',
                'legend' => 'Upload Bytes/s',
                'width' => 1,
                'color' => '00A302'
            )
        )
    )
...
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by andreask2 »

Das sieht ja schonmal echt gut aus! Wie ist das denn mit '/proc/net/dev', gibt es da auch keine Veränderungen am Format zwischen verschiedenen Kernel-Versionen (wie bei einigen anderern /proc Formaten, z.B. bzgl. Partitionen/Festplatten)?

Welche Kernel-Version verwendest Du?

@David: Wenn ponchofiesta nichts dagegen hat, würde ich sogar dafür plädieren, diesen Graphen in config.sample/ mit aufzunehmen, denn Traffic ist ja schon einer der wichtigsten Graphen, und dieser sollte gegenüber der iptables Geschichte ja ohne Veränderung direkt laufen. Wenn das Format von '/proc/net/dev' denn einheitlich ist.

Die andere traffic source würde ich dann vielleicht eher als "traffic_extended" oder so ähnlich bezeichnen, da man hier Dank iptables natürlich sehr viel mehr Daten sammeln kann, z.B. auch wieviel auf welchem Port anfällt... Aber diese neue, einfache traffic source finde ich ideal für die Standard-Konfiguration, die ohne Anpassungen direkt funktionieren soll.
ponchofiesta
Posts: 48
Joined: 2005-12-07 12:25
Location: Luckau
Contact:
 

Re: Serverstats - Alternative zu cacti, mrtg & Co.

Post by ponchofiesta »

Für mich war übrigens der Grund, dass ich keine Lust auf die iptables-Regel hatte :D

Zum Format der /proc/net/dev:
Auf meinem Debian 3.1 (2.6.11.9-050512a SMP) und meinem Fedora Core 4 (2.6.12-1.1447_FC4) sind die Dateien identisch. Zur Not könnte ich noch auf nem Ubuntu und einer SuSE nachschauen aber außer Linux habe ich keine Vergleichsmöglichkeiten.

Und ich hab natürlich nichts dagegen. Ist ja auch nicht grad viel Code, wo es sich lhnen würde :P
Post Reply