NtopNG : version 1.2

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.