RRDtools — установка и использование FreeBSD

RRDtool

RRD — это кольцевая база данных. Главная особенность данной БД заключается в том, что она всегда имеет фиксированный размер. То есть когда, будет достигнут конец в каком-нибудь поле в такой БД, то данные будут записываться в самое начало, тем самым, затирая предыдущие. В RRD вместо таблиц, колонок и полей вводятся другие понятия. В ней есть так называемые источники данных (DS), которые сами по себе ничего не хранят. Для простоты их можно интерпретировать как обычные колонки в таблице. Хранение же данных возлагается на кольцевые архивы (RRA). RRA привязывается к источнику данных и обладает такими свойствами как: количество ячеек; применяемая функция консолидации; интервал времени, после которого к данным применяется функция консолидации, и результат ее работы записывается в очередную ячейку. Пожалуй, это все, что требуется знать о структуре данных в RRD.

Установка RRDTools:

Используемая система:

Используемая версия порта:

Обновляем порты:

Если порты ранее не обновлялись — то рекомендуется запустить так:

Конфигурируем, устанавливаем порт:

Конфигурация RRDTools

Параметры сборки я оставил как есть. Единственное замечание — если вы хотите подписывать графики русскими буквами, то необходимо поставить галочку на опцию DEJAVU, иначе у вас вместо русских букв будут кракозябры. К небольшому сожалению порт тянет за собой не мало зависимостей, например библиотеки glib, cairo, x11. После установки порта будет установлен необходимый для работы набор утилит.

О работе с пакетом:

С пакетом rrdtool ставится несколько утилит и одна из них имеет одноименное название — rrdtool. С помощью нее можно осуществлять различные манипуляции с кольцевой базой данных (создавать/изменять БД, обновлять/извлекать данные, строить графики и т.п.). Утилита имеет следующий синтаксис:

rrdtool [options] command command_options

Далее я опишу некоторые команды (за более подробной информацией обращайтесь в документацию):

Создание кольцевой базы данных:

Описание параметров:

  • filename — имя файла.
  • —start, -b — время в секундах, прошедших с начала эпохи Unix (1970-01-01 UTC), с которого происходит сбор статистики. RRDtool не будет принимать данные старее указанного здесь времени. По умолчанию: now — 10 секунд.
  • —step, -s — интервал, через который данные поступают в базу. По умолчанию: 300 секунд.
  • —no-overwrite, -O — не перезаписывать существующий файл с таким же именем.
  • DS:ds-name:DST:dst arguments — источник данных или проще — колонка в БД, в которой хранятся данные.
    • ds-name — имя колонки (не может быть длиннее 19 символов; допустимые символы: [a-zA-Z0-9_]).
    • DST — тип источника данных. Может принимать значения:
      • GAUGE — подходит для данных типа: температуры, загрузки процессора, объема памяти.
      • COUNTER — предназначен для хранения данных с счетчиков, например трафика. Подразумевается, что значение счетчика никогда не уменьшается, за исключением случая его переполнения.
      • DERIVE — счетчик, который может уменьшаться.
      • ABSOLUTE — тоже счетчик, только он сбрасывается после чтения.
      • COMPUTE — позволяет задать rpn-формулу для обработки данных.
    • heartbeat — максимальное кол-во секунд ожидания данных для ячейки, после которого значение помечается как UNKNOWN. Рекомендуется устанавливать в 2*step.
    • min — минимально допустимое значение. Если ограничений нет, то указывайте здесь U.
    • max — максимально допустимое значение. Если ограничений нет, то указывайте здесь U.
  • RRA:CF:xff:steps:rows — параметры кольцевых архивов (RRA). Каждый такой архив может содержать некоторые значения или статистику для DS за определенный период. Прежде чем попасть в архив, данные обрабатываются функцией консолидации (CF). Доступны следующие функции консолидации:
    • AVERAGE — среднее значение за определенный период
    • MIN — минимальное значение
    • MAX — максимальное значение
    • LAST — последнее значение

    xff — определяет долю неопределённых значений в интервале консолидации, при которой консолидированное значение ещё считается определённым (0..1).
    steps — определяет количество значений, для которых будет использована функция консолидации, после чего результат ее работы записывается в архив.
    rows — количество ячеек, используемое для хранения консолидированных данных.

Занесение данных в базу:

Описание параметров:

  • filename — имя файла.
  • —template, -t — с помощью этой опции задается шаблон, который позволяет вам указать в какие источники данных и в каком порядке необходимо произвести запись в базу. Если указанных здесь источников данных нет в файле, то запись будет отменена и прога выкинет ошибку.
  • —daemon — если задан, то rrdtool будет пытать подключиться к демону rrdcached. Если попытка будет неудачной, то выдается сообщение об ошибке.
  • time|N:value[:value…] — данные, связанные со временем, которые пишутся в базу. Если во времени указать N, то будет подставлено текущее время. Время так же можно задавать в секундах с начала эпохи Unix или в стиле AT (за подробностями в документацию).

Получение данных из базы:

]

Описание параметров:

  • filename — имя файла.
  • CF — функция консолидации применяемая к данным, которые вы хотите получить.
  • -r, —resolution — требуемый интервал значений.
  • -s, —start — время, с которого выводить данные. По умолчанию: end-1day.
  • -e, —end — время, до которого выводить данные. По умолчанию: now.
  • —daemon — адрес демона rrdcached.

Получение информации о структуре базы данных в удобном формате:

Изменение размера RRA:

  • filename — имя файла.
  • rranum — номер RRA. Номер можно узнать с помощью команды rrdtool info.
  • GROW|SHRINK — действие к RRA: увеличить/уменьшить.
  • rows — количество добавляемых/удаляемых ячеек.

Изменение некоторых характеристик базы данных:

С помощью данной команды можно изменить характеристики базы или отдельно взятого DS (например, переименовать его). За информацией обращайтесь в документацию.

Рисование графиков:

Вот описание некоторых опций (за полным списком обращайтесь в документацию):

  • filename — имя графического файла.
  • -s, —start seconds — время, с которого начать строить график. По умолчанию: end — 1 день.
  • -e, —end seconds — время, до которого строить график. По умолчанию: now.
  • -o, —logarithmic — логарифмическое масштабирование оси ординат.
  • -z, —lazy — генерировать новый графический файл, если предыдущий устарел или его не существует.
  • -g, —no-legend — не выводить описания графиков.
  • —legend-position=(north|south|west|east) — позиция для вывода описания графиков. По умолчанию: south.
  • —legend-direction=(topdown|bottomup) — выводить описание графиков по вертикали, с указанным здесь направлением.
  • —daemon — адрес демона rrdcached.
  • -j, —only-graph — вывести только график, без какого-либо текста.
  • -T, —tabwidth width — ширина табуляции в пикселях. По умолчанию: 40.
  • -E, —slope-mode — может немного улучшить внешний вид картинки.
  • -a, —imgformat PNG|SVG|EPS|PDF — формат графического файла.
  • -t, —title string — заголовок, помещаемый вверху графика.
  • -v, —vertical-label — вертикальный текст, слева от графика.
  • -w, —width — длина картинки в пикселях. По умолчанию: 400.
  • -h, —height — высота картинки в пикселях. По умолчанию: 100.
  • DEF:vname=rrd:ds-name:CF — данный параметр позволяет выдернуть данные из определенного источника данных (а точнее из кольцевого архива, связанного с ним) в базе и использоваит эти данные для построения графика.
    • vname=rrd — vname — имя переменной, через которую можно обращаться к данным, а rrd — путь до базы данных.
    • ds-name — имя источника данных в БД.
    • CF — функция консолидации, чтобы тулза знала из какого RRA выдергивать данные.
  • CDEF:vname=rpn-expression — позволяет задать новую переменную, которая будет содержать результат математического выражения, записанного в обратной польской нотации.
  • VDEF:vdefname=rpn-expression — позволяет задать переменную, которая будет содержать результат применяемой функции к данным. Функции могут быть такими: AVERAGE, MAXIMUM, MINIMUM, LAST.
  • PRINT:vdefname:format — выводит строку в раздел описания графика(ов). Как правильно оформить поле format смотрите в документации.
  • GPRINT:vdefname:format — работает так же, как и PRINT.
  • COMMENT:text — выводит обычный текст.
  • TEXTALIGN:{left|right|justified|center} — выравнивание текста в разделе описания графиков.
  • LINE[width]:vname[#rrggbb[aa][:[legend][:STACK]]] — рисует линию графика, определенной толщины (width) и для определенной переменной (vname). Можно задать цвет и описание (которое будет выводится в разделе описания графиков). Ключевое слово STACK значит, что данная линия будет рисоваться над предыдущей LINE или AREA.
  • AREA:vname[#rrggbb[aa][:[legend][:STACK]]] — данная опция аналогична LINE, только все параметры задаются для внутренней области графика (то есть для того, что под LINE)

Части статей взяты тут и тут

Примеры использования:

1. Мониторинг температуры процессора

2. Мониторинг загрузки процессора

VN:F [1.9.22_1171]
Рейтинг: 0.0/5 (0 голос (-ов) всего)

5 Comments Добавить комментарий

  1. Nekit

    Приветствую. Основной текст (а также и код программы) в которых взят со статьи с сайта http://www.info-x.orghttp://www.info-x.org/freebsd/programmy/monitoring_sistemy_s_pomoshchyu_rrdtool.html. В конце вашей статьи имеется закрытая ссылка на источник, что противоречит правилам копирования материалов с сайта http://www.info-x.org (ссылки должны быть доступны для индексирования, то есть прямыми). Прошу вас поправить данное упущение.

    VN:F [1.9.22_1171]
    Рейтинг: 0 (всего 0 голос (-ов))
  2. loginza.ru Daniil V. Savenkoff

    Доброго времени суток! Ссылки на внешние ресурсы в блоге экранируются автоматически. Сайт http://www.info-x.org добавлен в исключения.

    VN:F [1.9.22_1171]
    Рейтинг: 0 (всего 0 голос (-ов))
  3. Nekit

    Благодарю.

    VN:F [1.9.22_1171]
    Рейтинг: 0 (всего 0 голос (-ов))