Pages:
Author

Topic: Banana Node- Unterstütze das Netzwerk! - page 18. (Read 65270 times)

legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
Was habt Ihr'n so fürn Traffic?
Ich komm jetzt schon auf ~10GB pro Tag, was ich doch recht erstaunlich fand.

Eingestellt hab ich vorerst mal 40 maxconnections, die er bislang (also, in den 5 Tagen) aber nochnicht erreicht hat.

Kannst Du mal Deine Settings hier posten?
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
Einfach
Code:
mempool tx 24h

irgendwo über/unter einem der anderen Bilder in die index.php einfügen.

Jo das habe ich übersehen, ist jetzt mit eingebaut.
Jetzt ist alles ok denke ich  Cool
legendary
Activity: 3676
Merit: 1495
Hmm wo hab ich den vergessen?
In der index.php,
das Skript erstellt zwar die Graphik, Du zeigst sie aber nirgends an.

Einfach
Code:
mempool tx 24h

irgendwo über/unter einem der anderen Bilder in die index.php einfügen.
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
Jo, hübsch,
aber der Mempool-Tx-Graph fehlt noch.  Wink

Hmm wo hab ich den vergessen? Hatte die mempool.sh und memory.sh eben nochmals aktualisiert.
legendary
Activity: 3676
Merit: 1495
Jo, hübsch,
aber der Mempool-Tx-Graph fehlt noch.  Wink

..automatische Anmeldung/Aktualisierung hier https://bitnodes.21.co/
Wegen Disconnect und neuer IP?
Das aktualisiert sich doch von selbst,
man muss sich da doch nich extra eintragen, früher oder später finden die einen, ob man will, oder nich.
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
hmm, probier mal folgendes
Code:
sudo apt-get install php5-curl
sudo service nginx restart
sudo service php5-fpm restart


Jup das war's  Cool
Vielen Dank für Deine Hilfe, jetzt läuft es wie es soll! Hübsch oder ?  Grin
Die nächste Kleinigkeit das noch ansteht, wäre die automatische Anmeldung/Aktualisierung hier https://bitnodes.21.co/

Schönes "Eigener Node" Projekt, dank Eurer Anleitungen  Smiley
legendary
Activity: 3676
Merit: 1495
hmm, probier mal folgendes
Code:
sudo apt-get install php5-curl
sudo service nginx restart
sudo service php5-fpm restart
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
Das iss ja auch die falsche Adresse,
versuchs mal mit http://192.168.2.62/   Wink

Na das hatte ich zum Glück auch schon probiert Wink
Aber ein Blick ins Error.log sagt dem geübten scripter (also nicht mir) evtl woran es liegt, das ich nur eine leere Seite angezeigt bekomme:
Code:
2016/07/08 17:54:55 [error] 23610#0: *5 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Call to undefined function curl_init() in /hdd/www/includes/Bitcoin.php on line 68" while reading response header from upstream, client: 192.168.2.39, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.168.2.62"

Kannst Du damit etwas anfangen?
legendary
Activity: 3676
Merit: 1495
Das iss ja auch die falsche Adresse,
versuchs mal mit http://192.168.2.62/   Wink


Edit:
Beim Thema RAM-Auslastung durch Mempool hab ich mich jetzt dazu entschieden,
sie in das RAM-Script zu integrieren, nachvollziehbar, oder?  Smiley

Dafür hab ich nur das memory.sh File so abgeändert,
daß es eine zusätzliche Datenbank erstellt, ein zusätzliches Update der (neuen) Datenbank durchführt
und dann die Grafik etwas modifziert.
Das Ganze sieht dann folgendermaßen aus:
Code:
nano ~/memory.sh
Code:
#!/bin/bash
# memory.sh - Memory usage stats

rrdtool=/usr/bin/rrdtool
db=/hdd/rrd/memory.rrd
# mempool-ram db added
mpdb=/hdd/rrd/mempool-ram.rrd
img=/hdd/www/html/images

if [ ! -e $db ]
then
$rrdtool create $db \
--step 300 \
DS:usage:GAUGE:600:0:U \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:3:672 \
RRA:AVERAGE:0.5:12:744 \
RRA:AVERAGE:0.5:72:1480
fi

# mempool db creation added
if [ ! -e $mpdb ]
then
$rrdtool create $mpdb \
--step 300 \
DS:mempoolmb:GAUGE:600:0:U \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:3:672 \
RRA:AVERAGE:0.5:12:744 \
RRA:AVERAGE:0.5:72:1480
fi

$rrdtool update $db -t usage N:`free -b |grep cache:|cut -d":" -f2|awk '{print $1}'`
# mempool db update added
n=`/usr/local/bin/bitcoin-cli getmempoolinfo | jq '.usage'`
$rrdtool update $mpdb -t mempoolmb N:"$n"

# mempool added to graph
for period in day week month year
do
$rrdtool graph $img/memory-$period.png -s -1$period \
-t "Memory usage last $period" -z \
-c "BACK#FFFFFF" -c "SHADEA#FFFFFF" -c "SHADEB#FFFFFF" \
-c "MGRID#AAAAAA" -c "GRID#CCCCCC" -c "ARROW#333333" \
-c "FONT#333333" -c "AXIS#333333" -c "FRAME#333333" \
        -h 134 -w 543 -l 0 -a PNG -v "RAM" \
DEF:usage=$db:usage:AVERAGE \
DEF:mempoolmb=$mpdb:mempoolmb:AVERAGE \
VDEF:min=usage,MINIMUM \
VDEF:max=usage,MAXIMUM \
VDEF:avg=usage,AVERAGE \
VDEF:lst=usage,LAST \
VDEF:mpmin=mempoolmb,MINIMUM \
VDEF:mpmax=mempoolmb,MAXIMUM \
VDEF:mpavg=mempoolmb,AVERAGE \
VDEF:mplst=mempoolmb,LAST \
"COMMENT:      \l" \
"COMMENT:        " \
"COMMENT:         " \
"COMMENT:Minimum    " \
"COMMENT:Maximum    " \
"COMMENT:Average     " \
"COMMENT:Last    \l" \
"COMMENT:   " \
"AREA:usage#92CF00:Usage      " \
"LINE1:usage#3F5A00" \
"GPRINT:min:%5.1lf %sB   " \
"GPRINT:max:%5.1lf %sB   " \
"GPRINT:avg:%5.1lf %sB   " \
"GPRINT:lst:%5.1lf %sB   \l" \
"COMMENT:   " \
"AREA:mempoolmb#8AD3F1:Mempool    " \
"LINE1:mempoolmb#49BEEF" \
"GPRINT:mpmin:%5.1lf %sB   " \
"GPRINT:mpmax:%5.1lf %sB   " \
"GPRINT:mpavg:%5.1lf %sB   " \
"GPRINT:mplst:%5.1lf %sB   \l" > /dev/null
done
speichern, fertich.
Der entsprechende cronjob läuft ja bereits.
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
So...beim Aufruf des Nodes über
http://192.168.2.62/hdd/www/html/index.php
bekomme ich einen 404

Die Images zeigt er mir im Browser beim Aufruf von http://192.168.2.62/images/
 Huh
RPC-User und RPC Pass hatte ich abgeändert.
Morgen mehr...
legendary
Activity: 3676
Merit: 1495
Moin lassdas,

schon wieder ne Nachtschicht eingelegt?  Cheesy
Ich werd immer erst nachts wirklich aktiv,
da iss schön ruhig und mir geht keiner auffn Sack.  Grin

Btw.
warum seid Ihr eigentlich root?
Ob das sone gute Idee is?  Roll Eyes

Gilt wenigstens für mich, bei Lincoln bin ich nicht sicher! Bin auf meinem Windows auch immer als root unterwegs  Wink
Naja, auf Windows bin ich auch immer Admin, aber da weiß ich auch, was ich tue,
das kann ich von Linux nich wirklich behaupten, da würd ich mich nich trauen, alles als root zu machen,
würd mit an Sicherheit grenzender Wahrscheinlichkeit schiefgehn.
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino

Moin lassdas,

