Jump to content

rrdtool


Recommended Posts

Здраствуйте снова. :lol:

Коротко: юзаю rrdtool. Данные снимаются кажлые 5 минут, рисуется график суточной загрузки.

В общем, всё устраивает, кроме момента, когда обновляются правила ipfw (например после ребута) и в count по захвату мы имеем значение байт меньше, чем в базе rrdtool.

В итоге приблуда у меня не рисует график и приходится пересоздавать базу rrdtool. Как следствие - теряется картинка за сутки, всё начинается заново. :)

Я конечно сунул создание базы в автозагрузку, всё делается автоматом, но...

Может возможно заставить утилиту рисовать график на основе уже имеющихся данных, пусть даже "с провалом"?

Link to post
Share on other sites

Та же байда. :)

Загрузка порядка 10-50Мбит, 50-150 ГГБ в сутки, а рисует после сброса правил - вот такую хрень.

e14f17857977.png

 

Нашёл такое:

Daemony, получилось решить проблему с ipfw и сбросом счетчиков в ноль (когда при сбросе были гиганские скачки трафика и все сбивалось) - нужно в rrdtool data sources использовать тип счетчика не COUNTER, а DERIV с минималным и максимальным значением (обязательно)!! Тогда все ок. Вообщем может кому пригодится эта инфа))

Сделал так:

#!/bin/sh

rrdtool create /var/rrdtool/db/nuk.rrd \
       --start 0 \
       DS:inet:DERIVE:600:0:U \
       DS:onet:DERIVE:600:0:U \
DS:inputp:DERIVE:600:0:U \
       DS:outputp:DERIVE:600:0:U \
       DS:allp:DERIVE:600:0:U \
DS:inputall:DERIVE:600:0:U \
DS:outputall:DERIVE:600:0:U \
RRA:AVERAGE:0.5:1:600 \
       RRA:AVERAGE:0.5:6:700 \
       RRA:AVERAGE:0.5:24:775 \
       RRA:AVERAGE:0.5:288:797 \
       RRA:MAX:0.5:1:600 \
       RRA:MAX:0.5:6:700 \
       RRA:MAX:0.5:24:775 \
       RRA:MAX:0.5:288:797

echo "base created"

 

Подсмотрел тут:

http://shumer-admin.blogspot.com/2009/04/rrdtool.html

Спасибо. :lol:

Link to post
Share on other sites
  • 2 weeks later...

Пытаюсь намалевать графики для юзеров и запихнуть это всё в вэб-иф.

Показания трафика беру из базы СТГ. Уже почти получилось, кроме того что рисует он немного привирая. Но основная проблема - провалы в графике.

Думаю причина в том, что обновляемость по сравнению с ipfw count - редкая, раз в несколько минут. И rrdtool просто не считает нужным это прорисовывать. Как победить? Изменять немного данные каждый раз, когда добавляю их в базу? Там, единичку прибавлять... попробую - отпишусь. :blink:

f648378a5183.jpg

Link to post
Share on other sites

Ну, из файлов вида /var/stargazer/users/test/stat - поля D0, U0...

Как тут: http://local.com.ua/forum/topic/10919-stg-mrtg/page__hl__rrdtool

Только выходит почему-то как на рисунке.

Приращивание по единичке не помогло. Буду копать. :/

post-3670-1263117818,8646_thumb.jpg

Link to post
Share on other sites
  • 2 weeks later...

