Устанавливаем NTOP в Debian 6

    Имея linux сервер раздающий интернет в локальную сеть всегда возникает потребность в мониторинге сетевого трафика. Пакет ntop обеспечивает отслеживание трафика и показ его в реальном времени. Речь пойдет об ntop в Debian 6. При попытке установки этого пакета, столкнулся что его нету в репозитории debian. Почему такой мощнейший пакет отсутствует — для меня загадка. Когда как в других дистрибутивах он доступен для установки из репозитория. Ну чтож, не менять же сервер, будем собирать из исходников. Все команды выполняются в терминале от имени root’а.

1. Первым делом обновляем список пакетов

apt-get update
apt-get update

2. Установка ntop невозможна без установки rrdtool, который также отсутствует в репозитории. RRDtool обеспечивает хранение и отображение данных мониторинга. Собираем и его. Устанавливаем зависимые пакеты для rrdtool

apt-get install libcairo2-dev libxml2-dev libglib2.0-dev libpango1.0-dev
apt-get install libcairo2-dev libxml2-dev libglib2.0-dev libpango1.0-dev

3. Скачиваем, распаковываем, собираем и устанавливаем rrdtool. На момент написания статьи версия rrdtool была 1.4.7

cd /tmp/
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz
tar -zxvf rrdtool.tar.gz
cd rrdtool*
 
./configure --prefix=/usr/local/rrdtool
make && make install
cd /tmp/
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz
tar -zxvf rrdtool.tar.gz
cd rrdtool*

./configure --prefix=/usr/local/rrdtool
make && make install

Проверяем что rrdtool установился в нужную для нас папку, т.к. ntop ищет его именно здесь

ls -l /usr/local/rrdtool
ls -l /usr/local/rrdtool

4. Зависимые пакеты для установки ntop

apt-get install libtool automake autoconf libpcap0.8-dev libgdbm-dev python-dev libgeoip-dev
apt-get install libtool automake autoconf libpcap0.8-dev libgdbm-dev python-dev libgeoip-dev

5. Распаковываем архив с ntop

cd /tmp/
wget http://citylan.dl.sourceforge.net/project/ntop/ntop/Stable/ntop-4.1.0.tar.gz
tar -zxvf ntop-4.1.0.tar.gz
cd ntop-4.1.0/
cd /tmp/
wget http://citylan.dl.sourceforge.net/project/ntop/ntop/Stable/ntop-4.1.0.tar.gz
tar -zxvf ntop-4.1.0.tar.gz
cd ntop-4.1.0/

6. Запускаем скрипт автоматического настройки установки

./autogen.sh
./autogen.sh

Успешное выполнение скрипта свидетельствует вывод на экран следующих строк

Data files are in     /usr/local/share/ntop
Config files are in   /usr/local/etc/ntop
Run directory is      /usr/local/var/ntop
Plugin files are in   /usr/local/lib/ntop/plugins
Database files are in /usr/local/var/ntop
 
        .... autogen.sh done
just type make to compile ntop
Data files are in     /usr/local/share/ntop
Config files are in   /usr/local/etc/ntop
Run directory is      /usr/local/var/ntop
Plugin files are in   /usr/local/lib/ntop/plugins
Database files are in /usr/local/var/ntop

        .... autogen.sh done
just type make to compile ntop

7. Собираем и устанавливаем

make && make install
make && make install

8. Добавляем пользователя для работы ntop и устанавливаем нужные права для его рабочих директорий

useradd -M -s /sbin/nologin -r ntop
 
chown -R ntop:users /usr/local/share/ntop
chown -R ntop:users /usr/local/var/ntop/
useradd -M -s /sbin/nologin -r ntop

chown -R ntop:users /usr/local/share/ntop
chown -R ntop:users /usr/local/var/ntop/

9. Проверяем корректность установки Ntop и его возможность запуска

ntop -h
ntop -h

Если команда выдаст такое сообщение

ntop: error while loading shared libraries: libntopreport-4.0.3.so: cannot open shared object file: No such file or directory
ntop: error while loading shared libraries: libntopreport-4.0.3.so: cannot open shared object file: No such file or directory

Можно сделать вывод что ntop ругается на отсутствие библиотеки. Если все зависимые пакеты правильно были установленны, и файл библиотеки тоже находится в нужном месте, следует просто обновить хеш динамических библиотек коммандой

ldconfig
ldconfig

Посмотреть что и откуда грузит ntop при запуске можно так

ldd /usr/local/bin/ntop
ldd /usr/local/bin/ntop

Пример вывода команды