schon wieder ne Nachtschicht eingelegt?  Cheesy
Werde das wenn möglich heute abend vor dem Spiel angehen. Account bei https://freedns.afraid.org/ habe ich gestern bereits registiert.
So wie es aussah, läßt sich dieser auch mit einer Fritzbox aktualisieren.
Bin schon sehr gespannt  Cool


Btw.
warum seid Ihr eigentlich root?
Ob das sone gute Idee is?  Roll Eyes

Gilt wenigstens für mich, bei Lincoln bin ich nicht sicher! Bin auf meinem Windows auch immer als root unterwegs  Wink
legendary
Activity: 3676
Merit: 1495
Tach,
hab letzte Nacht noch schnell n Script fürn Mempool geklöppelt.

Da getrawmempool ein komlettes json-array ausliefert und man die Anzahl der Tx erst selbst zusammenzählen muss, brauchen wir dafür noch n Tool, welches uns die Arbeit erleichtert.
Code:
sudo apt-get install jq

Dann erstellen wir wie gehabt unser neues Script
Code:
nano ~/mempool.sh
Code:
#!/bin/bash
# mempool.sh - Bitcoin mempool stats

rrdtool=/usr/bin/rrdtool
db=/hdd/rrd/mempool.rrd
img=/hdd/www/html/images

if [ ! -e $db ]
then
$rrdtool create $db \
--step 300 \
DS:mempool:GAUGE:600:0:U \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:3:672 \
RRA:AVERAGE:0.5:12:744 \
RRA:AVERAGE:0.5:72:1480
fi

#n=`/usr/local/bin/bitcoin-cli getrawmempool | jq length`
n=`/usr/local/bin/bitcoin-cli getmempoolinfo | jq '.size'`
$rrdtool update $db -t mempool N:"$n"

for period in day week month year
do
$rrdtool graph $img/mempool-$period.png -s -1$period \
-t "Mempool Tx last $period" -z \
-c "BACK#FFFFFF" -c "SHADEA#FFFFFF" -c "SHADEB#FFFFFF" \
-c "MGRID#AAAAAA" -c "GRID#CCCCCC" -c "ARROW#333333" \
-c "FONT#333333" -c "AXIS#333333" -c "FRAME#333333" \
        -h 134 -w 543 -l 0 -a PNG -v "TX" \
DEF:mempool=$db:mempool:AVERAGE \
VDEF:max=mempool,MAXIMUM \
VDEF:avg=mempool,AVERAGE \
VDEF:lst=mempool,LAST \
"COMMENT:         \l" \
"COMMENT:            " \
"COMMENT:             " \
"COMMENT:Last       " \
"COMMENT:Average    " \
"COMMENT:Maximum    " \
"COMMENT:           \l" \
"COMMENT:   " \
"AREA:mempool#92CF00:Mempool Tx          " \
"LINE1:mempool#3F5A00" \
"GPRINT:lst:%2.0lf         " \
"GPRINT:avg:%2.0lf       " \
"GPRINT:max:%2.0lf          \l" > /dev/null
done
Str-O, Str-X
Code:
chmod +x ~/mempool.sh
CronJob für mempool.sh, feddich.


Edit:
kleine Optimierung nachdem ich das getmempoolinfo-command entdeckt hab.
vorher    /usr/local/bin/bitcoin-cli getrawmempool | jq length
nachher  /usr/local/bin/bitcoin-cli getmempoolinfo | jq '.size'

Damit kann man auch gleich die RAM-Auslastung durch den Mempool auslesen
/usr/local/bin/bitcoin-cli getmempoolinfo | jq '.usage'
entweder in nem eigenen Script (quasi ner Kopie von diesem), oder gleich integriert in dieses, da bin ich mir nochnich einig.  Cheesy

legendary
Activity: 3676
Merit: 1495
Btw.
warum seid Ihr eigentlich root?
Ob das sone gute Idee is?  Roll Eyes
legendary
Activity: 3676
Merit: 1495
Fast jeder...bestimmt, aber ich hab das noch NIE gemacht  Cheesy
Na, dann wirds ja Zeit.  Smiley

Weil ich in meinem Fall (und diesem Beisiel) vor dem Aufruf der Webseite noch mal kurz mit Bitcoin RPC spreche,
bedarf es noch ein klitzekleinwenig Vorarbeit.

