Jako monitorovanou veličinu jsem si zvolil load na serveru
Všechny balíčky součástí standardních repozitářů pro námi použitý OS Ubuntu 18.04
sudo apt install rrdtool
rrdtool create jméno_databáze.rrd --start N --step 60 #start nyní, hodnota každých 60s
DS:load:GAUGE:120:U:U #na hodnotu čekej max 120s, pak ji nahraď NaN
RRA:AVERAGE:0.5:1:60 #celkem jedno, ptáme se na konkrétní hodnoty (avg z 1 = 1)
#ukládej po dobu 1h (60 cyklů, 1 cyklus = 1 minuta)
RRA:AVERAGE:0.5:5:288 #průměr z 5 minut, 288 pětiminutových cyklů (288*5m = 24h)
RRA:AVERAGE:0.5:60:168 #průměr z 60 minut, 168 hodinových cyklů (168*1h = 1w)
#!/bin/sh
a=0
while [ "$a" == 0 ]; do
snmpget monitoring.martinvylet.cz UCD-SNMP-MIB::laLoadFloat.1 > snmp_reply
load=`awk '{print $5}' snmp_reply`
# I can use N as a replacement for the current time
rrdtool update target.rrd N:$load
# sleep until the next 60 seconds are full
perl -e 'sleep 60 - time % 60'
done # end of while loop
#!/bin/sh
rrdtool graph -A 24h.png --end now --start end-24h --step 300 -l 0 -u 1 --width 1080 --height 500 DEF:obs=target.rrd:load:AVERAGE LINE1:obs#0000ff:"5 minutovy prumerny load"
cp 24h.png /var/www/html/images/
rrdtool graph -A 1h.png --end now --start end-1h -S 60 -l 0 -u 1 --width 1080 --height 500 DEF:obs=target.rrd:load:AVERAGE LINE1:obs#0000ff:"1 minutovy prumerny load"
cp 1h.png /var/www/html/images/
rrdtool graph -A 1w.png --end now --start end-1w -l 0 -u 1 --width 1080 --height 500 DEF:obs=target.rrd:load:AVERAGE LINE1:obs#0000ff:"hodinovy prumerny load"
cp 1w.png /var/www/html/images/
* * * * * bash /home/student/generateGraph.sh