Ceci est une ancienne révision du document !
Picviz
Picviz est un applicatif qui, à partir de fichiers log générés par des sources diverses telles que Apache, Netfilter, …va concevoir des graphiques au format png permettant une vue plus synthétique et plus compréhensible des données contenues dans ces fichiers log (erreurs, anomalies, …)
Picviz permet de générer des graphiques type coordonnées parallèles. Les coordonnées parallèles sont une technique permettant de visualiser un nombre important d'informations de façon non ambiguë (voir wikipedia).
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
Installation
Installation des paquetages prérequis (dont python et gcc)
apt-get install flex bison python2.6-dev python2.6-qt4 cmake cairo-dock-dev gcc
Installation de pcre (library permettant d'implémenter des expressions régulières) l'archive est disponible ici
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.01.tar.gz tar xvf pcre-8.01.tar.gz cd pcre-8.01 ./configure make sudo make install
Installation de libpicviz (c'est la library de picviz développée en python) l'archive est disponible ici
cd .. wget http://www.wallinfire.net/files/picviz/libpicviz-0.6.1.tar.gz tar xvf libpicviz-0.6.1.tar.gz cd libpicviz-0.6.1 make sudo make install sudo src/bindings/python/setup.py install
Installation de picviz-cli (picviz en interface texte) l'archive est disponible ici
cd .. wget http://www.wallinfire.net/files/picviz/picviz-cli-0.6.tar.gz tar xvf picviz-cli-0.6.tar.gz cd picviz-cli-0.6/src make sudo make install
Installation de picviz-Gui (picviz en interface graphique) l'archive est disponible ici
cd ../.. wget http://www.wallinfire.net/files/picviz/picviz-gui-0.7.tar.gz tar xvf picviz-gui-0.7.tar.gz cd picviz-gui-0.7 sudo ./setup.py install ldconfig
Configuration
> picviz-gui
Integrer picviz-gui au menu Application : Clic droit sur Application→ Éditer les menus → Accessoires → Nouvel élément → le nom Picviz, la commande picviz-gui
Utilisation
Picviz reçoit en entrée des fichiers au format PCV.
Avant d'utiliser le logiciel Picviz, il faut utiliser un script qui permet de convertir le fichier log en un fichier PCV par l'utilisation du langage PGDL (plus d'information).
Sources (Syslog, Netfilter, Apache) → Génération par le langage PGDL (utilisation de script) → fichier PCV → Conception du graphique (par utilisation picviz) → Graphique png
> picviz-cli
pcv -Tpngcairo -Rheatline -rrrrrrrra access-wallinfire.net.pcv > access.png
- Tpngcairo : format png
- Rheatline -Avirus : fréquences
- rrrrrrrr : permet une haute résolution
- a : permet afficher du text
Génération automatique de graphiques : Nous pouvons, à partir cron, créer un script qui permet de générer des images périodiques. Le script syslog2picviz.pl est disponible ici
#!/bin/sh ./syslog2picviz.pl syslogemu.log > syslogemu.pcv pcv -Tpngcairo -Rheatline -rrrrrrrra syslogemu.pcv > syslogemu.png echo "" | mutt -x -s "Picviz" root -a syslogemu.png rm syslogemu.pcv rm syslogemu.png
Un envoi de mail se fait automatiquement par utilisation d'un serveur mail
> picviz-gui
picviz-gui apporte un plus à la ligne de commende, mais comme celle-ci est écris en python. Elle est relativement moins fluide et fin que ggobi.
> Exemple d'utilisation
La source
On récupère un log, dans mon cas syslogemu.log log de parfeu.
Mar 3 09:38:46 debian DINPUT IN=eth0 OUT= MAC=00:0c:30:db:0c:32:00:0c:30:b1:d9:e2:09:00 SRC=192.168.1.205 DST=192.168.1.240 LEN=44 TOS=00 PREC=0x00 TTL=55 ID=53647 CE PROTO=TCP SPT=48040 DPT=23 SEQ=2989621591 ACK=0 WINDOW=4096 SYN URGP=0 Mar 3 09:38:46 debian DINPUT IN=eth0 OUT= MAC=00:0c:30:db:0c:32:00:0c:30:b1:d9:e2:09:00 SRC=192.168.1.205 DST=192.168.1.240 LEN=44 TOS=00 PREC=0x00 TTL=40 ID=7426 PROTO=TCP SPT=48040 DPT=113 SEQ=2989621591 ACK=0 WINDOW=1024 SYN URGP=0 Mar 3 09:38:46 debian DINPUT IN=eth0 OUT= MAC=00:0c:30:db:0c:32:00:0c:30:b1:d9:e2:09:00 SRC=192.168.1.205 DST=192.168.1.240 LEN=44 TOS=00 PREC=0x00 TTL=56 ID=40787 CE PROTO=TCP SPT=48040 DPT=21 SEQ=2989621591 ACK=0 WINDOW=1024 SYN URGP=0
Conversion
On convertir le log du parfau en format PCV à l'aidez de script
./syslog2picviz.pl syslogemu.log > syslogemu.pcv