Page 1 of 12 12311 ... LastLast
Results 1 to 15 of 174

Thread: Установка RRDTool и CRON на роутер

  1. #1

    Post Установка RRDTool и CRON на роутер

    Оригинал инструкции
    http://www.macsat.com/rrdtool.php и http://www.macsat.com/cron.php
    перевод приблизительный, делался для себя, а поскольку были просьбы выложить инструкцию на русском – выкладываю, может кому и пригодится. Если где накосячил (английский знаю плохо) - пишите исправления.

    Установка и конфигурирование RRDTool
    В прошивке от Олега установка сводится к команде
    ipkg install rrdtool

    Скрипт, запускающий DDRTool можно взять http://www.macsat.com/rrdtool.sh

    Его следует скопировать в /opt/usr/bin

    Теперь, чтобы rrdtool запускался, собирал данные и рисовал графики, нужно разместить небольшой скрипт в каталог /opt/etc/cron.5mins/. Скрипт будет иметь имя rrdrun.sh, он будет запускать rrdrun.sh и должен выглядеть следующим образом:

    #!/bin/sh
    /opt/usr/bin/rrdtool.sh >> /opt/var/log/rrdtool.log 2>&1

    Не забываем сделать его исполняемым:
    chmod +x rrdrun.sh

    Если следовать инструкции по crontab это должно обеспечить запуск скрипта каждые пять минут.

    Скрипт будет складывать данные в каталог /opt/var/log

    База данных rrd размещается в /opt/var/lib/rrd/, картинки и html страницы для представления отчетов находятся в /opt/share/www/rrd/

    Эти каталоги можно изменить, отредактировав скрипт rrdtool.sh

    Каждые 5 минут информация о трафике, прошедшем через WAN, LAN и WLAN (беспроводной интерфейс) будет записываться в базу данных программы. Каждые 30 минут, а именно в 00 мин и 30 мин каждого часа будут создаваться графические отчеты. Интервал 30 минут выбран из соображений экономии ресурсов процессора.

    Статистику можно смотреть, набрав в броузере http://yourrouterip/rrd/

    Скрипт генерирует отчеты по трафику за 1 час, 1 день, 1 неделю и 1 месяц.

    Установка и конфигурирование CronTab
    В прошивке от Олега cron устанавливается так:
    ipkg install cron

    В директории /opt/etc/init.d/ нужно создать пять подкаталогов:

    mkdir /opt/etc/cron.5mins
    mkdir /opt/etc/cron.hourly
    mkdir /opt/etc/cron.daily
    mkdir /opt/etc/cron.weekly
    mkdir /opt/etc/cron.monthly


    Далее следует отредактировать файл /opt/etc/crontab, он должен выглядеть так :

    SHELL=/bin/sh
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
    MAILTO=""
    HOME=/
    # ---------- ---------- Default is Empty ---------- ---------- #
    # Syntax for lines is : minute hour day month dayofweek command #
    */5 * * * * root run-parts /opt/etc/cron.5mins
    01 * * * * root run-parts /opt/etc/cron.hourly
    02 4 * * * root run-parts /opt/etc/cron.daily
    22 4 * * 0 root run-parts /opt/etc/cron.weekly
    42 4 1 * * root run-parts /opt/etc/cron.monthly

    Внимание: это следует делать, войдя в систему как root.

    Например, вышеприведенная конфигурация будет «срабатывать» каждую неделю в 4 часа 22 минуты в любой день любого месяца во все дни недели, то есть знак «*» означает «все, любой»

    Внимание: Cron использует 24-х часовое представление времени, то есть 4:22 вечера будет выглядеть как 16:22

    Специальный знак */5 в начале первой строки означает «срабатывание» каждые 5 минут, то еть 5, 10, 15…55.

    Поскольку команда "run-parts" не поддерживается изначально, нужно создать в каталоге /opt/bin/ файл run-parts следующего содержания

    #!/bin/sh
    #
    # runparts.sh by macsat@macsat.com
    # intended for use with cron
    #
    # based on rc.unslung by unslung guys :-)
    #
    if [ -z "$1" ]
    then
    echo "Usage : $0 "
    fi

    RUNDIR=$1"/*"

    for i in $RUNDIR ;do

    # Ignore dangling symlinks (if any).
    [ ! -f "$i" ] && continue

    case "$i" in
    *.sh)
    # Source shell script for speed.
    (
    trap - INT QUIT TSTP
    set start
    . $i
    )
    ;;
    *)
    # No sh extension, so fork subprocess.
    $i start
    ;;
    esac
    done


    Делаем его исполняемым:
    chmod +x /opt/bin/run-parts

    В рамках тестирования работы cron в каталоге /opt/etc/cron.5mins размещаем тестовый файлик test.sh следующего содержания:

    #!/bin/sh

    date >> /tmp/crontest.txt

    Не забываем сделать его исполняемым:

    chmod 755 /opt/etc/cron.5mins/test.sh

    Пробуем перезагрузить роутер, ждем около 15 минут. Затем смотрим в файл /tmp/crontest.txt, там должно быть время срабатывания скрипта, если это так, то cron работает.

  2. #2
    В директории /opt/etc/init.d/ нужно создать пять подкаталогов:
    Это опечатка. Подкаталоги нужно создавать именно в директории /opt/etc/, как видно из команд ниже.

    Внимание: это следует делать, войдя в систему как root.
    Важно: здесь root - это имя пользователя, которое используется для входа в веб-интерфейс. По умолчанию этим именем является не root, а admin. Поэтому, если имя пользователя не изменялось вручную, то файл /opt/etc/crontab должен выглядеть так:
    Code:
    SHELL=/bin/sh
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
    MAILTO=""
    HOME=/
    # ---------- ---------- Default is Empty ---------- ---------- #
    # Syntax for lines is : minute hour day month dayofweek command #
    */5 * * * * admin run-parts /opt/etc/cron.5mins
    01 * * * * admin run-parts /opt/etc/cron.hourly
    02 4 * * * admin run-parts /opt/etc/cron.daily
    22 4 * * 0 admin run-parts /opt/etc/cron.weekly
    42 4 1 * * admin run-parts /opt/etc/cron.monthly
    Пробуем перезагрузить роутер, ждем около 15 минут.
    Перезагружать роутер не нужно. Достаточно запустить CRON:
    Code:
    /opt/etc/init.d/S10cron start
    И ждать нужно не 15 минут, а гораздо меньше. Так как cron срабатывает каждые пять минут, то при его запуске, например, в 12:11 указанный файл должен быть создан уже в 12:15.

  3. #3
    Да, с путями там накосячено, странно только, что я как то автоматом сделал правильно, хотя и делал по этой статье . Но, надо признаться, ошибся в другом месте. Теперь вроде все работает. Ждать 15 минут советуют наверное для чистоты эксперимента, на самом деле не больше пяти минут, на практике меньше.

    Интерес к этой штуке как-то пропал, она делает не совсем то что нужно, вернее, совсем не то, что нужно Ну какой смысл в этих красивых картинках, зачем нужен отчет о загрузке интерфейсов... Мне (да и не только мне наверное) нужен простенький отчет, сколько внешнего трафика на какого клиента ушло. Под внешним имеется в виду не любой трафик с WAN интерфейса, а только тот, который через VPN (то есть за который берут деньги). Результат нужен в виде простого текста, что-то типа этого (графический модуль вообще, как я понимаю, не нужен):

    ************************************************
    IP in out
    ************************************************
    192.168.1.2 4564654 6545
    192.168.1.3 454654 874
    192.168.1.4 76787 3434
    ************************************************

    Отчет об внутреннем трафике совершенно не нужен. Разумеется, решение скорее всего есть, только у меня не хватает ума

  4. #4

    Вот, для примера...

    В аналогичной ситуации я делал вот что...

    Посредством post-firewall добавляем в iptables следующие правила
    # simple traffic counter
    # 192.168.0.2
    iptables -I FORWARD 4 -i ppp0 -d 192.168.0.8/32 -j RETURN
    # 192.168.0.8
    iptables -I FORWARD 4 -i ppp0 -d 192.168.0.2/32 -j RETURN

    А в крон пихал скриптик, который делал
    iptables -L FORWARD -nvx
    ...и регулярным выражением выбирал колонку с байтами, ушедшими на ppp0... Делил на 1024 и т.п.... А потом писал все в файлик на винте...

  5. #5
    Я наверное совсем тупой, но как это сделать полностью на роутере? Под виндами бы я выкрутился, то есть написал бы программу-парсер на той же дельфе, но тут...
    Опять же как это будет работать при вырубании/перезагрузке роутера? По моему я видел такое решение: ничего не подсчитывается, просто периодически в лог добавляется новая информация, после чего цепочки каким то образом очищаются (чтобы не заносить одни и те же данные повторно) и так далее. В результате потом можно вытащить этот файл на компутер и устоить подсчет в уже привычной обстакановке, то бишь под виндами Как это провернуть?

    # 192.168.0.2
    iptables -I FORWARD 4 -i ppp0 -d 192.168.0.8/32 -j RETURN - то есть если у меня клиент имеет адрес 192.168.1.3 то мне писать iptables -I FORWARD 4 -i ppp0 -d 192.168.1.3/32 -j RETURN и так далее для каждого клиента?

    А darkstat и rrd, по моему, - стрельба из пушки по воробьям...
    Last edited by dizzy128; 20-04-2007 at 20:46.

  6. #6
    Я сделал как ты советовал, все работает. Правда, у меня все упрощено, просто срабатывает каждые пять минут такой скрипт:

    date >> /opt/var/log/trafcount.log
    iptables -L FORWARD -nvx >> /opt/var/log/trafcount.log

    Как сделать так, чтобы туда писался только трафик за последние пять минут, то есть иными словами как очистить цепочки (обнулить) после каждой записи? А то такой метод, как у меня имеет недостаток: если роутер перезагрузится а после этого трафика будет потрачено больше, чем в последней записи, то тогда будет непонятно, перезагружался он или нет... Я понимаю, что занимаюсь фигней, наверняка есть более правильные способы с применением скриптов для подсчета, но меня устраивает и так, на первое время, пока я слабо разбираюсь в линуксе...

  7. #7

    Проблемы с rrdtool

    Доброго времени суток уважаемые асусоводы.
    Полазил в очередно раз по форуму и захотелось прикрутить софтину под названием rrdtool, чтоб графики загрузки интерфейсов рисовались. Всё делал по мануалу на macsat.com, но видимо что-то не правильно сделал... Получился такой косяк: rrdtool нормально запускается кроном, отрабаотыавает тоже вроде бы нормально, но графики не отображаются. Т.е. хтмлки в каталоге rrd создались, а самих рисунков с графиком нету.
    Уважаемые гуру, подскажите в чём я ошибся?
    Если заглянуть в сам каталог /opt/share/www/rrd - то там тоже картинок (рисунков в *.png) нет. Только html'ки лежат.

    Зарание спасибо за ответ.
    Last edited by Romeo9128; 17-10-2007 at 02:22.

  8. #8

    rrdTool что-то не понятны мне его графики...

    он что не может отображать общий трафик?
    ЗЫ
    например за вечер я убил 200 метров трафика, где это увидить?
    а так графики красивые

  9. #9
    Join Date
    Aug 2006
    Location
    Moscow, Russia
    Posts
    788
    гхм. Вобщето rrdtool это набор утилит для работы с кольцевой базой данных, в т.ч. утилита для рисования красивых графиков. К подсчёту трафика он не имеет отношения.

  10. #10

    rrdtool

    Здравствуйте!

    Установил rrdtool с целью приспособить его для отправки ежедневных писем с картинками по электрической почте. Ставил согласно инструкции. Однако при запуске с крона (просто так, руками, почему-то вобще не запускается) программа успешно генерирует картинку wanday.png но на следующей картинке - landay.png - затыкается и зависает. При этом список процессов выглядит так:

    ........
    ........
    111 admin 572 S -sh
    461 admin 408 S /opt/sbin/cron
    462 admin 468 S /bin/sh -c run-parts /opt/etc/cron.5mins
    463 admin 504 S /bin/sh /opt/bin/run-parts /opt/etc/cron.5mins
    466 admin 516 S /bin/sh /opt/bin/run-parts /opt/etc/cron.5mins
    467 admin 508 S /bin/sh /opt/usr/bin/rrdtool.sh
    528 admin 936 R rrdtool graph /opt/share/www/rrd/landay.png.new -a PN
    556 admin 412 R ps

    и больше не меняется. То есть программа зависла где-то в бэкграунде. ПОдскажите пожалуйста, как исправить такое поведение.

    Спасибо за внимание! Надеюсь на ответ хотя бы на один из трех написанных сегодня вопросов...

    Вот логи rrdtool




    Mon Mar 19 21:00:01 MSK 2007
    WAN Interface: vlan1
    LAN Interface: vlan0
    WLAN Interface: eth1
    WAN -> in: 647427 out: 129414
    LAN -> in: 0 out: 196369
    WLAN -> in: 192628 out: 1020807
    Daily Graphs created.....
    647x333
    Mon Mar 19 21:05:01 MSK 2007
    WAN Interface: vlan1
    LAN Interface: vlan0
    WLAN Interface: eth1
    WAN -> in: 921017 out: 216871
    LAN -> in: 0 out: 208339
    WLAN -> in: 286293 out: 1362776
    <------------------------------------------------------------->

    Terminated
    mv: unable to rename `/opt/share/www/rrd/landay.png.new': No such file or direct
    Terminated
    Weekly Graphs created.....
    647x333
    Terminated
    mv: unable to rename `/opt/share/www/rrd/lanweek.png.new': No such file or direc
    647x333
    <------------------------------------------------------------->

    Нашел на форуме возможное решение проблемы? Проверю завтра и отпишу. Спасибо всем прочитавшим ветку.

    Все работает!
    Жаль, что эта особенность не оговорена в инструкции по настройке.

    Quote Originally Posted by Mam(O)n View Post
    К подсчёту трафика он не имеет отношения.
    а что мне может помочь
    Last edited by Omega; 09-02-2012 at 16:36. Reason: fixed

  11. #11
    мне нужен просто общий траф идущий через роутер
    туда и обратно...

  12. #12
    Last edited by Halo; 26-11-2007 at 21:55.

  13. #13

    что-то не вижу на форуме чтоб кто-то привил это дело к железки,
    попробую помучать...
    если есть что сказать, жду комментов!

  14. #14
    насчет прикручивания к роутеру ничего сказать немогу... хотел было пакет собрать... но что то у меня не заладилось.. возится неохота... если некому будет собрать.. попробую снова... Насчет программы скажу одно - очень удобная для вывода статистики именно по трафику...

  15. #15
    Join Date
    Sep 2007
    Posts
    109
    Blog Entries
    1
    прога собирается, но нужна библиотека libpcap...

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

    легче скрипты написать (для примера взяв те, которые на rrdtool выложены)

Page 1 of 12 12311 ... LastLast

Similar Threads

  1. torrent'ы вешают роутер
    By velsi in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 87
    Last Post: 29-04-2013, 08:38
  2. Проблема Роутер сам выключается
    By muxeu in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 2
    Last Post: 27-12-2008, 15:47
  3. Помогите! Виснет роутер примерно раз в неделю!
    By denver_83 in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 22
    Last Post: 10-11-2008, 09:32

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •