Prototype d'analyseur de log nfcapd, pour un reporting quotidien, et détermination de saturations sur les liens IP.

Citnop 7d06c5d5bb version release 15 août et doc. 3 years ago
chef 6fe8650fa0 zip et tarcvfz créaient trop de sous-répertoires. ce commit devrait changer tout celà 3 years ago
cleanRAM cad878e8b2 ajout des fichiers Shell, C++, flex (->C) au projet. 3 years ago
cpp f1cf555fab graphEchantTabl moins verbeux 3 years ago
doc 7d06c5d5bb version release 15 août et doc. 3 years ago
genHourMin cad878e8b2 ajout des fichiers Shell, C++, flex (->C) au projet. 3 years ago
genTrafic a35795b6ef corrigé un message d'erreur, ajout doc dans genTrafic, et dans n2rn.l 3 years ago
gnuplot 99d38d2db0 téléchargement et compilation du projet. plus grande image. 3 years ago
img 7d06c5d5bb version release 15 août et doc. 3 years ago
mail af56ad4621 modifié le chef_d_orchestre pour faire du mailing automatique. 3 years ago
nfcapd2ascii cad878e8b2 ajout des fichiers Shell, C++, flex (->C) au projet. 3 years ago
preparser e9e2eb05af ajout du script genTrafic.py pour générer du trafic sur la journée. 3 years ago
unix2win e28d5ad7cf n2rn.l retire aussi les caractères d'échappement pour la couleur (shell : head, cat, less) 3 years ago
.gitignore 9429dc69ff initial commit 3 years ago
LICENSE 9429dc69ff initial commit 3 years ago
Makefile f7c7b19863 ajout post-parser Flex pour transformer les fichier UNIX en Win \n --> \r\n 3 years ago
README.md 12f4311df8 ajout noSite, modifié Makefile 3 years ago
YaPLog.sh 3234a8718f ajout image htop. créé YaPLog.sh. corrigé erreurs dans chef_o 3 years ago
noSite.csv 12f4311df8 ajout noSite, modifié Makefile 3 years ago

README.md

YaPLog

Prototype d'analyseur de log nfcapd, pour un reporting quotidien, et détermination de saturations sur les liens IP.

Description

le script Bash chef/chef_d_orchestre est l'ordonnanceur qui appelle chacune des fonctions le programme cleanRAM/useRAM sert à allouer/désallouer 1/2 de la RAM de l'ordinateur le plus vite possible cpp/ contient le parser C++ qui va représenter les Packet (IP:port, poids, date, durée) sur une journée (genHourMin/genHourMin.py permet de générer les quarts d'heure de la journée) gnuplot/plotgnu.sh permet de réaliser un graph à partir d'un CSV nfcapd2ascii/ contient nfdumpall.sh qui permet de passer du format binaire nfcapd à du texte ASCII preparser/contient acsvify qui permet de passer du texte à un format CSV plus standard et plus léger. il contient aussi csvify qui met de la couleur (ajout de caractères d'échappement, ne pas utiliser pour la production, il génère beaucoup de texte)

Fonctionnement

Le script chef_d_orchestre suit les étapes suivantes pour tous les sites (Warning si les logs d'un site ne sont pas fournis) :

cp :

les archives sont copiées dans des répertoires pour éviter les mélanges entre les fichiers.
NOTE: il faut appeler l'archive ****-siteNN-*****.zip, où * n'est pas important, mais non vide, N = numéro du site (entre 01 et 135)

unzip :

le programme extrait l'archive zip
l'archive contient normlement 96 quarts d'heure.

bin2ascii/nfcapd:

le programme transforme les 96 quarts d'heure du format binaire vers du texte ASCII

cat:

le programme concatène les 96 fichiers ASCII produits

ascii2csv/pre-parser:

le programme réalise un préparsing du fichier texte ascii pour obtenir un CSV plus léger et plus facile à parser.

csv2res/graphEchantTabl:

le programme analyse chacun des paquets pour en faire une représentation générale.

graphs:

le prgramme crée des images PNG à partir de chacun des CSV produits.

FIN.

Téléchargement & Compilation

Pour télécharger le projet, taper la commande :

$ git clone https://git.hashtagueule.fr/citnop/YaPLog.git

ou

$ git clone git@htgl.fr:citnop/YaPLog.git si vous êtes le propriétaire du dépôt.

puis allez dans le répertoire :

$ cd YaPLog

et compilez tous les fichiers à l'aide de la commande :

$ make all

Dépendances

Le projet compile et tourne sur Debian 8.5 (Jessie). Il nécessite les packets/programmes suivants :

git 
flex
gcc >= 4.9 (versions précédentes non testées)
g++ >= 4.9 (compilation avec std=c++11 non testée)
bash (pas testé avec d'autres shells)
gnuplot (graphiques)
zip/unzip 
texlive-full (pour générer la documentation)
rsync (cp, en mieux, avec les dates y tout, qui vend du rêve et de la synchronisation)
make
perl

et le programme externe :

nfdump

les paquets suivants peuvent aider au débug :

gdb
htop
/usr/bin/time
valgrind

Pour les installer :

en tant que root :

# apt-get install time git flex gcc g++ gnuplot zip unzip texlive-full rsync make htop gdb valgrind perl

en tant que sudoer :

$ sudo apt-get install time git flex gcc g++ gnuplot zip unzip texlive-full rsync make htop gdb valgrind perl 

puis, il faut installer nfdump :

wget -c https://sourceforge.net/projects/nfdump/files/stable/nfdump-1.6.13/nfdump-1.6.13.tar.gz/download

(le lien peut avoir changé/ou la version n'être plus à jour) pour installer nfdump :

$ ./configure && make && sudo su
# make install && exit

suffisent.