Page 4 of 11 FirstFirst ... 23456 ... LastLast
Results 46 to 60 of 159

Thread: Мониторинг сети с помощью Asus WL-500gP (rrdtool&iftop)

  1. #46
    Quote Originally Posted by ceramic View Post
    Можно и по паролю, cgi позволяет, но если с разных компов, то проще по IP отсеевать. У меня реализовано так, что мне (192.168.1.2) в cgi генерится страничка не такая, как для остальных:

    #!/bin/sh
    if $REMOTE_ADDR = "192.168.1.2"
    then echo
    ...
    моя страничка
    ...
    else
    ...
    страничка для остальных IP
    ...
    fi
    А в rrdtool2.sh можно как то это прописать? что бы страничка index.cgi сама уже уже формировалась для облегчения повторяемости другими?
    Думал, но пока не дошло куда это вставить....

    После

    PHP Code:
    if [ ! -"${cgi}/index.cgi" ] || [ "{$1}"{$up_cgi}]
        
    then
        
    echo " cgi script does not exist.....Creating Now...."
        
    index="${cgi}/index.cgi"
        
    echo "#!/bin/sh" "${index}
    вставить
    PHP Code:
    echo "if  $REMOTE_ADDR = "192.168.1.2" " "${index}"

        
    echo 'run_time=`cat /proc/uptime | awk '\''{print $1}'\''`' >> "${index}"
        echo 'cnt="<center>"' >> "
    ${index}"
        echo 'cnt_end="</center>"' >> "
    ${index}"
    #далее вырезано для сокращения до
        echo 'echo "
    ${run_time} sec."' >> "${index}"
        echo 'echo "</BODY></HTML>"' >> "
    ${index}"

    echo "else" > "
    ${index}"
        echo 'run_time=
    `cat /proc/uptime awk '\''{print $1}'\''`' >> "${index}"
        echo 'cnt="<center>"' >> "
    ${index}"
    #тут копируем правленную страничку
               echo 'echo "
    ${run_time} sec."' >> "${index}"
        echo 'echo "</BODY></HTML>"' >> "
    ${index}"
    echo "fi" > "
    ${index}"
        chmod +x "
    ${index}"
    fi 


    кажется что так..... поправьте если ошибаюсь....
    Last edited by ThinkPad; 06-03-2009 at 09:50.
    Автор благодарит алфавит за любезно предоставленные буквы.
    Все вышесказанное только мое личное мнение. Если Вы с ним не согласны, что ж, это Ваше право. Я, например, зла никогда не помню, но хату спалить могу.
    IBM ThinkPad X61 Tablet + WL500GP+ WL500 Deluxe

  2. #47
    Мне понравился данный скрипт и я добавил в него маленький хак,вывод syslog'а роутера.
    Attached Files Attached Files

  3. #48
    Выкладываю новый скрипт.
    Добавлено: статистика по айпишникам.
    Изменения: определения дня недели, спасибо dimmer-у.
    Планируется: оптимизация скрипта (без всяких украшательств =) ) , трафик по портам и хочу прикрутить к веб-морде роута (на форуме где то видел упоминания)

    Что нужно, чтобы работало: асусовский роут (желательно, с прошивкой от Олега), rrdtool, cron и голова на плечах + прямые руки .

    По просьбе выкладываю подробную инструкцию
    Установка и настройка:
    1. Проверяем установлен ли rrdtool - ipkg list_installed | grep rrdtool. Если выдает, что то типа "rrdtool - 1.2.30-1 - Round-Robin Database tool. Database collator and plotter", значит установлен. Если нет, то ipkg install rrdtool. На счет крона все аналогично. На всякий случай проверьте, что бы был ipcalc - эта прога тоже необходима.
    2. Далее создаем папку, где будет все храниться, например, mk /opt/traffic - далее в описании использую именно этот путь.
    3. Распаковываем архив (gzip -d rrd.sh.gz) и редактируем:
    RRDDATA=/opt/traffic - полный путь до созданной директории, в ней будут лежать все базы и сам скрипт.
    RRDIMG=/opt/traffic/www - здесь храниться все необходимое, для веб-сервера (картинки и директория со скриптами).
    4. Делаем его исполняемым: chmod +x /opt/traffic/rrd.sh
    5. Запускаем 1-ый раз скрипт. Если прописано все верно, то в исходной папке будут созданы следующие файлы: eth*.rrd, cpu.rrd, mem.rrd, ip.list и директория WWW, в ней еще одна - cgi-bin, а в ней 2-а скрипта: index.cgi и update (эти 2 файла должны быть исполняемыми).
    5. Теперь если статистика по ip-ам Вас не интересует пропускаете этот пункт. Для остальных: открываем файлик "ip.list" (например, vi /opt/traffic/ip.list) и прописываете те ip, которые хотим мониторить (скрипт поддерживает и подсети (запись вида ip/mask или ip/prefix). Порядок ip-шников не важен. Теперь маленькое отступление: цепочки ставятся 2-ми в цепочке "FORWARD" за правилом "-A FORWARD -i br0 -o br0 -j ACCEPT" - чтобы не считать внутрисетевой трафик. И так, запускам еще раз скрипт и проверяем создались ли файлы вида [ip/mask].rrd и необходимые правила в iptables (например, так "iptables -L | grep in_traffic"). Должны быть две цепочки "in_traffic" и "out_traffic" и правила в них, вида "-A in_traffic -d [ip/mask]" и "-A out_traffic -s [ip/mask]".
    6. Прописываем в cron на выполнение каждые 5мин. - это важно, иначе неверно считать будет суммарный трафик. Это можно сделать как написано в большинстве руководств или как у меня - после установки крона он автоматически создает файл расписания для текущего юзера - /opt/var/cron/crontabs/[user name], прописываем в него что-то типа "*/5 * * * * /opt/traffic/rrd.sh".
    7. Теперь поднимаем вем-сервер, например, так: httpd -p 81 -h /opt/traffic/www (81 - это порт, при обращении к которому бубут доступные те данные, ради которых все это и затеяно . Можно еще к этой команде добавить "-c /opt/traffic/httpd.conf", где httpd.conf - конфигурационный файл, в нем у меня прописано ip для доступа, делается это так:
    #Allows hosts
    A:127.0.0. #Allow loopback connection
    A:192.168.2. #Allow any address that begins with 192.168.2.
    D:* #Deny from other IP connections
    8. Проверяем в браузере: http://router_ip:81, должна появиться страничка с надписью "Hi!" ))
    Картинок изначально нет, их нужно создать: преходим, например, на "CPU & Memory" и жмем кнопку в правом верхнем углу "Update data". Если браузер у Вас настроен на отображение данных по мере загрузки, то увидите, что пишет rrdtool при создании картинок ). Жмем кнопку "Back". Если картинки не появились, просто обновите страницу.

    Теперь о насущном: про ограничение доступа к инфе уже было сказано - можно либо скрипт подточить, либо по конфигу веб-сервера, имхо последнее проше и удобней. Генерация всех картинок скопом - это было реализовано изначально, хотите положить роут, минут так на 5, то набирите http://ip_router/cgi-bin/update?update_graphs - будут обновлены все картинки. По поводу того, что не обновляются картинки - еще в исходном скрипте добавил строчку "<meta http-equiv=cache-control content=no-cache, no-store, must-revalidate>", которая по идее должна обновлять, но обновление идет, только если изменился размер файла картинки ((, побороть пока не смог. Не спец по html-ю, просьба если кто разбирается, скажите, что должно быть, что бы картинка при возврате гарантированно обновлялась).
    Пока все, всем спасибо, в особенности dimmer-у.
    Last edited by A007; 10-03-2009 at 23:57.

  4. #49
    По обновлению картинки, попробуй поиграться ещё с такими параметрами:
    <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
    <META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">
    Дату поставить в прошлом.
    Взято с _http://www.i18nguy.com/markup/metatags.html

  5. #50
    2. Далее создаем папку, где будет все храниться, например, mk /opt/traffic
    mkdir

    7. Теперь поднимаем вем-сервер, например, так: httpd -p 81 -h /opt/traffic/www (81 - это порт, при о
    а после перезагрузки он как подымется?

    Минут 30 втыкал. Короче не инструкция, а бред. Автору сложно потратить 30 минут и ВНЯТНО изложить материал.

    Добавлено после.

    Опечатка с update.cgi, который превратился просто в update. Просто нема слов.

    Поставил благодаря этому и своим мозгам.

    Не понимаю зачем Update data. Неужели раз в пять минут это будет так уж сильно грузить роутер.
    В index.cgi нужно ввести какую то переменную потому что URL идут в корень WWW, и если добавляем в Lighttpd (www/rrd), то приходиться править все вручную:

    echo "<a href=/rrd/cgi-bin/index.cgi?cpu_mem>CPU & Memory</a><br>"

    if [ "$tab" == "" ] & [ "$graph3" != "" ]
    then
    tab="<img src=/rrd/${graph1}.png><br><img src=/rrd/${graph2}.png><br><img src=/rrd/${graph3}.png>"
    fi
    Last edited by leshiy_odessa; 09-03-2009 at 00:16.

  6. #51
    Quote Originally Posted by leshiy_odessa View Post

    Не понимаю зачем Update data. Неужели раз в пять минут это будет так уж сильно грузить роутер.
    В index.cgi нужно ввести какую то переменную потому что URL идут в корень WWW, и если добавляем в Lighttpd (www/rrd), то приходиться править все вручную:
    представь себе пики раз в 5 мин (актуальность 5 мин, вместо той что создается при нажатии кнопки) сильно грузит роутер и на долго, причем пиком что негативно сказывается на риалтайм сервисах и VPN тунелях что я например использую.

    и инструкция хорошая просто опечатки есть всегда, не надо так ревниво относиться к труду других людей.
    Дописать в /opt/etc/init.d/S* команду думаю многие смогут.что указали вы молодец но лучше напишите что на ваш взгляд и главное КАК нужно добавить/доработать
    Last edited by lagshmi; 09-03-2009 at 20:22.

  7. #52
    В актуальности поддерживаю полностью. У меня идея сделать по тому же принципу что и у vnStat когда на страницу заходишь она (картинка) обновляется.
    wl500gp-1.9.2.7-d-r1222 + StoreJet 35 Ultra >>> rtorrent+rutorrent -|- lighhtpd + ssl + auth -|- vnStat + vnStat PHP frontend -|- vsftpd -|- squid + lightsquid...

  8. #53
    по тому же принципу что и у vnStat когда на страницу заходишь она (картинка) обновляется
    полностью поддерживаю. тоже хочу, но пока руки не доходят

  9. #54
    Спасибо, за скрипт. Да, подправить кое-что приходится. Но что-то у меня с IP ничего не выходит. Добавлял два варианта 192.168.1.1/24 и 192.168.1.1/255.255.255.0, в обоих случаях выдает:
    Code:
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    Создается файл Unknown_Unknown.rrd и 192.168.1.0_255.255.255.0.rrd. Картинки тоже, соответственно, Unknown_Unknown_*.png
    iptables -L | grep in_traffic выдает:
    Code:
    in_traffic  all  --  anywhere             anywhere
    Как лечить?

  10. #55
    Quote Originally Posted by ceramic View Post
    Можно и по паролю, cgi позволяет, но если с разных компов, то проще по IP отсеевать. У меня реализовано так, что мне (192.168.1.2) в cgi генерится страничка не такая, как для остальных:

    #!/bin/sh
    if $REMOTE_ADDR = "192.168.1.2"
    then echo
    ...
    моя страничка
    ...
    else
    ...
    страничка для остальных IP
    ...
    fi
    Так у меня ничего и не получилось..... где это прописать то нужно???
    Автор благодарит алфавит за любезно предоставленные буквы.
    Все вышесказанное только мое личное мнение. Если Вы с ним не согласны, что ж, это Ваше право. Я, например, зла никогда не помню, но хату спалить могу.
    IBM ThinkPad X61 Tablet + WL500GP+ WL500 Deluxe

  11. #56
    Quote Originally Posted by Alex333 View Post
    Добавлял два варианта 192.168.1.1/24 и 192.168.1.1/255.255.255.0, в обоих случаях выдает:
    Code:
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    Создается файл Unknown_Unknown.rrd и 192.168.1.0_255.255.255.0.rrd. Картинки тоже, соответственно, Unknown_Unknown_*.png
    iptables -L | grep in_traffic выдает:
    Code:
    in_traffic  all  --  anywhere             anywhere
    Как лечить?
    Очень странно, во всяком случае при одной записи в файлике ip.list будет выдавать одно сообщение iptables, а файлик вида "Unknown_Unknown" говорит вероятно о неправильной кодировке.
    Рекомендую заново его создать (ip.list) и в редакторе, например vi редактировать.
    Если не поможет, выложите, плз, свой ip.list. Посмотрю, что нужно подправить.

  12. #57
    Quote Originally Posted by A007 View Post
    Очень странно, во всяком случае при одной записи в файлике ip.list будет выдавать одно сообщение iptables, а файлик вида "Unknown_Unknown" говорит вероятно о неправильной кодировке.
    Рекомендую заново его создать (ip.list) и в редакторе, например vi редактировать.
    Если не поможет, выложите, плз, свой ip.list. Посмотрю, что нужно подправить.
    С редактированием проблем нет, все сохранял в UNIX кодировке, данные (повторюсь) вводил:
    Code:
    192.168.1.1/255.255.255.0
    192.168.1.2/255.255.255.0
    192.168.1.3/255.255.255.0
    192.168.1.4/255.255.255.0
    либо:
    Code:
    192.168.1.1/24
    192.168.1.2/24
    192.168.1.3/24
    192.168.1.4/24
    Сегодня попробовал одни айпишники (ip.lst приложил):
    Code:
    192.168.1.1
    192.168.1.2
    192.168.1.3
    192.168.1.4
    В результате появились четыре файла с айпишниками, однако не с той подсетью (должно быть 255.255.255.0):
    Code:
    192.168.1.1_255.255.255.255.rrd
    192.168.1.2_255.255.255.255.rrd
    192.168.1.3_255.255.255.255.rrd
    192.168.1.4_255.255.255.255.rrd
    iptables -L | grep in_traffic по прежнему выдает:
    Code:
    in_traffic  all  --  anywhere             anywhere
    Chain in_traffic (1 references)
    Картинки для айпи вообще не создаются. update_graphs создал следующее:
    Code:
    Start update..
    Wed Mar 11 06:01:28 MSK 2009 Create started... WAN Interface: vlan1 LAN Interface: vlan0 WLAN Interface: eth1 Daily Graphs created..... 647x333 647x333 647x333 Weekly Graphs created..... 647x333 647x333 647x333 Monthly Graphs Created.... 647x333 647x333 647x333 Yearly Graphs Created.... 647x333 647x333 647x333 Daily Graphs created..... 647x333 647x333 647x333 Weekly Graphs created..... 647x333 647x333 647x333 Monthly Graphs created..... 647x333 647x333 647x333 Yearly Graphs created..... 647x333 647x333 647x333 CPU usage created..... 647x389 Memory usage created..... 647x375 IPs graphs created..... <-------------------------------------------------------------> 
    Go back
    В лог по поводу айпи ничего не пишет, но не знаю, должн ли?

    Что посоветуете?
    Attached Files Attached Files
    • File Type: zip ip.zip (136 Bytes, 243 views)

  13. #58
    Join Date
    Jul 2008
    Location
    Kiev
    Posts
    557
    Quote Originally Posted by ThinkPad View Post
    Так у меня ничего и не получилось..... где это прописать то нужно???
    В cgi скрипте, который генерит страничку.
    Если мониторинг организован как в первом посте, то это -- index.cgi
    Там и прописывать, прямо с самого начала.

  14. #59
    Quote Originally Posted by Alex333 View Post
    В лог по поводу айпи ничего не пишет, но не знаю, должн ли?

    Что посоветуете?
    В лог ничего не пишет.
    Маленькое уточнение, если вводите отдельный ip, то и мониторится будет этот ип, если подсеть - то подсеть, это к вопросу
    В результате появились четыре файла с айпишниками, однако не с той подсетью (должно быть 255.255.255.0)
    Скопировал Ваш вайлик к себе на роут, все работает.
    Файлы данных у Вас создаются, значит и правила должны быть, на всякий случай проверьте так:
    Code:
    iptables -L in_traffic
    должно вывести следующее
    Code:
     all  --  anywhere             192.168.1.1
               all  --  anywhere             192.168.1.2
               all  --  anywhere             192.168.1.3
               all  --  anywhere             192.168.1.4
    Если правила есть, то проблема с картинками связана с функцией CreateGraphIP () - в какой то из строчек пропущен знак "\" (кроме последних 2-х строк).
    Last edited by A007; 11-03-2009 at 10:49.

  15. #60
    Что-то я совсем запутался. Если, при прописанных ip в ip.lst, вручную запустить sh rrd.sh то создается файл Unknown_Unknown.rrd и выпадает следующее сообщение:
    Code:
    Wed Mar 11 18:03:30 MSK 2009
    Create started...
    WAN Interface: vlan1
    LAN Interface: vlan0
    WLAN Interface: eth1
    WAN -> in: 302576360   out: 2486910080
    LAN -> in: 2300985512   out: 298696151
    WLAN -> in: 767076   out: 3869963
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.7a: invalid mask `Unknown' specified
    Try `iptables -h' or 'iptables --help' for more information.
    Если запустить cron с содержимым:
    Code:
    #!/bin/sh
    /opt/traffic/rrd.sh
    То создаются файлы:
    Code:
    192.168.1.1_255.255.255.255.rrd
    192.168.1.2_255.255.255.255.rrd
    192.168.1.3_255.255.255.255.rrd
    192.168.1.4_255.255.255.255.rrd
    iptables -L in_traffic:
    Chain in_traffic (1 references)
    target prot opt source destination
    all -- anywhere WL-001E8C3E0826
    all -- anywhere 192.168.1.2
    all -- anywhere 192.168.1.3
    all -- anywhere 192.168.1.4
    Однако картинок нет. С CreateGraphIP () все в порядке, вроде:
    Code:
    CreateGraphIP ()
    {
    	/opt/bin/rrdtool graph "${1}.new" -a PNG -R light -s -"${2}" -w 410 -h 100 -v "bytes/s" -l 0 --font DEFAULT:7 \
    	'DEF:ds1='${3}':in:AVERAGE' \
    	'DEF:ds2='${3}':out:AVERAGE' \
    	'VDEF:sum_in=ds1,TOTAL' \
    	'VDEF:sum_out=ds2,TOTAL' \
    	'LINE1:ds1#00FF00:In' \
    	GPRINT:ds1:MAX:"Max %6.2lf%s" \
    	GPRINT:ds1:MIN:"Min %6.2lf%s" \
    	GPRINT:ds1:AVERAGE:"Avg %6.2lf%s" \
    	GPRINT:ds1:LAST:"Cur %6.2lf%s" \
    	GPRINT:sum_in:"Total %6.2lf%s\n" \
    	'LINE1:ds2#0000FF:Out' \
    	GPRINT:ds2:MAX:"Max %6.2lf%s" \
    	GPRINT:ds2:MIN:"Min %6.2lf%s" \
    	GPRINT:ds2:AVERAGE:"Avg %6.2lf%s" \
    	GPRINT:ds2:LAST:"Cur %6.2lf%s" \
    	GPRINT:sum_out:"Total %6.2lf%s" \
    	-t "${4}"
    	mv -f "${1}.new" "${1}"
    }
    И еще вопрос, в index.cgi, ссылки на графики идут без /rrd/, соответственно приходится править, иначе не показываются. Что нужно подправить, в rrd.sh, что бы при создании index.cgi пути в нем были верными?

Page 4 of 11 FirstFirst ... 23456 ... LastLast

Similar Threads

  1. Мониторинг через SNMP на роутере
    By TSM in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 70
    Last Post: 16-10-2015, 15:39
  2. Контроль трафика через роутер (iftop)
    By Sharky in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 69
    Last Post: 04-08-2013, 14:17
  3. Установка Windows 7 по сети с помощью роутера
    By ryzhov_al in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 5
    Last Post: 22-10-2012, 21:25
  4. iftop vs oleg
    By winni in forum WL-500gP Tutorials
    Replies: 10
    Last Post: 20-05-2008, 15:34
  5. Asus WL 500gP и пиринговые сети
    By spinoza in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 13
    Last Post: 09-05-2008, 13:16

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
  •