Народ, хелп! Проблема как в посте выше - rrdtool "рвёт" графики. :(

Всё делаю по манам. Такая же связка работает для локалки, а для юзера - получается бяка.

Может кто-то скинет конфиги rrdtool, если делали, для юзеров?

Link to post
Share on other sites

А всё-таки из-за чего это происходит?

Может как-то можно обойтись без таких костылей, убрав глюк на этапе построения графика или занесения данных в базу?

Link to post
Share on other sites

Все зависит от типа счетчика в rrd.

По-умолчанию вы снимаете с интерфейсов с помощью snmp (или еще как-то) текущие значения счетчиков которые каждый раз увеличиваются. rrdtool сам вычисляет разницу и ложит ее в базу. После ребута девайса счетчики сбрасываются, вот rrd отнимает текущее небольшое значение от предыдущего огромного, берет его по модулю и рисует ваши петабайты/с :(.

Можно следить за этим самостоятельно,а в rrd сделать тип счетчика gauge, а не counter, ну и придется за ребутами следить самому (например при возникновении такого большолго значения усреднять по последним 10-20).

Link to post
Share on other sites

У меня другая ситуация. Для случая рисования графиков на всю сеть - да, так и происходит, но я нашёл как это обойти, о чём написал выше: тут всё ок.

А во втором случае - данные берутся из файла статистики юзера: там величина всегда нарастает. Кроме конца месяца конечно, но сейчас это неактуально.

Link to post
Share on other sites
  • 5 weeks later...

Может таки кто-то сделал сие на базе rrdtool + данные из файловой базы юзеров? Поделитесь пожалуйста.

А то разбираться ещё как в rrdtool значения усреднять и рисовать графики - откровенно некогда, и так хватает чем заняться.

Не могу побороть проблему рваных графиков.

Link to post
Share on other sites

БЛИН! Столько писал, потом файлы не прикрепились, нажал "Простой менеджер загрузки" и всё пропало нахрен! РРРРРРР! Ладно, щас напишу ещё раз.

Link to post
Share on other sites

У меня работает PHP скрипт, который запускается по крону ежеминутно. Он снимает данные со счётчиков PF, пишет базы и рисует графики, если пришло время их обновлять. PHP - потому что только на нём умею писать относительно сложные вещи. Рисует графики по двум направлениям.

 

Скрипт использует список "IP имя" из текстового файла, для которых надо рисовать графики. Если добавляешь новое имя - запускается внешний скрипт по созданию новой базы.

 

На 30 юзерах в онлайне скрипт пишет базы 4 секунды (если не надо рисовать графики). Большинство времени занимает сама работа RRD. Если он рисует ещё и графики - вообще получается около 17 секунд. В общем накладное это занятие - делать графики для всех юзеров. Проц пенёк 2.4. Может быть можно всё это ещё оптимизировать, но я не программер и не знаю как.

 

 

 

 

Так... Файло не прикрепляется. Качать тут. Внутри файлы:

 

create_custom_base - создание новой rrd базы. Аргументом передаётся имя пользователя (базы).

user_day_graph - нарисовать график за день. Аргументом передаётся имя пользователя (базы).

user_month_graph - нарисовать график за месяц. Аргументом передаётся имя пользователя (базы).

user_update_rrd.php - основной скрипт.

user_week_graph - нарисовать график за неделю. Аргументом передаётся имя пользователя (базы).

 

 

Скрипт писался под свои специфические настройки, но думаю общий принцип пригодится.

 

Графики будут выглядеть как тут, только будет чёткое разделение Ukraine&World, а не Total&World.

 

Будут вопросы - с удовольствием отвечу.

Link to post
Share on other sites

Блин... у меня в онлайне уже больше 50-ти человек бывает. :blink:

Файлы качнул, спасибо. Гляну завтра.

А зачем pf? Это ж для каждого надо правила держать. Есть же готовые цифры в файлах юзеров. Проблема только в их корректной обработке.

 

И вообще, Если эта штука так грузит машину - может ну её?

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

 

Вот что rrdtool делает хорошо и автоматически - снимает данные и сохраняет. Может и правда разобраться и самому строить графики? :huh:

 

Надо подумать. Жаль, совсем не знаю английского.

Link to post
Share on other sites

С PFом сложилось исторически, т.к. изначально я снимал с него только общие графики загрузки. Плюс я вижу фактический график, тогда как при съёме с биллинга он может быть неточным (в связи с ошибками конфигурации либо сбоями). Тем более PF всё равно используется для выпускания в инет и не надо писать правила специально для снятия статистики - они есть изначально.

 

Может быть и не стоит графики рисовать каждые 5 минут (как это у меня), но мне приятнее заходить и сразу видеть весь комплект юзерских графиков, чем ждать, пока они все отрисуются.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...