LINUX.ORG.RU
решено ФорумAdmin

Альтернатива vnstat

 ,


0

1

Привет ЛОР!

Есть ли что-то на подобии vnstat, но чтобы была статистика по минутам? В vnstat статистика минимум по часам, хоть он и собирает данные каждые 5 минут.

Думал что есть данные в выводе vnstat -i eth0 --dumpdb, но там просто сырые данные.

Надо чтобы отследить DDoS.

Т.е сейчас на сервере в среднем 10 Мбит\с входящего трофика. DDoS может быть 100 Мбит\с в течении 3 минут, так что нужна статистика по минутам.



Последнее исправление: Woklex (всего исправлений: 1)

Ну как вариант конечно можно в крон добавить:

vnstat -tr 5 >> stat.txt

Woklex
() автор топика
Последнее исправление: Woklex (всего исправлений: 2)
Ответ на: комментарий от AnDoR

Что-то ради количества пакетов и скорости не хочется тащить prometheus + node_exporte. Легче снимать данный с vnstat или написать свой велосипед на подобии:

PATH=$PATH:/sbin
IF=$1
IF=${IF:=eth0}
echo "Using interface $IF"
oldrx=$( ifconfig $IF | awk -F ':' '{ if ($0~/RX bytes/) {print $2} }' | awk '{print $1}' )
oldtx=$( ifconfig $IF | awk -F ':' '{ if ($0~/TX bytes/) {print $3} }' | awk '{print $1}' )
while :; 
do 
  sleep 1
  newrx=$( ifconfig $IF | awk -F ':' '{ if ($0~/RX bytes/) {print $2} }' | awk '{print $1}' )
  newtx=$( ifconfig $IF | awk -F ':' '{ if ($0~/TX bytes/) {print $3} }' | awk '{print $1}' )
  printf "%s %10s RX bytes/sec %10s TX bytes/sec\n" "`date +'%F %T'`" "$(($newrx-$oldrx))" "$(($newtx-$oldtx))"
  oldrx=$newrx
  oldtx=$newtx
done
Взято с http://unixforum.org/index.php?showtopic=136283

Я сейчас просто поставил в cron vnstat.

Может посмотрю исходничики и сделаю чтобы было по минутам в vnstat, т.к инфа там снимается каждые 15 секунд, а записывает каждые 5.

Woklex
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.