Erstelle ein Verzeichnis
Code:
mkdir /hdd/www/includes
und pack da die Bitcoin.php von shalk rein
Code:
nano /hdd/www/includes/Bitcoin.php
Code:
/* 
The MIT License
Copyright (c) 2011 Schalk Bower 
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Donations: 14bBEcMwwnDVXAYR8n2iTk9PTF5wqYLGR2
*/
class Bitcoin {
// @var string
private $username;
// @var string
private $password;
// @var string
private $url;
// @var integer
private $id;

/**
 * Contructor
 *
 * @param string $url
 * @param string $username
 * @param string $password
 * @param boolean $debug
 */
public function __construct($url$username$password) {
//connection details
$this->url $url;
$this->username $username;
$this->password $password;
//request id
$this->id 1;
}

/**
 * Perform jsonRCP request and return results as array
 *
 * @param string $method
 * @param array $params
 * @return array
 */
public function __call($method,$params) {
// make params indexed array of values
$params array_values($params);

// prepares the request
$request json_encode(array(
'method' => strtolower($method),
'params' => $params,
'id' => $this->id
));

// performs the HTTP POST using curl
$curl curl_init();     
curl_setopt($curlCURLOPT_RETURNTRANSFER1);  
curl_setopt($curlCURLOPT_HTTPHEADER, Array("Content-type: application/json"));
curl_setopt($curlCURLOPT_URL$this->url);  
curl_setopt($curlCURLOPT_USERPWD$this->username.":".$this->password);  
curl_setopt($curlCURLOPT_POSTTRUE);
curl_setopt($curlCURLOPT_POSTFIELDS$request);
$response curl_exec($curl);  
curl_close($curl); 

// process response
if (!$response) {
throw new Exception('Unable to connect to '.$this->url0);
}
$response json_decode($response,true);

// check response id
if ($response['id'] != $this->id) {
throw new Exception('Incorrect response id (request id: '.$this->id.', response id: '.$response['id'].')',1);
}
if (!is_null($response['error'])) {
throw new Exception('Request error: '.print_r($response['error'],1),2);
}
$this->id++;

// return
return $response['result'];
}
}
?>

Die soll nur dazu dienen, in PHP per cURL Kontakt zum Bitcoin RPC aufzunehmen.
Das wars schon mit der Vorarbeit.


Jetzt nurnoch schnell ne Webseite zusammengefrickelt
Code:
nano /hdd/www/html/index.php
Code:
include_once("/hdd/www/includes/Bitcoin.php");

# Daten zum Bitcoin Server
$rpcUser "DEINBITCOINRPCUSER";
$rpcPass "DEINBITCOINRPCPASS";
$url "http://127.0.0.1:8332";

# Kontaktaufnahme
$bitcoin = new Bitcoin($url$rpcUser$rpcPass);

# antwortet Bitcoin?
try {
$info $bitcoin->getinfo();
} catch (
Exception $e) {
die($e->getMessage());
}

# dann sammeln wir Daten und bereiten sie etwas auf
$info $bitcoin->getinfo();
$version $info["version"]; 
$blocks $info["blocks"]; 
$difficulty floor($info["difficulty"]); 
$connections $info["connections"]; 

$version = (string)$version;
if(
$version[2] == "0")
   { 
$version[2] = ""; }
$version "0.".$version[0].$version[1].".".$version[2].$version[3];

# und wenn wir alles zusammenhaben, bauen wir die Webseite zusammen
?>






Bitcoin Full Node Statistics



Bitcoin Full Node Statistics



Version echo $version?>   
Blocks echo $blocks?>   
Difficulty echo $difficulty?>   
Connections echo $connections?>   

 


Summary

summary

Daily Traffic

daily traffic

Monthly Traffic

monthly traffic

Top 10

top 10 traffic days



network day

cpu load day

connections 24h

memory day



und feddich.  Cheesy

Edit: hab die Webseite aus Versehen im falschen Vz angelegt, jetz sollt's passen.
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
Ich konnte natürlich nicht bis zum Wochenende abwarten und musste neben der EM ein bischen spielen  Wink
Es scheint so, als hätte ich alles richtig gemacht. Die Images werden abgelegt unter /hdd/www/html/images



