Sided Posted July 22, 2012 Помогите... можно ли с iptables правил вытянуть счетчики трафика, и вывести их на график через snmp? например как с обычного eth или vlan. нужен только INPUT root@s1:~# iptables -L INPUT --line-numbers -nv Chain INPUT (policy ACCEPT 96M packets, 9453M bytes) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT tcp -- * * 10.1.1.1/29 0.0.0.0/0 tcp dpt:4444 2 61M 2744M ACCEPT tcp -- * * 192.168.0.1/24 0.0.0.0/0 tcp dpt:4444 3 54398 4488K fail2ban-ssh tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22 4 3501K 140M ACCEPT tcp -- * * 192.168.1.1/24 0.0.0.0/0 tcp dpt:4444 5 47M 2132M ACCEPT tcp -- * * 192.168.2.1/24 0.0.0.0/0 tcp dpt:4444 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted July 22, 2012 (edited) Помогите... можно ли с iptables правил вытянуть счетчики трафика, и вывести их на график через snmp? например как с обычного eth или vlan. нужен только INPUT Думаю, что можно. Как вариант, используя "свои" OIDs. Снимаю таким образом данные с UPS-ов. В snmpd.conf машины с iptables добавляете что-то типа того # UPS extend .1.3.6.1.4.1.2021.401 upsVoltage /usr/local/sbin/ups_voltage.sh # Скрипт [root@router sbin]# cat ups_voltage.sh #!/bin/bash # # /usr/bin/upsc APC2000@localhost input.voltage /usr/bin/upsc APC2000@localhost output.voltage /usr/bin/upsc APC2000@localhost battery.voltage /usr/bin/upsc APC2000@localhost ups.load /usr/bin/upsc APC2000@localhost ups.temperature /usr/bin/upsc -l # Ну и забираем этот OID в кактусе. Для вашего случая потребуется в скрипте правильно отпарсить счетчики в выводе iptables -L INPUT --line-numbers -nv. P.S. Интересно, а для каких целей Вам это нужно? Edited July 22, 2012 by AlKov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Sided Posted July 22, 2012 иптв ... нужно видеть сколько, когда каждая подсеть смотрит Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted July 22, 2012 иптв ... нужно видеть сколько, когда каждая подсеть смотрит Гм.. Не понял.. А зачем тогда INPUT анализировать? FORWARD наверное должно быть, или OUTPUT, если машина является "вещателем" тв по требованию. Или Вас интересует кол-во потребителей в "штуках"? Тогда причем тут счетчики трафика? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Sided Posted July 22, 2012 (edited) хз... я и сам запутался надо видеть именно сколько трафика бежит на этих правилах, какая подсеть больше-меньше смотрит, в которое время суток активность, обычный график хочу 2 61M 2744M ACCEPT tcp -- * * 192.168.0.1/24 0.0.0.0/0 tcp dpt:4444 4 3501K 140M ACCEPT tcp -- * * 192.168.1.1/24 0.0.0.0/0 tcp dpt:4444 5 47M 2132M ACCEPT tcp -- * * 192.168.2.1/24 0.0.0.0/0 tcp dpt:4444 тут я вижу все гамузом, хотелось его разбить на 3 графика Edited July 22, 2012 by Sided Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AlKov Posted July 22, 2012 хз... я и сам запутался надо видеть именно сколько трафика бежит на этих правилах, какая подсеть больше-меньше смотрит, в которое время суток активность, обычный график хочу Ну так Вы определитесь, КАК трафик, который Вас интересует, проходит через машину с iptables. Если Вы просто транслируете ТВ через IP, то это явно будет "транзит", т.е. "FORWARD" в понимании iptables. Если же Вы являеетесь "вещателем ТВ", то это будет "OUTPUT" для "машины-вещателя". Я так понимаю, что у Вас используется "транзит". P.S. Сам IPTV, слава Богу, не занимаюсь (ИМХО, эта услуга не имеет перспективы), моя компания предоставляет абонентам обычное аналоговое ТВ, плюс "цифровое", но НЕ по IP, а в том же коаксиале (для конечного пользователя). Посему, конкретных рекомендаций дать не могу.. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Sided Posted July 22, 2012 да услуга эта один гемор. Данный сервер и есть стример, там же стоит релей с udp на http {udpxy} iptables все запрещено что бы дать доступ пишу iptables -I INPUT -p tcp -s 192.168.0.0/24 --dport 4444 -j ACCEPT в гугле нашел что то типа этого #!/bin/bash case "$1" in -g) ifconfig | grep "inet addr" | awk '{print $2}' | awk -F: '{print $2}' ;; -i) ipcount=`ifconfig | grep "inet addr" | awk '{print $2}' | awk -F: '{print $2}' | wc -l` for i in `seq 1 $ipcount`; do echo $i; done exit $ipcount # this is the value at OID .1.3.6.1.4.1.2021.49.42.100.1 ;; *) exit 254 ;; esac но это пока для меня сложно Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted July 22, 2012 Общая идея дана в первом же ответе - парсить вывод iptables и пихать это в кастомный OID, если для вас это сложно, то найдите студента, который это сделает за еду и прикрутит в snmpd. Поскольку я не студент, то готов решить вашу задачу не за еду, а всего за 100$, если интересно, пишите в личку. HINT: модные iptables умеют xml Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Sided Posted July 22, 2012 )) Спасибо и на этом! 100уе!? Блин где взять голодного толкового студента? )) попробую осилить Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted July 22, 2012 Блин где взять голодного толкового студента? )) В ближайшем политехе или подобном институте. Правда студенты обычно больше по LAMP и по всяким жумлам, но бывают и любопытные, которым просто интересно познакомиться с новым софтом. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...