понедельник, 14 марта 2011 г.

Простой мониторинг трафика - vnstat

Часто необходимо узнать сколько трафика пришло на интерфейс (RX, Recieve) и сколько этот самый интерфейс отправил (TX, Trancieve). Для этого можно заглянуть в личный кабинет у поставщика интернета, но если сервер в локальной сети или вход в статистику биллинга обременителен - то очень кстати будет программа vnstat.
Её установка проста:
  • sudo apt-get install vnstat
Если у вас версия 1.10 - то программа автоматически добавится в автозагрузку и установит веб интерфейс, если версия 1.6 то необходимо проделать нижеследующее:
    Далее необходимо загрузить init.d скрипт, заходим на сайт проекта, выбираем свой дистрибутив (в моем случае debian)  http://humdi.net/vnstat/init.d и загружаем скрипт на наш сервер
    • wget -c http://humdi.net/vnstat/init.d/debian/vnstat
    Копируем его в /etc/init.d/ и устанавливаем права на запуск
    • sudo chmod 755 /etc/init.d/vnstat
    Добавляем в автозагрузку
    • update-rc.d vnstat defaults
    Adding system startup for /etc/init.d/vnstat ...   /etc/rc0.d/K20vnstat -> ../init.d/vnstat
       /etc/rc1.d/K20vnstat -> ../init.d/vnstat
       /etc/rc6.d/K20vnstat -> ../init.d/vnstat
       /etc/rc2.d/S20vnstat -> ../init.d/vnstat
       /etc/rc3.d/S20vnstat -> ../init.d/vnstat
       /etc/rc4.d/S20vnstat -> ../init.d/vnstat
       /etc/rc5.d/S20vnstat -> ../init.d/vnstat

    Запускаем как сервис(демон)

    • /etc/init.d/vnstat start
    Сейчас давайте посмотрим опции с которыми можно запустить vnstat

    $ vnstat --longhelp vnStat 1.6 by Teemu Toivola <tst at iki dot fi>
       Update:
             -u, --update          обновление базы
             -r, --reset           сброс счетчиков на интерфейсе
             --sync                немедленная синхронизация счетчиков
             --enable              разрешить интерфейс
             --disable             запретить интерфейс
             --nick                установить имя интерфейса (алиас  к eth0)
             --cleartop            очистить первые 10
             --rebuildtotal        восстановить общие показатели за месяца
       Query:
             -q, --query           запрос к базе
             -h, --hours           показать по часам
             -d, --days            показать по дням
             -m, --months          показать по месяцам
             -w, --weeks           показать по неделям
             -t, --top10           показать первые 10
             -s, --short           использовать укороченный вывод
             --dumpdb              показать базу в исходном формате
       Misc:
             -i,  --iface          выбрать интерфейс (по умолчанию: eth0)
             -?,  --help           короткая справка
             -D,  --debug          дополнительная информация при отладке
             -v,  --version        показать версию
             -tr, --traffic        подсчитать трафик
             -l,  --live           показать трафик в реальном времени
             --config              указать другой конфигурационный файл
             --showconfig          сделать дамп конфигурационного файла с текущими настройками
             --testkernel          проверить ядро на ошибки при работе
             --longhelp            показать весь хелп
    Сейчас необходимо создать базы и инициализировать интерфейсы с которых хотим собирать трафик

    • vnstat -u --nick WAN -i eth0
    Без инициализации будет выходить ошибка 
    Unable to read database "/var/lib/vnstat/eth0"
    Далее можно смотреть статистику

    • vnstat -i eth0 -d
    • vnstat -i eth0 -h
    • vnstat -i eth0 --live 

    Или установить web интерфейс:
    1. Скачиваем файлы интерфейса с http://www.sqweek.com/sqweek/index.php?p=1
    2. Распаковываем в директорию /var/www/vnstat
    3. Открываем config.php и находим 
    $iface_list = array('eth0''ethХ');
    Оставляем только необходимые интерфейсы, далее описываем названия интерфейсов 
    $iface_title['eth0'] = 'Internet';
    4. Создаем каталог в котором будем хранить дампы файлов

    • mkdir /var/www/vnstst/dumps
    5. Пробуем создать дампы в указанной директории

    • vnstat --dumpdb -i eth0 /var/www/vnstat/dumps/vnstat_dump_eth0
    6. Далее записываем в планировщик задание на создание дампов
    crontab -e*/30 * * * * vnstat --dumpdb -i eth0 /var/www/vnstat/dumps/vnstat_dump_eth0

    Комментариев нет:

    Отправить комментарий