Da wir als "root" auf der Banane unterwegs sind, musste ich kleine Änderungen in der /etc/crontab vornehmen:



Also die Anleitung klappt auf jeden Fall!  Cool

Nun zu meinem eigentlichen Problem hihi


was noch fehlt, ist eine Webseite (/hdd/www/html/index.html, oder /hdd/www/html/index.php ), auf der wir die Grafiken anzeigen, aber das sollte jeder selbst hinbekommen

Fast jeder...bestimmt, aber ich hab das noch NIE gemacht  Cheesy

Falls nicht, bin ich auch da gerne behilflich.

Das wäre das I-Tüpfelchen aus meiner Sicht  Smiley
Danke auf jeden Fall bis hierher!
legendary
Activity: 2461
Merit: 1058
Don't use bitcoin.de if you care about privacy!
uuh wow, danke lassdas. Daraus könntest du eigentlich einen eigenen Thread machen!
Hoffe ich habe am Sonntag ein bisschen Zeit mich daran zu versuchen.
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
Sehr Cool, danke dafür!  Cool
Ich sehe am WE Arbeit auf mich zukommen....melde mich falls es klemmt oder ich ne Frage hab  Smiley
legendary
Activity: 3676
Merit: 1495
RAM
Code:
nano ~/memory.sh
Code:
#!/bin/bash
# memory.sh - Memory usage stats

rrdtool=/usr/bin/rrdtool
db=/hdd/rrd/memory.rrd
img=/hdd/www/html/images

if [ ! -e $db ]
then
$rrdtool create $db \
--step 300 \
DS:usage:GAUGE:600:0:U \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:3:672 \
RRA:AVERAGE:0.5:12:744 \
RRA:AVERAGE:0.5:72:1480
fi

$rrdtool update $db -t usage N:`free -b |grep cache:|cut -d":" -f2|awk '{print $1}'`

for period in day week month year
do
$rrdtool graph $img/memory-$period.png -s -1$period \
-t "Memory usage last $period" -z \
-c "BACK#FFFFFF" -c "SHADEA#FFFFFF" -c "SHADEB#FFFFFF" \
-c "MGRID#AAAAAA" -c "GRID#CCCCCC" -c "ARROW#333333" \
-c "FONT#333333" -c "AXIS#333333" -c "FRAME#333333" \
        -h 134 -w 543 -l 0 -a PNG -v "RAM" \
DEF:usage=$db:usage:AVERAGE \
VDEF:min=usage,MINIMUM \
VDEF:max=usage,MAXIMUM \
VDEF:avg=usage,AVERAGE \
VDEF:lst=usage,LAST \
"COMMENT:      \l" \
"COMMENT:        " \
"COMMENT:         " \
"COMMENT:Minimum    " \
"COMMENT:Maximum    " \
"COMMENT:Average    " \
"COMMENT:Current    \l" \
"COMMENT:   " \
"AREA:usage#92CF00:Usage      " \
"LINE1:usage#3F5A00" \
"GPRINT:min:%5.1lf %sB   " \
"GPRINT:max:%5.1lf %sB   " \
"GPRINT:avg:%5.1lf %sB   " \
"GPRINT:lst:%5.1lf %sB   \l" > /dev/null
done
Code:
chmod +x ~/memory.sh



Network Traffic
Code:
nano ~/network.sh
Code:
#!/bin/bash
# network.sh - Network usage stats

rrdtool=/usr/bin/rrdtool
db=/hdd/rrd/network.rrd
img=/hdd/www/html/images
if=eth0

if [ ! -e $db ]
then
$rrdtool create $db \
--step 300 \
DS:in:DERIVE:600:0:12500000 \
DS:out:DERIVE:600:0:12500000 \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:3:672 \
RRA:AVERAGE:0.5:12:744 \
RRA:AVERAGE:0.5:72:1480
fi

$rrdtool update $db -t in:out N:`/sbin/ifconfig $if |grep bytes|cut -d":" -f2|cut -d" " -f1`:`/sbin/ifconfig $if |grep bytes|cut -d":" -f3|cut -d" " -f1`