ldd /usr/local/bin/ntop
        linux-gate.so.1 =>  (0xb76ef000)
        libntopreport-4.1.0.so => /usr/local/lib/libntopreport-4.1.0.so (0xb7664000)
        libntop-4.1.0.so => /usr/local/lib/libntop-4.1.0.so (0xb74da000)
        libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb74c0000)
        libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb749a000)
        libcrypt.so.1 => /lib/i686/cmov/libcrypt.so.1 (0xb7468000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7321000)
        libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb72d7000)
        libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb717e000)
        libgdbm.so.3 => /usr/lib/libgdbm.so.3 (0xb7178000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7164000)
        libGeoIP.so.1 => /usr/lib/libGeoIP.so.1 (0xb712c000)
        libpcap.so.0.8 => /usr/lib/libpcap.so.0.8 (0xb70f9000)
        librrd_th.so.4 => /usr/local/rrdtool/lib/librrd_th.so.4 (0xb70c1000)
        /lib/ld-linux.so.2 (0xb76f0000)
        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb70bd000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb6f93000)
        libpng12.so.0 => /lib/libpng12.so.0 (0xb6f6f000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb6f64000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb6f20000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6eaa000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb6e6c000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb6e68000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb6e63000)
        librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb6e5a000)
        libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xb6d90000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb6d6a000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6cf2000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb6cc3000)
        libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xb6c6a000)
        libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0xb6c65000)
        libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xb6c5e000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6c45000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6c3c000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb6b1f000)
        libpcre.so.3 => /lib/libpcre.so.3 (0xb6aeb000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6ac5000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb6ac2000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb6abd000)
ldd /usr/local/bin/ntop
        linux-gate.so.1 =>  (0xb76ef000)
        libntopreport-4.1.0.so => /usr/local/lib/libntopreport-4.1.0.so (0xb7664000)
        libntop-4.1.0.so => /usr/local/lib/libntop-4.1.0.so (0xb74da000)
        libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb74c0000)
        libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb749a000)
        libcrypt.so.1 => /lib/i686/cmov/libcrypt.so.1 (0xb7468000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7321000)
        libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb72d7000)
        libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb717e000)
        libgdbm.so.3 => /usr/lib/libgdbm.so.3 (0xb7178000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7164000)
        libGeoIP.so.1 => /usr/lib/libGeoIP.so.1 (0xb712c000)
        libpcap.so.0.8 => /usr/lib/libpcap.so.0.8 (0xb70f9000)
        librrd_th.so.4 => /usr/local/rrdtool/lib/librrd_th.so.4 (0xb70c1000)
        /lib/ld-linux.so.2 (0xb76f0000)
        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb70bd000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb6f93000)
        libpng12.so.0 => /lib/libpng12.so.0 (0xb6f6f000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb6f64000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb6f20000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6eaa000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb6e6c000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb6e68000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb6e63000)
        librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb6e5a000)
        libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xb6d90000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb6d6a000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6cf2000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb6cc3000)
        libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xb6c6a000)
        libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0xb6c65000)
        libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xb6c5e000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6c45000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6c3c000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb6b1f000)
        libpcre.so.3 => /lib/libpcre.so.3 (0xb6aeb000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6ac5000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb6ac2000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb6abd000)

10. Устанавливаем пароль на пользователя admin web-интерфейса ntop

ntop -A
ntop -A

11. Запуск ntop производится с использованием некоторых команд. К примеру несколько наиболее часто используемых

/usr/local/bin/ntop -d -L -u ntop -P /usr/local/var/ntop --skip-version-check --use-syslog=daemon
/usr/local/bin/ntop -i "eth0,eth1" -d -L -u ntop -P /usr/local/var/ntop --skip-version-check --use-syslog=daemon
/usr/local/bin/ntop -i "eth0,eth1" -u ntop -M
/usr/local/bin/ntop -d -L -u ntop -P /usr/local/var/ntop --skip-version-check --use-syslog=daemon
/usr/local/bin/ntop -i "eth0,eth1" -d -L -u ntop -P /usr/local/var/ntop --skip-version-check --use-syslog=daemon
/usr/local/bin/ntop -i "eth0,eth1" -u ntop -M

Описание команд:
-i «eth0,eth1» : перечень интерфейсов, которые будет прослушивать ntop
-d : добавив данный ключ ntop запустится в виде демона и не будет выводить информацию на экран
-L : вывод системных сообщений происходит не на монитор, а в системный журнал /var/log/messages
-u ntop : имя пользователя от которого запускается ntop
-M : позволяет смотреть статистику по разным интерфейсам
-P /usr/local/var/ntop : Specify where ntop stores database files. You may need to backup database as part of your disaster recovery program.
—skip-version-check : By default, ntop accesses a remote file to periodically check if the most current version is running. This option disables that check.
—use-syslog=daemon : Use syslog daemon.

Проверяем что ntop запустился на 3000 порту

netstat -tulpn | grep :3000
netstat -tulpn | grep :3000

Открываем браузер по адресу http://ip_адрес_сервера:3000/ и наслаждаемся красивой и полноценной статистикой с всевозможными графиками.

12. Чтобы не было необходимости ручного запуска ntop, добавляем его в автозапуск. Открываем файл

vi /etc/rc.local
vi /etc/rc.local

и добавляем строку с командой запуска ntop

/usr/local/bin/ntop -i "eth0,eth1" -d -L -u ntop -P /usr/local/var/ntop --skip-version-check --use-syslog=daemon
/usr/local/bin/ntop -i "eth0,eth1" -d -L -u ntop -P /usr/local/var/ntop --skip-version-check --use-syslog=daemon

Для остановки ntop убиваем его коммандой

killall ntop
killall ntop
VN:F [1.9.22_1171]
Рейтинг: 9.8/10 (5 голоса(ов))
Устанавливаем NTOP в Debian 6, 9.8 out of 10 based on 5 ratings

1 Ответ

  1. Хорошая статья. Делала сначала без неё вот это упустила — /usr/local/rrdtool, грустно было. Еще бы по настройке разобраться 🙂 для сбора данных с nprobe.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *