Очень хорошее описание http://www.bog.pp.ru/work/rrdtool.html#at
Создаем файл
rrd_file = "/usr/local/www/nagios/2week.rrd" def rrd_create(rrd_file): if not os.path.isfile(rrd_file): rrdtool.create(rrd_file, "--step", "86400", "DS:available:GAUGE:172800:0.0:100.0", "RRA:AVERAGE:0.5:1:366", )step - интервал через который будут обновляться значения. У нас 86400 сек - это 1 день т.е. ежедневно.
DS:available:GAUGE:172800:0:100 - источник данных
available - название источника
GAUGE - тип (в данном случае поддерживает числа с плавающей точкой)
172800 - значение которое должно быть 2*step :)
0:100 - интервал допустимых значений
RRA:AVERAGE:0.5:1:366 - архив значений
AVERAGE - тип (в данном случае среднее значение)
1:366 - означает что в архиве 366 записей с интервалом 1*step
Вносим данные
def rrd_update(rrd_file, value): rrdtool.update(rrd_file, "N:%s" % str(value))N - означает на текущее время (Now)
через двоеточие указываются значения DS ( В случае нескольких DS могло быть так N:%s:%s:%s)
Создаем график в png
import tempfile fd,path = tempfile.mkstemp('.png') rrdtool.graph("/tmp/net.png", "--imgformat", "PNG", "--height", "250", "--width", "550", "--end", "now", "--start", "end-2w-1h", "--lower-limit", "99.3", "--upper-limit", "100.0", "--zoom", "1.5", "--y-grid", "0.05:1", "--x-grid=DAY:1:DAY:1:DAY:2:0:%a", "--right-axis", "1:0", "--right-axis-format", "%0.2lf%%", "--slope-mode", "--vertical-label=Up times/day", "DEF:avl=%s:available:AVERAGE" % rrd_file, "AREA:avl#00FF00:Up times(%)", 'GPRINT:avl:AVERAGE:avg\: %2.2lf%%')Описание всех параметров есть в ссылке приведенной выше.
Backup и Restore
Фаил rrd платформо зависим и может не заработать на другом железе или ОС(например из 32бит в 64бит), поэтому принято хранить бэкапы в xml.rrdtool dump файл.rrd > бэкап.xml
XML можно править вручную и залить обратно в rrd
rrdtool restore бэкап.xml > файл.rrd
Результат:
rrdtool пример графика |
Для обучения лучше выбрать меньший интервал чем 1 день, например 2 мин(step = 120).
Комментариев нет:
Отправить комментарий