У нас есть MRTG, настроенный для мониторинга сети. Для этого мы используем инструмент RRD для получения графика данных графика. Теперь я создал скрипт, который на самом деле извлекает данные из файлов RRD, поэтому из извлеченных данных мне нужно максимум и максимум за 24 часа. Теперь с этими максимальными значениями я вычисляю использование плохой пропускной способности для каждого клиента / ссылки.
Теперь мой вопрос: есть одна команда rrd для получения значений max in, max out, min in и min out из файлов RRD.
Так как я новичок в этом RRD, я был бы признателен, если бы команда также была представлена в вашем решении.
Пожалуйста помоги.
В RRD-файлах, созданных MRTG, источники данных «in» и «out» называются «ds0» и «ds1» соответственно. Существует 8 RRA; они соответствуют гранулярности 5 минут, 30 минут, 2 часа и 1 дня с накоплениями AVG и MAX. По умолчанию они будут иметь длину 400 (более старые версии MRTG) или длину 800 (более новые версии MRTG), что означает, что у вас, скорее всего, будет временное окно 2 дня, 2 недели, 2 месяца и 2 года соответственно для этих RRAS. (Обратите внимание, что RRDTool 1.5 может опускать 1pdp MAX RRA, поскольку это функционально идентично 1pdp AVG RRA)
Для вас это означает следующее:
Если вас интересуют только вычисления в течение последнего 24-часового периода, тогда во всех расчетах может использоваться RRA с самой высокой степенью детализации.
Обратите внимание, что, поскольку все границы шагов рассчитываются с использованием UCT, если вы не проживаете в этом часовом поясе, вы не можете использовать FETCH или XPORT для получения необходимых данных, которые необходимо суммировать по общему временному окну.
Чтобы получить данные, вы можете использовать что-то вроде этого:
rrdtool graph /dev/null -e 00:00 -s "end-1day" --step 300
DEF:inrmax=target.rrd:ds0:AVERAGE:step=300:reduce=MAXIMUM
DEF:outrmax=target.rrd:ds1:AVERAGE:step=300:reduce=MAXIMUM
DEF:inrmin=target.rrd:ds0:AVERAGE:step=300:reduce=MINIMUM
DEF:outrmin=target.rrd:ds1:AVERAGE:step=300:reduce=MINIMUM
VDEF:inmax=inrmax,MAXIMUM
VDEF:inmin=inrmin,MINIMUM
VDEF:outmax=outrmax,MAXIMUM
VDEF:outmin=outrmin,MINIMUM
LINE:inrmax
PRINT:inmax:"In Max=%lf"PRINT:inmin:"In Min=%lf"PRINT:outmax:"Out Max=%lf"PRINT:outmin:"Out Min=%lf"
Несколько замечаний по этому поводу:
Когда вы вызываете rrdtool :: graph из вашего php-скрипта, просто передайте ему параметры таким же образом, как при работе с командной строкой. Если вы не используете Linux, вам может понадобиться что-то отличное от / dev / null.
Других решений пока нет …