RRDTool + PF

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

RRDTool + PF

Непрочитанное сообщение TITANius » 2009-12-10 19:45:35

Хочу сделать мониторинг роутера, но столкнулся с проблемой как связать PF с RRDTool. Вернее как выбирать нужные мне данные из PF ?
Кто реализовывал данный метод прошу поделиться экспириэнсом :)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

Re: RRDTool + PF

Непрочитанное сообщение TITANius » 2009-12-11 14:36:09

Отвечу сам на свой вопрос :) PF очень крутая штука. Можно получить статистику практически ко всему

Статистика по всем интерфейсам одновременно: pfctl -sI -vv
Статистика по конкретному интерфейсу: pfctl -sI -vv -i interface
Статистика по правилам: pfctl -sr -vv

Итак например нам нужно собрать суммарную входящую и исходящую статистику.

Код: Выделить всё

$ pfctl -sI -vv -i ng0
ng0
        Cleared:     Thu Dec 10 16:20:21 2009
        References:  [ States:  0                  Rules: 14                 ]
        In4/Pass:    [ Packets: 2173948            Bytes: 293719041          ]
        In4/Block:   [ Packets: 82890              Bytes: 11005998           ]
        Out4/Pass:   [ Packets: 3534355            Bytes: 2825644144         ]
        Out4/Block:  [ Packets: 60                 Bytes: 3684               ]
        In6/Pass:    [ Packets: 0                  Bytes: 0                  ]
        In6/Block:   [ Packets: 0                  Bytes: 0                  ]
        Out6/Pass:   [ Packets: 0                  Bytes: 0                  ]
        Out6/Block:  [ Packets: 0                  Bytes: 0                  ]
Соответственно In4/All = In4/Pass + In4/Block:

Код: Выделить всё

$ expr -e `pfctl -sI -vv -i ng0 | grep "In4/Pass" | awk '{print $6}'` + `pfctl -sI -vv -i ng0 | grep "In4/Block" | awk '{print $6}'`
305152579
Так само и для исходящей: Out4/All = Out4/Pass + Out4/Block

Код: Выделить всё

$ expr -e `pfctl -sI -vv -i ng0 | grep "Out4/Pass" | awk '{print $6}'` + `pfctl -sI -vv -i ng0 | grep "Out4/Block" | awk '{print $6}'`
2857936511
С правилами немного посложнее, так как в PF не нумеруются правила :(, но можно посмотреть их поочерёдность и выбрать нужное нам число.

Код: Выделить всё

$ pfctl -sr -vv
...
@32 pass out on ng0 proto tcp from any to any port = http flags S/SA keep state
  [ Evaluations: 328       Packets: 102       Bytes: 12708       States: 4     ]
  [ Inserted: uid 0 pid 8499 ]
...
Интересуемся исходящим трафиком на интерфейсе ng0 по http

Код: Выделить всё

$ pfctl -sr -vv | awk 'NR==104 {print $7}'
58728
Дальше дело за малым, можно собирать информацию о всех и вся :)