Перейти к содержимому
Калькуляторы

iptables>snmp>rrdstats рисование правил iptables

Помогите... можно ли с 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Помогите... можно ли с 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. Интересно, а для каких целей Вам это нужно?

Изменено пользователем AlKov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

иптв ...

нужно видеть сколько, когда каждая подсеть смотрит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

иптв ...

нужно видеть сколько, когда каждая подсеть смотрит

Гм.. Не понял.. А зачем тогда INPUT анализировать? FORWARD наверное должно быть, или OUTPUT, если машина является "вещателем" тв по требованию.

Или Вас интересует кол-во потребителей в "штуках"? Тогда причем тут счетчики трафика?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хз... я и сам запутался

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

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

 

graph2.cgi_240.jpgi.gif

тут я вижу все гамузом, хотелось его разбить на 3 графика

Изменено пользователем Sided

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хз... я и сам запутался

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

Ну так Вы определитесь, КАК трафик, который Вас интересует, проходит через машину с iptables. Если Вы просто транслируете ТВ через IP, то это явно будет "транзит", т.е. "FORWARD" в понимании iptables. Если же Вы являеетесь "вещателем ТВ", то это будет "OUTPUT" для "машины-вещателя".

Я так понимаю, что у Вас используется "транзит".

 

P.S. Сам IPTV, слава Богу, не занимаюсь (ИМХО, эта услуга не имеет перспективы), моя компания предоставляет абонентам обычное аналоговое ТВ, плюс "цифровое", но НЕ по IP, а в том же коаксиале (для конечного пользователя). Посему, конкретных рекомендаций дать не могу..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да услуга эта один гемор.

Данный сервер и есть стример, там же стоит релей с 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

 

но это пока для меня сложно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Общая идея дана в первом же ответе - парсить вывод iptables и пихать это в кастомный OID, если для вас это сложно, то найдите студента, который это сделает за еду и прикрутит в snmpd.

 

Поскольку я не студент, то готов решить вашу задачу не за еду, а всего за 100$, если интересно, пишите в личку.

 

HINT: модные iptables умеют xml

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

))

Спасибо и на этом!

100уе!? Блин где взять голодного толкового студента? ))

попробую осилить

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Блин где взять голодного толкового студента? ))

 

В ближайшем политехе или подобном институте. Правда студенты обычно больше по LAMP и по всяким жумлам, но бывают и любопытные, которым просто интересно познакомиться с новым софтом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.