LINUX.ORG.RU
решено ФорумAdmin

collectd и RRDtools - принцип работы?


0

2

Нужна статистика по производительности нескольких серверов виртуализации на базе CentOS 5.5 + KVM + Libvirt. Основное требование, это графики за различные промежутки времени.

1.Поставил collectd. Видел результат его работы в графиках, то, что надо!

2.Подключил нужные плагины: cpu, mem, disk, net, libvirt, rrdtool

3.Все пишется в соответствующие файлы *.rrd в каталог /var/lib/collectd/HOSTNAME/*

Теперь RRDtool...

Не могу понять как они(collectd, rrdtool) должны взаимодействовать?

Во всех мануалах, rrdtool как будто бы работает абсолютно один без всяких collectd. Сам создает базу, сам в нее пишет, и,сам рисует графики.

При этом collectd, нужен однозначно так как хороше умеет мониторить libvirt!

В общем есть файлы созданные collectd(*.rrd) и необходимо нарисовать графики. Но как это сделать я не понемаю?

Собственно по взаимодействию - никак. Ты просто пишешь скрипт, в котором rrdtool берет базу и по заданным парамерам генерирует png'шки, которые уже смотришь, например, через браузер. Скрипт вызываешь из cron'a так часто, как тебе надо (но, естественно, не чаще, чем шаг базы - смысла нет) - раз в минуту, например.

YAR ★★★★★ ()

ищешь collection.cgi из пакета collectd, устанавливаешь в cgi-bin, создаешь /etc/collection.conf, идешь на cgi-скрипт браузером, он тебе скажет, каких перл-модулей не хватает, ставишь их, и он все и нарисует.

Bers666 ★★★★★ ()
Ответ на: комментарий от Bers666

>Ты просто пишешь скрипт, в котором rrdtool берет базу и по заданным парамерам генерирует png'шки, которые уже смотришь, например, через браузер.

я так понемаю, что брать базу(*.rrd) rrdtool может ту которую пишет collectd? правильно?

я так и предпологал изначально. Но мне непонятно куда rrdtool кладет png'шки? среди опций rrdtool graph * не нашел?

ищешь collection.cgi из пакета collectd, устанавливаешь в cgi-bin, создаешь /etc/collection.conf, идешь на cgi-скрипт браузером, он тебе скажет, каких перл-модулей не хватает, ставишь их, и он все и нарисует.

а в таком случае, получается можно обойтись вообще без rrdtool?

FATruden ()
Ответ на: комментарий от FATruden

> Но мне непонятно куда rrdtool кладет png'шки? среди опций rrdtool graph * не нашел?

«имя-файла» по ссылке выше - 3-й параметр. Можешь посмотреть, как оно у меня делается - http://linuxoid.in/RRD:_статистика_загруженности_сетевого_интерфейса - нижний скрипт

а в таком случае, получается можно обойтись вообще без rrdtool?


Я думаю, он использует его на бэкэнде, так что установить все равно придется.

YAR ★★★★★ ()
Ответ на: комментарий от YAR

>«имя-файла» по ссылке выше - 3-й параметр

я думал это файл *.rrd на основе которго делается график а не выходной вайл....

тогда как rrdtool указать расположение rrd-файлов создоваемых collectd?

P.S Спасибо за скрипт, просто хочу разобраться.

FATruden ()
Ответ на: комментарий от FATruden

Хинт: на одном графике могут быть данные с разных баз.

Если еще раз посмотришь на мой скрипт - база там передается как первый параметр функции. Иначе говоря:

DEF:внутренняя переменная для дальнейшего использования=файл базы:имя параметра, указанного при создании базы:принцип усреднения

YAR ★★★★★ ()
Ответ на: комментарий от FATruden

АА, зачем ты страдаешь хренью? этот скрипт уже написан специально для collectd и лежит в /usr/share/doc/collectd .

Bers666 ★★★★★ ()

я вообще накидал кучку cgi-скриптов на баше, в которых дергается rrdtool graph, png напрямую в браузер скриптом отдается.

leave ★★★★★ ()

> Не могу понять как они(collectd, rrdtool) должны взаимодействовать?

Еcли collectd пишет в rrd-базу, они уже взаимодействуют: collectd, через соответствующий плагин, использует librrd. Больше никаких взаимодействий не предусмотрено. Система отображения графиков к collectd отношения не имеет. В контрибах там есть collection3, отдельно есть collection4, но это - отдельное ПО, которое, так же, использует rrdtool.

необходимо нарисовать графики


Рисовать можно, чем угодно, что умеет понимать rrd, либо писать самому что-то. Можно, как пишут, хоть cacti прикрутить, оторвав его собственный механизм сбора данных.

Но, честно говоря, я так и не нашёл для себя ничего удобного. collection4 ещё руки посмотреть не дошли, у collection3 идея была не плоха, но сам автор написал, что это примерный код наспех.

AS ★★★★★ ()
Ответ на: комментарий от AS

Спасибо большое всем! Разобрался.

Буду юзать пока скрипты, а там поглядим...

Пробовал cacti нечего, рисует красиво, но ставить apache, php, mysql на сервер виртуализации нет желания вообще.

Хотел еще drraw потестить, пилил, пилил и так нечего и не вышло...

P.S RRDtool, как пишут на сайте индустриальный стандарт а фронт-енда для него нормального нет...обидно..

FATruden ()
Ответ на: комментарий от FATruden

> а фронт-енда для него нормального нет.

А 100500 систем мониторинга на его базе чем являются тогда?

YAR ★★★★★ ()
Ответ на: комментарий от YAR

> А 100500 систем мониторинга на его базе чем являются тогда ?

Это штуки, специфично заточенные на конкретное применение. Или я какую-то часть из них не видел. Давай ссылки. Я в поиске, вплоть до того, что уже сам начал кое-что под своё видение ситуации ковырять. Но с удовольствием брошу (надо c4 поставить, может, можно и бросать). :-)

Мне много не надо: должна быть возможность группировать графики и должна быть удобная возможность увеличения детализации. Либо как в collection3 сделано, либо, например, по клику на графике чтоб открывалось несколько графиков по той же rrd-шке с заданными вариантами детализации.

AS ★★★★★ ()
Ответ на: комментарий от FATruden

> Пробовал cacti нечего, рисует красиво, но ставить apache, php, mysql на сервер виртуализации

Без Apache или подобного, наверное, не обойдёшься - смотреть-то надо как-то. php - на чём-то же оно должно быть написано... Хотя мне Perl больше по душе. mysql - это, как я понял, когда cacti смотрел, не обязательно. Это только если данные не в rrd, а в mysql (кстати, у collectd тоже sql-плагин есть).

AS ★★★★★ ()
Ответ на: комментарий от AS

И все равно не могу понять!

Разодрался в скрите предоставленном YAR'ом, спасибо, но он рисует графики из своей базы! О базах collectd, rrdtool нечего не знает!

Мне необходимо чтоб rrdtool graph * рисовал графики из базы которую пишет collectd.. Опять нехрена не понемаю...

FATruden ()
Ответ на: комментарий от FATruden

Во всех мануалах работа с RRDtool разбита на 3-и этапа:

1.Создание базы

2.Обнавление показатилей

3.Построение графиков

У меня же получается, что первые два пункта сделаны автоматически collectd. А теперь мне необходимо только нерисовать графики из баз о которых RRDtool похоже нечего не знает...

FATruden ()
Ответ на: комментарий от FATruden

> А теперь мне необходимо только нерисовать графики из баз о которых RRDtool похоже нечего не знает

А что ты тогда указывал, когда делал свой вариант скрипта для рисования графиков?

YAR ★★★★★ ()
Ответ на: комментарий от YAR

>А что ты тогда указывал, когда делал свой вариант скрипта для рисования графиков?

Какой мой вариант? Я Хотел попробовать Ваш скрпт, но пробежался по коду и понял, что он мне не подходит...

Я так понемаю, что с помощью rrdtool graph не нарисовать графики из сторонней базы?

FATruden ()
Ответ на: комментарий от FATruden

> Я Хотел попробовать Ваш скрпт

Как минимум его надо было скорректировать под свои данные - имена переменных, количество данных в базе и т.п. Скрипт я показал просто как образец.

Проследить имена datasource'ов, усреднений и прочего на той страничке, что я давал, легко: в «Создание базы» каждый DS - это отдельная «ветка» данных, которая будет загоняться в базу. В моем случае их 2 - называются rx и tx - соответственно, для входящего и исходящего трафика. Вот первый пункт, откуда уже будут идти различия в последнем скрипте.
Далее, задаются RRA - для каждого типа усреднения (average и max) перечисляются свои интервалы. Соответственно, прорисовывать график у меня можно используя 2 разных варианта усреднений, заданных при создании базы. Это второй пункт, который влияет на 3-й скрипт - у тебя усреднение может быть одно, 3 или могут использоваться другие типы.
Далее, параметры построения графика (количество AREA, LINE, цвета, подписи, вычисление текущих и пиковых значений в VDEF и CDEF) - привязано именно к моему случаю, к моей базе. Соответственно, если входных параметров больше/меньше, используются другие значения и т.п. - это тоже надо править.


В итоге у меня получаются вот такие графики - http://stats.linuxoid.in/net.ppp0.prox.html

Поэтому, как я уже сказал - скрипт показан просто для образца. Чтобы делать что-то свое - сначала надо заглянуть в существующую базу, посмотреть, как она устроена (или знать, как она создавалась) и только потом уже по полученным данным строить графики.

А почему не поискать готовые скрипты именно уже под collectd, как уже выше написали?

Я так понемаю, что с помощью rrdtool graph не нарисовать графики из сторонней базы?


Можно. Просто надо правильно задавать параметры.

YAR ★★★★★ ()
Ответ на: комментарий от FATruden

Все, вот теперь я полностью разобрался.

RRDtool без проблем рисует графики из любых баз!

Вот как должен выглядеть скрипт, в котором rrdtool graph ресует графики из баз collectd:

#!/bin/bash

apl_='#'
 
/usr/local/bin/rrdtool graph /vhosts/main/server/cpu.png \
 -e now \
 -s 'end - 5 hours' \
 -S 60 \
 --title 'CPU USAGE' \
 --vertical-label % \
 --imgformat PNG \
 --slope-mode   \
 --color SHADEA${apl_}FFFFFF \
 --color SHADEB${apl_}FFFFFF \
 --color BACK${apl_}FFFFFF \
 -w 680 \
 -h 150 \
 --interlaced \
 DEF:a=/opt/collectd/var/lib/collectd/rrd/j4ckHOST/cpu-0//cpu-idle.rrd:value:MAX \
 DEF:b=/opt/collectd/var/lib/collectd/rrd/j4ckHOST/cpu-0//cpu-system.rrd:value:MAX \
 DEF:c=/opt/collectd/var/lib/collectd/rrd/j4ckHOST/cpu-0//cpu-user.rrd:value:MAX \
 LINE1:a#C0C0C0:Idle \
AREA:b#00FF00:System \
AREA:c#0000FF:User
FATruden ()
Ответ на: комментарий от FATruden

>Как минимум его надо было скорректировать под свои данные - имена переменных, количество данных в базе и т.п. Скрипт я показал просто как образец.

Спасибо Вам отдельное за развернутые ответы! Разбор полетов с параметрами rrd-баз мне еще предстоит...но я Вас понял

Можно. Просто надо правильно задавать параметры.

Именно эти параметры я и хотел узнать! Это то из-за чего я собственно и запостил тему. Я хотел нарисовать хоть какое то график из базы что пишет collectd а в дальнейшем уже буду разбираться с параметрами и допиливать все под себя...

FATruden ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.