for period in day week month year
do
$rrdtool graph $img/network-$period.png -s -1$period \
-t "eth0 traffic last $period" -z \
-c "BACK#FFFFFF" -c "SHADEA#FFFFFF" -c "SHADEB#FFFFFF" \
-c "MGRID#AAAAAA" -c "GRID#CCCCCC" -c "ARROW#333333" \
-c "FONT#333333" -c "AXIS#333333" -c "FRAME#333333" \
        -h 134 -w 543 -l 0 -a PNG -v "B/s" \
DEF:in=$db:in:AVERAGE \
DEF:out=$db:out:AVERAGE \
VDEF:minin=in,MINIMUM \
VDEF:minout=out,MINIMUM \
VDEF:maxin=in,MAXIMUM \
VDEF:maxout=out,MAXIMUM \
VDEF:avgin=in,AVERAGE \
VDEF:avgout=out,AVERAGE \
VDEF:lstin=in,LAST \
VDEF:lstout=out,LAST \
VDEF:totin=in,TOTAL \
VDEF:totout=out,TOTAL \
"COMMENT: \l" \
"COMMENT:               " \
"COMMENT:Minimum      " \
"COMMENT:Maximum      " \
"COMMENT:Average      " \
"COMMENT:Current      " \
"COMMENT:Total        \l" \
"COMMENT:   " \
"AREA:out#92CF00:Out  " \
"LINE1:out#3F5A00" \
"GPRINT:minout:%5.1lf %sB/s   " \
"GPRINT:maxout:%5.1lf %sB/s   " \
"GPRINT:avgout:%5.1lf %sB/s   " \
"GPRINT:lstout:%5.1lf %sB/s   " \
"GPRINT:totout:%5.1lf %sB   \l" \
"COMMENT:   " \
"AREA:in#8AD3F1:In   " \
"LINE1:in#49BEEF" \
"GPRINT:minin:%5.1lf %sB/s   " \
"GPRINT:maxin:%5.1lf %sB/s   " \
"GPRINT:avgin:%5.1lf %sB/s   " \
"GPRINT:lstin:%5.1lf %sB/s   " \
"GPRINT:totin:%5.1lf %sB   \l" > /dev/null
done
Code:
chmod +x ~/network.sh



CPU Load
Code:
nano ~/cpuload.sh
Code:
#!/bin/bash
# cpuload.sh - CPU Load stats

rrdtool=/usr/bin/rrdtool
db=/hdd/rrd/cpuload.rrd
img=/hdd/www/html/images

if [ ! -e $db ]
then
$rrdtool create $db \
--step 300 \
DS:load1:GAUGE:600:0:U \
DS:load5:GAUGE:600:0:U \
DS:load15:GAUGE:600:0:U \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:3:672 \
RRA:AVERAGE:0.5:12:744 \
RRA:AVERAGE:0.5:72:1480
fi

uptime=`uptime`
base="${uptime##*:}"

input="$(echo -e "${base}" | tr -d '[[:space:]]')"
load1=$(echo $input | cut -d',' -f1-2 | tr ',' '.')
load5=$(echo $input | cut -d',' -f3-4 | tr ',' '.')
load15=$(echo $input | cut -d',' -f5-6 | tr ',' '.')

$rrdtool update $db -t load1:load5:load15 N:$load1:$load5:$load15

for period in day week month year
do
$rrdtool graph $img/cpuload-$period.png -s -1$period \
-t "CPU Load last $period" -z \
-c "BACK#FFFFFF" -c "SHADEA#FFFFFF" -c "SHADEB#FFFFFF" \
-c "MGRID#AAAAAA" -c "GRID#CCCCCC" -c "ARROW#333333" \
-c "FONT#333333" -c "AXIS#333333" -c "FRAME#333333" \
        -h 134 -w 543 -l 0 -a PNG -v "CPU" \
