Note Juin 2016 : un test d'une version plus récente (2.2) est disponible ici.
Note Octobre 2016 : notes sur la version 2.4 disponibles ici.
Note Avril 2018 : Présentation de la version 3.5 c'est lài.
Utilisateur de longue date de NTOP j'ai voulu tester cette nouvelle version 1.2 NG, comme elle n'existe pas dans les dépôts Debian standard je l'ai donc compilée depuis les sources.
Première chose : vérifier les pré-requis :
autotools-dev libtool
libgeoip1 libgeoip-dev
libsqlite3-dev libxml2-dev
redis-server
libglib2.0-dev
Si cette dernière n'est pas chargée vous aurez un message à la compilation (cf ci-dessous).
Charger le paquet (1.2.1 à ce jour) dans un répertoire tranquille :
cd MON_REPERTOIRE_SOURCES
wget http://sourceforge.net/projects/ntop/files/ntopng/ntopng-1.2.1.tgz
cd MON_REPERTOIRE_BUILD
tar -xvf ../ntopng-1.2.1.tgz
cd ntopng-1.2.1
./autogen.sh
./configure 2>&1 | tee CONFIGURE.LOG
qui vous rappelle à la fin de faire un "make geoip" qui charge les fichiers de données de localisation, on l'effectuera après la compilation.
make 2>&1 | tee MAKE.LOG
qui se termine cette première fois par une erreur :
configure: error: Please fix the library issues listed above and try again.
make[1]: Entering directory `/usr/src/PGM/BUILD/ntopng-1.2.1/third-party/rrdtool-1.4.8/src'
make[1]: *** No rule to make target `librrd_th.la'. Stop.
make[1]: Leaving directory `/usr/src/PGM/BUILD/ntopng-1.2.1/third-party/rrdtool-1.4.8/src'
make: *** [third-party/rrdtool-1.4.8/src/.libs/librrd_th.a] Error 2
En remontant un peu dans le LOG on trouve quelques warnings concernant glib2.0 :
I could not find a working copy of glib-2.0.
Check config.log for hints on why this is the case. Maybe you need to set
LDFLAGS and CPPFLAGS appropriately so that compiler and the linker can find
libglib-2.0 and its header files. If you have not installed glib-2.0,
Il semble manquer les fichiers de développement de GLIB2 -->
apt-get install libglib2.0-dev
et on relance :
make clean
./configure
make 2>&1 | tee MAKE.LOG
La compilation est assez longue sur ce brave CoreI3. Comme je n'ai pas utilisé de paramètres spécifique de répertoires l'installation se fera dans "/usr/local".
On peut constater que de nombreuses extensions tierces parties sont aussi compilées.
On lance maintenant le "make geoip" qui nous récupère sans problèmes les fichiers de localisation géographique.
Le fichier "Makefile" est très instructif, on y voit par exemple que ce paquet contient de quoi fabriquer ".deb" et ".rpm" pour installation sur d'autres machines.
On passe en "root" pour le "make install" qui s'effectue sans aucun problème.
Une étude plus détaillée des répertoires montre "packages/etc" avec deux répertoires "init" et "init.d" comprenant le script de démarrage et le répertoire "ini" la mise en place est rapide :
cd packages/etc/init.d
cp ntopng /etc/init.d
mkdir /etc/ntopng
cp ../init/ntopng.conf /etc/ntopng
update-rc.d ntopng defaults
Comme notre installation a été faite en mode "développement" (programmes dans /usr/local) il faut rectifier légèrement le script de lancement et modifier la variable NTOPNG_BINARY de "/usr/bin/ntopng" en "/usr/local/bin/ntopng".
Ne pas "oublier" de créer le fichier "ntopng.start" dans /etc/ntopng :
touch /etc/ntopng/ntopng.start
Il faut ajouter quelques "broquilles" a "/etc/ntopng/ntopng.conf" :
--user=ntopng
User qui sera utilisé, c'est important pour les droits sur le répertoire "data" et le fichier "PID".
-G=/var/lib/ntopng/ntopng.pid
Avec un seul tiret ! Celui-ci fixe le nom du fichier "pid", utilisé pour stopper le démon, mais attention le fichier est ouvert par le user "nobody" qui, au moins sur une Debian, n'a pas de droits sur /run (ou /var/run).
Avec un user personnalisé et un répertoire propre aucun problème.
--local-networks "192.168.1.0/24"
Pour fixer le ou les réseaux locaux (liste entre " séparée par des virgules)
--interface eth0
--interface eth1
Pour fixer les interfaces à utiliser (une ligne par interface), ici je laisse tomber l'interface "lo".
--data-dir /var/lib/ntopng
Un répertoire à créer avec droits lecture/écriture pour le user choisi : Ntop stocke ici les fichiers nécessaires y compris les RRD, il faut prévoir un peu d'espace disque.
--packet-filter="ip and not proto ipv6 and not ether host ff:ff:ff:ff:ff:ff and not net (224.0.0.0/8 or 239.0.0.0/8)"
Pour éliminer beaucoup de trafic "inintéressant", je n'ai pas IPV6 et les broadcast prennent de la place.
--http-port 3001
Si le port standard de 3000 vous déplaît.
--daemon
A ne pas louper ....
Avant de lancer le démon il faut encore :
- Créer le user ntopng
- Créer le répertoire /var/lib/ntopng et rendre "ntopng" propriétaire : chown ntopng:ntopng /var/lib/ntopng
- Cataloguer le démon : update-rc.d ntopng default
- Lancer le démon : service ntopng start
On peut ensuite se connecter sur localhost:3001 avec les mots de passe par défaut admin/admin, comme c'est original !
Depuis cet interface on peut créer d'autres utilisateurs et modifier le mot de passe par défaut de "admin".
L'interface est très riche et dispose de nombreuses fonctions, la génération d'alertes est parfois gênante ... et je n'ai pas encore testé les fonctions LUA.