RRDtool (Acronym for Round-Robin Database Tool)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:22, 20 июня 2016.
RRDtool
fraimed
Разработчики: Tobias Oetiker
Постоянный выпуск: 1.5.3 / May 1, 2015 (2015-05-01)
Состояние разработки: Active
Написана на: C,Perl
Операционная система: Windows,Linux,OS X
Локализация: English
Веб-сайт oss.oetiker.ch/rrdtool//

RRDtool (англ. Round Robin Database) - программа для работы с RRD, обеспечивающая хранение и отображение данных мониторинга (загрузка каналов, температура и любая другая зависящая от времени последовательность данных, которую можно получить некоторым способом). Задумывалась как повторная, но более правильная реализация MRTG[1]. Объём хранимых данных не увеличивается со временем (ячейки хранения используются циклически). Использование различных функций консолидации данных позволяет охватывать большие интервалы времени без чрезмерного увеличения объема БД за счет снижения разрешающей способности.

Список утилит

  • rrdtool — утилита для работы с кольцевой базой данных
  • rrdcached — демон для кеширования данных
  • librrd — набор библиотек
  • rrdbuild — инструменты для сборки программ
  • rrdcgi — инструменты для создания веб-страниц с графиками на основе шаблонов
  • rrdcreate — программы для создания новых баз данных
  • rrddump — утилита совершающая дамп информации в формате XML
  • rrdfetch — утилиты для получения информации из кольцевой базы данных
  • rrdfirst — утилита которая возвращает первой набор данных, так называемый RRA (англ. round robin archive)[2]
  • rrdflushcached — сброс кеша для конкретной базы
  • rrdgraph — набор утилит для обеспечения графических функций
  • rrdgraph_data — функции предварительной подготовки данных для rrdgraph
  • rrdgraph_examples — примеры использования rrdgraph
  • rrdgraph_graph — CLI (англ. Command Line Interface) интерфейс командной строки для rrdgraph
  • rrdgraph_libdbi — выборка информации посредством libdbi для последующей визуализации
  • rrdgraph_rpn — инструмент стековой обработки в формате обратной польской записи RPN (англ. Reverse Polish Notation)
  • rrdinfo — выводит информацию о конкретной базе данных
  • rrdlast — утилита которая возвращает последний набор данных, так называемый RRA (англ. round robin archive)
  • rrdlastupdate — возвращает самую актуальную информацию на текущий момент
  • rrdresize — изменяет размер RRA (англ. round robin archive) и создает новый файл типа .rrd
  • rrdrestore — восстанавливает данные из ранее созданного дампа в формате XML
  • rrdtune — утилита для настройки основных параметров RRD
  • rrdupdate — внесение нового набора данных в базу
  • rrdxport — экспортирует данные (в XML формат) из одной или нескольких баз

Примеры

Простая HTML страница с единственным графиком:

 #!/usr/local/bin/rrdcgi
     <html>
     <head><title>RRDCGI Demo</title></head>
     <body>
     <h1>RRDCGI Example Page</h1>
     <p>
     <RRD::GRAPH demo.png --lazy --title="Temperatures"
          DEF:cel=demo.rrd:exhaust:AVERAGE
          LINE2:cel#00a000:"D. Celsius">
     </p>
     </body>
     </html>

График с формой выбора RRD БД в качестве источника данных:

#!/usr/local/bin/rrdcgi
 <html>
 <head><title>RRDCGI Demo</title></head>
 <body>
 <h1>RRDCGI Example Page for <RRD::CV RRD_NAME></h1>
 <h2>Selection</h2>
 <form><input name="RRD_NAME" type="radio" value="roomA"> Room A,
       <input name="RRD_NAME" type="radio" value="roomB"> Room B.
       <input type="submit"></form>
 <h2>Graph</h2>
 <p>
 <RRD::GRAPH <RRD::CV::PATH RRD_NAME>.png --lazy
          --title "Temperatures for "<RRD::CV::QUOTE RRD_NAME>
          DEF:cel=<RRD::CV::PATH RRD_NAME>.rrd:exhaust:AVERAGE
          LINE2:cel#00a000:"D. Celsius">
 </p>
 </body>
 </html>

RRD сервер

Если вы хотите запустить RRDtool в качестве серверного приложения, то вы должны выделить для него порт TCP/IP. Для этого, в Unix-подобных операционных системах, нужно прописать описание сервиса в /etc/services:

rrdsrv 13900/tcp RRD server

Вы можете использовать любой не занятый порт. Клиенты должны обращается к серверу используя выбранный порт. После того как вы выбрали порт, можно обеспечить автоматический запуск RRD сервера при старте системы прописав в /etc/inetd.conf (или аналогичном для вашей ОС):

rrdsrv stream tcp nowait root /opt/rrd/bin/rrdtool rrdtool - /var/rrd

Не забудьте предварительно создать директорию для хранения файлов баз данных /var/rrd и перезапустить inetd (или просто перегрузиться). Если вы все сделали правильно, то сможете обращаться к серверу с помощью сокетов в Perl, например с помощью netcat. Быстро проверить работоспособность сервера можно, выполнив команду:

telnet localhost rrdsrv

Программы, использующие RRDtool

Примечания

  1. MRTG (англ. Multi Router Traffic Grapher) — является свободным программным обеспечением под лицензией GPL. Это инструмент для организации сервиса мониторинга и измерения данных с течением времени. Данные от различных источников собираются и затем отображаются в виде графиков.

Ссылки