DEF:load1=$db:load1:AVERAGE \
DEF:load5=$db:load5:AVERAGE \
DEF:load15=$db:load15:AVERAGE \
VDEF:lst1=load1,LAST \
VDEF:lst5=load5,LAST \
VDEF:lst15=load15,LAST \
VDEF:avg1=load1,AVERAGE \
VDEF:avg5=load5,AVERAGE \
VDEF:avg15=load15,AVERAGE \
VDEF:max1=load1,MAXIMUM \
VDEF:max5=load5,MAXIMUM \
VDEF:max15=load15,MAXIMUM \
"COMMENT:        " \
"COMMENT:         " \
"COMMENT:         " \
"COMMENT:Last   " \
"COMMENT:Average   " \
"COMMENT:Maximum   \l" \
"COMMENT:        " \
"COMMENT:        " \
"AREA:load1#92CF00:1m     " \
"GPRINT:lst1: %1.2lf    " \
"GPRINT:avg1: %1.2lf     " \
"GPRINT:max1: %1.2lf   \l" \
"COMMENT:        " \
"COMMENT:        " \
"LINE3:load5#49BEEF88:5m     " \
"GPRINT:lst5: %1.2lf    " \
"GPRINT:avg5: %1.2lf     " \
"GPRINT:max5: %1.2lf   \l" \
"COMMENT:        " \
"COMMENT:        " \
"LINE2:load15#C3E9FA:15m    " \
"GPRINT:lst15: %1.2lf    " \
"GPRINT:avg15: %1.2lf     " \
"GPRINT:max15: %1.2lf   \l" > /dev/null
done
Code:
chmod +x ~/cpuload.sh



ConJobs
Code:
crontab -e
Code:
*/5 * * * * nice /home/pi/memory.sh >/dev/null 2>&1
*/5 * * * * nice /home/pi/network.sh >/dev/null 2>&1
*/5 * * * * nice /home/pi/cpuload.sh >/dev/null 2>&1


Damit hätten wir jetzt eigentlich alles zusammen,
was noch fehlt, ist eine Webseite (/hdd/www/html/index.html, oder /hdd/www/html/index.php ), auf der wir die Grafiken anzeigen, aber das sollte jeder selbst hinbekommen (sollen ja auch nich alle gleich aussehen, unsere Stats).  Wink
Falls nicht, bin ich auch da gerne behilflich.

Man könnte das Ganze natürlich noch etwas aufräumen, die Anzahl der Scripte reduzieren, indem man sie
zusammenfügt,
z.B. ein Script, das alle Datenbanken updatet und eines, das die Grafiken erstellt,
aber das ist dann eher Schönheitschirurgie.
So kann man sich erstmal an jedem Script einzeln austoben und macht bei nem Fehler nich gleich alles wieder kaputt.  Grin

Ich wünsche viel Erfolg beim rumprobieren.
legendary
Activity: 3676
Merit: 1495
Der Webserver läuft, also machen wir mit der Installation von vnstat weiter
Code:
sudo apt-get install vnstat vnstati php5-gd
erstellen ein Verzeichnis für die Grafiken im root des Webservers
Code:
mkdir /hdd/www/html/images
und ein Script, das die Grafiken erzeugt
Code:
nano ~/vnstati.sh
welches wir mit Inhalt füllen
Code:
#!/bin/bash
# vnstati.sh - network stats creation script

vnstati -vs -ne -nh -i eth0 -o /hdd/www/html/images/summary.png -ru 0
vnstati -d -ne -nh -i eth0 -o /hdd/www/html/images/daily.png -ru 0
vnstati -m -ne -nh -i eth0 -o /hdd/www/html/images/monthly.png -ru 0
vnstati -t -ne -nh -i eth0 -o /hdd/www/html/images/top10.png -ru 0
mit Str-O + Enter speichern und mit Str-X  beenden.

Welche Grafik -vs, -d, -m und -t jeweils erstellen, sieht man schön an der Datei-Endung,
-ne (noedge) erstellt die Grafik ohne Umrandung, -nh (noheader)  ohne Kopfzeile und mit -ru (0,1) kann man zwischen bits und bytes wählen,
Weitere Optionen und Infos gibts unter "vnstati --help", oder "man vnstati".

