Recent Changes - Search:

Installation de la distribution

Un utilisateur quelconque peut être utilisé pour installer, puis administrer la solution netMET (il est préférable de ne pas utiliser «root»).
Ce compte peut appartenir à un groupe quelconque.
Dans cette documentation nous utilisons le compte «netmet» appartenant au groupe «netmet».

Nous prenons pour exemple la configuration illustrée par la figure ci-dessous :


Figure 12

Le routeur mon_routeur a deux interfaces IF-1 et IF-2 vers les sites et une interface IF-0 vers le réseau fédérateur, Renater dans l'exemple.

Le routeur mon_routeur renvoie les netflows à la machine de métrologie (notée metro dans cet exemple) d'adresse IP 192.168.200.200, de préférence située au plus proche du routeur.

Dans cet exemple seuls les netflows relatifs aux flux symbolisés par des flèches vertes sur la figure sont conservés, i.e. les netflows dont une seule des deux interfaces d'entrée ou de sortie est IF-0.

Première installation d'un service netMET

L’installation de netMet s'effectue en étant positionné dans le répertoire de la distribution et en lançant la commande d'installation avec deux arguments :

  • le nom d'un répertoire dans lequel sera créé le répertoire associé au service netMET (/home/netmet dans l'exemple),
  • le nom du service netMET à créer (netMET_de_test dans l'exemple).
 netmet# cd /home/netmet/netMETdistrib-x.y_z.v_aaaammjj
netmet# ./install.sh /home/netmet netMET_de_test

La commande commence par vérifier que les modules Perl nécessaires à l'exploitation sont bien présents :

 Checking PERL libraries ... 
Check library : CGI ... ok.
Check library : DataParser ... ok.
Check library : DataStore ... ok.
Check library : Encode ... ok.
Check library : English ... ok.
Check library : Fcntl ... ok.
Check library : File::Basename ... ok.
Check library : File::Compare ... ok.
Check library : File::Copy ... ok.
Check library : File::Find ... ok.
Check library : File::Path ... ok.
Check library : GD ... ok.
Check library : GD::Graph ... ok.
Check library : GD::Graph::bars ... ok.
Check library : GD::Graph::colour ... ok.
Check library : HostDetails4Json ... ok.
Check library : HTTP::Date ... ok.
Check library : HTTP::Request ... ok.
Check library : IPC::Open2 ... ok.
Check library : JSON::XS ... ok.
Check library : lib ... ok.
Check library : LWP::Simple ... ok.
Check library : LWP::UserAgent ... ok.
Check library : Mail::Send ... ok.
Check library : MIME::Lite ... ok.
Check library : MIME::Words ... ok.
Check library : Mojo::Base ... ok.
Check library : Net::IP ... ok.
Check library : netMETtk4Json ... ok.
Check library : POSIX ... ok.
Check library : RRDs ... ok.
Check library : Running4Json ... ok.
Check library : Socket ... ok.
Check library : Socket6 ... ok.
Check library : Storable ... ok.
Check library : strict ... ok.
Check library : Sys::Hostname ... ok.
Check library : Time::HiRes ... ok.
Check library : Time::Local ... ok.
Check library : TimeTrace ... ok.
Check library : utf8 ... ok.
Check library : XServUsers::ToolKit ... ok.
-----------------------------------------------------------------------------

En cas d'absence d'une ou plusieurs bibliothèques ou de la commande hypnotoad de Mojolicious la commande affiche un message d'erreur détaillé et se termine.

Sinon la commande se poursuit en vous demandant de fournir un certain nombre de paramètres.
Le nombre de paramètres à fournir varie selon qu'il s'agit d'une première installation de ce service netMET, d'une mise à jour d'un service existant d'une version d'exploitation postérieure ou antérieure à 5.1.
Dans ces deux derniers cas les anciens répertoires sont sauvegardés et certains paramètres sont réutilisés.

Ici comme il s'agit d'une première installation du service, le dialogue se poursuit par :

Enter directory name for aggregated data collected (or return if /home/netmet/netMET_de_test/DATA) ?
Enter directory name for not aggregated (secure) data collected (or return if /home/netmet/netMET_de_test/SECURE) ?
Enter federate net name (RENATER for example) ? RENATER
Enter federate net IPv4 address ? 192.168.150.254
Enter federate net IPv6 address or return if you don't collect IPv6 traffic ?
Enter directory name for resulting (json) files (or return if /home/netmet/netMET_de_test/HTML) ?
Enter directory name for computed data files (or return if /home/netmet/netMET_de_test/COMPUTED_DATA) ?
Enter hypnotoad listening (IPv4) address:port used by server (or return if 127.0.0.1:3000 ) ?
Enter administrator email (for warning/error messages) ? monmail@chezmoi.fr
Enter netmet service URL ? netmet.monsite.fr
Enter netflows listen (IPv4) address (used by duplicator and collectors) ? 192.138.200.200
Installing new new netMET service under /home/netmet/netMET_de_test ...
-----------------------------------------------------------------------------

Les deux premiers paramètres à saisir sont les noms des répertoires où seront placés :

  • les fichiers de collecte des netflows «agrégés» c'est-à-dire dans lesquels les adresses sources des flux entrant par la ou les interfaces du réseau fédérateur et les adresses destinations des flux sortant par la ou les interfaces du réseau fédérateur sont remplacées par une même adresse (l'adresse IPv4 ou IPv6 du réseau fédérateur) ; si la réponse est vide, le répertoire est placé dans le répertoire associé au service (/home/netmet/netMET_de_test dans l'exemple) avec le nom DATA,
  • les fichiers de collecte des netflows non «agrégés» (les adresses et destinations des flux sont conservées in extenso), par défaut /home/netmet/netMET_de_test/SECURE dans cet exemple,

Les paramètres suivants sont le nom du réseau fédérateur et l'adresse IPv4 associée au réseau fédérateur ; nous utilisons habituellement l'adresse de l'interface de connexion à ce réseau.
Si le service doit prendre en compte le trafic IPv6 il faut aussi fournir une adresse IPv6 associée au réseau fédérateur.

Il faut ensuite saisir les noms des répertoires contenant :

  • les fichiers Json générés qui sont ensuite utilisés par le serveur netMET, par défaut /home/netmet/netMET_de_test/HTML dans cet exemple,
  • les fichiers de données «précompilées» pour accélérer la construction des résultats, par défaut /home/netmet/netMET_de_test/COMPUTED_DATA dans cet exemple.

Il reste alors à entrer :

  • l'adresse et le port d'écoute du serveur mojolicious (par défaut 127.0.0.1:3000),
  • l'adresse électronique de l'administrateur utilisée pour les messages d'avertissement et d'erreur,
  • le nom du serveur netMET ou son adresse IP,
  • l'adresse IPv4 d'écoute des netflows utilisée par le duplicateur et les collecteurs (c'est l'adresse

de la machine sur laquelle le service est installée).

La trace de la compilation du duplicateur, du collecteur et des commandes associées est ensuite affichée (elle a été abrégée) :

 Installing embedded netMET/netMAT collector ...for dir in ./src ./dependencies ; do  \
make -C $dir all ; \
done
make[1]: entrant dans le répertoire « /home/netmet/netMETdistrib-x.y_z.v_aaaammjj/collector/src »
...
make[1]: quittant le répertoire « /home/netmet/netMETdistrib-x.y_z.v_aaaammjj/collector/src »
make[1]: entrant dans le répertoire « /home/netmet/netMETdistrib-x.y_z.v_aaaammjj/collector/dependencies »
echo "nothing to do for dependencies"
nothing to do for dependencies
make[1]: quittant le répertoire « /home/netmet/netMETdistrib-x.y_z.v_aaaammjj/collector/dependencies »
cat ./src/exec_files.lst | while read exec_name ; do \
mv ./src/$exec_name ./bin/$exec_name ; \
done
Embedded netMET/netMAT collector installation done.
-----------------------------------------------------------------------------

Le script crée ou vérifie la présence des différents répertoires.
Il vérifie de plus qu'ils sont bien disjoints, les procédures de «nettoyage» pouvant avoir des périodicités différentes.

Directories duplicator
etc
init.d
run
scripts
secure
serveur_netmet
stats
tmp created
-----------------------------------------------------------------------------
Checking data/secure/json directories...
Check directory /home/netmet/netMET_de_test/HTML ... /home/netmet/netMET_de_test/HTML created.
Check directory /home/netmet/netMET_de_test/DATA ... /home/netmet/netMET_de_test/DATA created.
Check directory /home/netmet/netMET_de_test/SECURE ... /home/netmet/netMET_de_test/SECURE created.
Check directory /home/netmet/netMET_de_test/COMPUTED_DATA ... /home/netmet/netMET_de_test/COMPUTED_DATA created.
-----------------------------------------------------------------------------

Les fichiers Perl sont ensuite "compilés" (...) :
/home/netmet/netMET_de_test/scripts/ARCHIVES4Json_gen-daily.pl syntax OK
...
/home/netmet/netMET_de_test/scripts/TOPS4Json.pl syntax OK

N.B. Il peut éventuellement subsister des averissements lors de ces "compilations".

Le script se termine en indiquant les fichiers de configuration à compléter.

 
Now you can edit configurations files :
/home/netmet/netMET_de_test/stats/etc/netmet.conf
/home/netmet/netMET_de_test/secure/etc/netmet.conf
/home/netmet/netMET_de_test/etc/organism.def
You can define the logo in file /home/netmet/netMET_de_test/serveur_netmet/STATIC/images/admin-logo.gif.
You must probably update Apache configuration files (/etc/httpd/conf/httpd.conf
or /etc/apache/httpd.conf) :
--> netMET directories, virtual host, ...
--> AddHandler cgi-script .cgi
--> DirectoryIndex index.cgi
Look a the file /home/netmet/netMET_de_test/etc/httpd.conf as an example of file to
include in an Apache configuration file.
-----------------------------------------------------------------------------
Complete the functions :
netMETtk4Json::check_organism()
netMETtk4Json::get_organisms_for_user()
You can complete the function mkconfs() in /home/netmet/netMET_de_test/scripts/CONFmake.pl
for generating the "organism's" file (subnet's definitions).
-----------------------------------------------------------------------------
Use /home/netmet/netMET_de_test/init.d/init-systemd-instal4netMET_de_test.sh as root to install service netMET_de_test for init Systemd
-----------------------------------------------------------------------------
********** netMET service netMET_de_test : installation completed. **********

Il génère un script d'installation du service selon l'init utilisé dans le système :

  • /ngc-instal4netMET_de_test.sh si votre système utilise initng (présence d'un répertoire /etc/initng/service)
  • init-systemV-instal4netMET_de_test.sh si votre système utilise l'init system V (existence de la commande update-rc.d)
  • init-systemd-instal4netMET_de_test.sh si votre système utilise systemd (présence d'un répertoire etc/systemd/system).

Ce script doit être lancé en tant que «root».

N.B. Si l'init n'est pas identifié, le script le signale :

Sorry, I don't know how to install netMet in init.
Please, look at the init.d directory and do it yourself ...

Réutilisation d'une configuration netMET existante (version d'exploitation >= 5.1)

Si il existe un service netMET de même nom dans le répertoire nommé en argument de la commande le dialogue va être modifié.
Une fois la présence des bibliothèques nécessaires vérifiée le script demande l'ancienne configuration du service doit être réutilisée pour cette mise à jour.
En cas de réponse négative (n) le script se poursuit comme précédemment après sauvegarde du répertoire du service netMET par la saisie des paramètres de configuration.

En cas de réponse positive aucun paramètre supplémentaire n'est à fournir, les anciens étant réutilisés.
Par sécurité le répertoire du service est cependant sauvegardé avant d'être recréé :

 ./install.sh /home/netmet   netMet
Checking PERL libraries ...
Check library : CGI ... ok.
...
Check library : utf8 ... ok.
-----------------------------------------------------------------------------

Would you upgrade from previous service netMET_de_test (/home/netmet/netMET_de_test) ? [y/n] y
./install.sh: ligne 465 : [: « ] » manquant
*** Warning : existing directory /home/netmet/netMET_de_test is renamed /home/netmet/SAVEDnetMET_de_test20181115-1455
Upgrading new netMET service under /home/netmet/netMET_de_test ...
-----------------------------------------------------------------------------
Installing embedded netMET/netMAT collector ...for dir in ./src ./dependencies ; do

make -C $dir all ;

done
...
cat ./src/exec_files.lst | while read exec_name ; do

mv ./src/$exec_name ./bin/$exec_name ;

done
Embedded netMET/netMAT collector installation done.
-----------------------------------------------------------------------------
Directories duplicator
etc
init.d
run
scripts
secure
serveur_netmet
stats
tmp created
-----------------------------------------------------------------------------
Checking data/secure/json directories...
Check directory /home/netmet/netMET_de_test/HTML ... /home/netmet/netMET_de_test/HTML created.
Check directory /home/netmet/netMET_de_test/DATA ... /home/netmet/netMET_de_test/DATA created.
Check directory /home/netmet/netMET_de_test/SECURE ... /home/netmet/netMET_de_test/SECURE created.
Check directory /home/netmet/netMET_de_test/COMPUTED_DATA ... /home/netmet/netMET_de_test/COMPUTED_DATA created.
-----------------------------------------------------------------------------
/home/netmet/netMET_de_test/scripts/ARCHIVES4Json_gen-daily.pl syntax OK
...
/home/netmet/netMET_de_test/scripts/TOPS4Json.pl syntax OK
Previous file etc/organism.def copied to /home/netmet/netMET_de_test/etc/organism.def.
Previous file admin-logo.gif copied to /home/netmet/netMET_de_test/serveur_netmet/STATIC/images/admin-logo.gif.
Previous file stats/etc/netmet.conf copied to /home/netmet/netMET_de_test/stats/etc/netmet.conf.
Previous file secure/etc/netmet.conf copied to /home/netmet/netMET_de_test/secure/etc/netmet.conf.
Previous file etc/httpd.conf copied to /home/netmet/netMET_de_test/etc/httpd.conf.
Previous files init.d/NETMET_DUPstart.sh and init.d/NETMET_DUPstop.sh copied to /home/netmet/netMET_de_test/init.d.
-----------------------------------------------------------------------------

Complete the functions :
netMETtk4Json::check_organism()
netMETtk4Json::get_organisms_for_user()
You can complete the function mkconfs() in /home/netmet/netMET_de_test/scripts/CONFmake.pl
for generating the "organism's" file (subnet's definitions).
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
********** netMET service netMET_de_test : installation completed. **********

Il reste éventuellement à mettre à jour les modules netMETtk4Json.pm, et CONFmake.pl en y reportant les modifications effectuées sur la version précédente et à reporter les éventuelles modifications que vous auriez effectuées dans les scripts de la version antérieure.

Réutilisation d'une configuration netMET existante (version d'exploitation < 5.1)

Dans ce cas le répertoire en paramètre de la commande est nécessairement /home/netmet et le nom du service netMet.
Les paramètres de configuration sont recherchés dans les différents fichier de l'ancienne installation, seuls :

  • le nom du répertoire des données «précompilées»
  • l'URL du serveur netMET
  • l'adresse et le port d'écoute du serveur hypnotoad

sont saisis lors de l'exécution de la commande :

 ./install.sh /home/netmet   netMet
Checking PERL libraries ...
...
Check library : utf8 ... ok.
-----------------------------------------------------------------------------
Would you upgrade from "old" (before 5.x version) netMet (/home/netmet/netMet) ? [y/n] y
Enter directory name for computed data files (or return if /home/netmet/netMet/COMPUTED_DATA) ? /home/netmet/computed_data
Enter netmet service URL ? Mon-netmet.ciril.fr
*** Warning : existing directory /home/netmet/netMet is renamed /home/netmet/oldNetMetaaaammjj-hhmm
Upgrading new netMET service under /home/netmet/netMet ...
-----------------------------------------------------------------------------
Installing embedded netMET/netMAT collector ...for dir in ./src ./dependencies ; do \
make -C $dir all ; \
done
...
Embedded netMET/netMAT collector installation done.
-----------------------------------------------------------------------------
Directories duplicator
etc
init.d
scripts
secure
serveur_netmet
stats
tmp created
-----------------------------------------------------------------------------
Checking data/secure/json directories...
Check directory /home/netmet/html ... Directory /home/netmet/html exist
*** Warning : existing directory /home/netmet/html/images is renamed /home/netmet/html/images.old.aaaammjj-hhmm !
/home/netmet/html/images created.
Check directory /home/netmet/data … Directory /home/netmet/data exist
Check directory /home/netmet/secure … Directory /home/netmet/secure exist
Check directory /home/netmet/computed_data … /home/netmet/computed_data created.
-----------------------------------------------------------------------------
"old" file etc/organism.def copied to /home/netmet/netMet/etc/organism.def.
"old" file html/images/admin-logo.gif copied to /home/netmet/netMet/serveur_netmet/STATIC/images/admin-logo.gif.
"old" netMet .data files moved from /home/netmet/data to /home/netmet/computed_data.
"old" file stats/etc/netmet.conf copied to /home/netmet/netMet/stats/etc/netmet.conf.
"old" file secure10m/etc/netmet.conf copied to /home/netmet/netMet/secure/etc/netmet.conf.
-----------------------------------------------------------------------------
You must probably update Apache configuration files (/etc/httpd/conf/httpd.conf
or /etc/apache/httpd.conf) :
--> netMET directories, virtual host, ...
--> AddHandler cgi-script .cgi
--> DirectoryIndex index.cgi
Look a the file /home/netmet/netMet/etc/httpd.conf as an example of file to
include in an Apache configuration file.
-----------------------------------------------------------------------------
Complete the functions :
netMETtk4Json::check_organism()
netMETtk4Json::get_organisms_for_user()
if you need access control.
You can complete the function mkconfs() in /home/netmet/netMet/scripts/CONFmake.pl
for generating the "organism's" file (subnet's definitions).
-----------------------------------------------------------------------------
Use /home/netmet/netMet/init.d/init-systemd-instal4netMet.sh as root to install service netMet for init Systemd
-----------------------------------------------------------------------------
********** netMET service netMet : installation completed. **********
netmet#

Attention, si vous avez modifié la configuration «standard» de l'installation de netMET ancienne formule, la mise à niveau ne s'effectuera pas correctement.
Les fichiers de configuration impactés par vos modifications devront être examinés et les scripts Perl que vous auriez pu développer sur la base de l'ancienne distribution en utilisant le module netMETtk devront être modifiés pour utiliser le nouveau module netMETtk4Json.

Historique de l'installation

Un historique de l'installation et des mises à jour est conservé dans le fichier history.log du répertoire du service netMET.

<< Le répertoire de la distribution | Documentation | Mise à jour de netMET >>

Print - Recent Changes - Search
Page last modified on 2018/11/15 16:24:51