Das gerade erstellte Script müssen wir nun noch ausführbar machen
Code:
chmod +x ~/vnstati.sh
und einen Cronjob erstellen, der es automatisch aufruft. Dazu unter
Code:
crontab -e
ganz unten einfach
Code:
# updating every 5 minutes
*/5 * * * * nice /home/pi/vnstati.sh >/dev/null 2>&1
einfügen, mit Str-O + Enter speichern und mit Str-X beenden.

Nach spätestens 5 Minuten sollten die Grafiken unter http:///images/ zur Abholung bereitliegen.


Weiter geht's mit der Installation vom rrdtool
Code:
sudo apt-get install rrdtool
und anlegen eines Verzeichnisses für die entsprechenden Datenbanken
Code:
mkdir /hdd/rrd

Jetzt der komplizierteste Teil (zumindest für mich, außer copy&paste müsst Ihr eigentlich nix machen, wenn Ihr nich wollt),
die Erstellung der Datenbanken, das Updaten selbiger und kreieren der entsprechenden Graphen.
Dazu verwenden wir jeweils ein Script für Connections/Traffic/CPU-Load...,
die alle nach folgendem Schema aufgebaut sind:
Im oberen Teil geben wir u.a. den Pfad an, in dem die Datenbank gespeichert werden soll,
es folgt ein Check, ob die Datenbank schon existiert, wenn nicht, wird sie angelegt.
Danach ein Update der Datenbank mit den aktuellen Werten und zum Schluss das Erstellen der Grafik.

Da wir durch vnstat ja schon Netzwerk-Statistiken haben, fangen wir mal mit dem Connections-Script an,
wir erstellen es mit
Code:
nano ~/connections.sh
füllen es mit Inhalt
Code:
#!/bin/bash
# connections.sh - Bitcoin connection stats

rrdtool=/usr/bin/rrdtool
db=/hdd/rrd/connections.rrd
img=/hdd/www/html/images

if [ ! -e $db ]
then
$rrdtool create $db \
--step 300 \
DS:connections:GAUGE:600:0:U \
RRA:AVERAGE:0.5:1:288 \
RRA:AVERAGE:0.5:3:672 \
RRA:AVERAGE:0.5:12:744 \
RRA:AVERAGE:0.5:72:1480
fi

n=`/usr/local/bin/bitcoin-cli getconnectioncount`
$rrdtool update $db -t connections N:"$n"

for period in day week month year
do
$rrdtool graph $img/connections-$period.png -s -1$period \
-t "Connections last $period" -z \
-c "BACK#FFFFFF" -c "SHADEA#FFFFFF" -c "SHADEB#FFFFFF" \
-c "MGRID#AAAAAA" -c "GRID#CCCCCC" -c "ARROW#333333" \
-c "FONT#333333" -c "AXIS#333333" -c "FRAME#333333" \
        -h 134 -w 543 -l 0 -a PNG -v "#" \
DEF:connections=$db:connections:AVERAGE \
VDEF:max=connections,MAXIMUM \
VDEF:avg=connections,AVERAGE \
VDEF:lst=connections,LAST \
"COMMENT:         \l" \
"COMMENT:            " \
"COMMENT:             " \
"COMMENT:Last        " \
"COMMENT:Average    " \
"COMMENT:Maximum    " \
"COMMENT:           \l" \
"COMMENT:   " \
"AREA:connections#92CF00:Connections          " \
"LINE1:connections#3F5A00" \
"GPRINT:lst:%2.0lf           " \
"GPRINT:avg:%2.0lf         " \
"GPRINT:max:%2.0lf          \l" > /dev/null
done
speichern mit Str-O + Enter und beenden mit Str-X,
ausführbar machen
Code:
chmod +x ~/connections.sh
neuen CronJob erstellen, indem wir wieder unter
Code:
crontab -e
am Ende
Code:
# updating every 5 minutes
*/5 * * * * nice /home/pi/connections.sh >/dev/null 2>&1
einfügen, mit Str-O + Enter speichern, mit Str-X beenden.

Auch hier sollten nach 5 Minuten die Grafiken unter http:///images/ zur Abholung bereitliegen,
jeweils eine für Daily, Weekly, Monthly und Yearly Stats.

Weitere Scripte (RAM/CPU/Traffic) folgen.
Pages:
Jump to: