8

BPS Graph

Posted in Internet by FafaG13 1948 days ago

First big thanks to Peter Möller for inspirate me !

(Edit du 18.03.2013 en Français) Pour les graphes :

Etape 1 : Installer rrdtools (terminal.app) $ brew install rrdtool

Etape 2 : créez un dossier de votre choix

Etape 3 : créez la base rrd

3.1 Dans un éditeur de texte (SublimeText pour moi) créez le fichier initialisedatabase.sh dont le contenu est : #!/bin/bash rrdtool create bandwidthusagedb.rrd \ --step 10 \ DS:inbyts:COUNTER:20:0:U \ DS:oubyts:COUNTER:20:0:U \ RRA:MAX:0.5:1:900 \

(nota : ce script ne sert qu'une fois)

3.2 Dans le terminal : 3.2.1 $ cd /Your/folder/path/ 3.2.2 $ /bin/bash /Your/folder/path/initialise_database.sh

(nota : la base rrd est maintenant créée, le prochain script sert à l'alimenter )

Etape 4 : alimentation de la base rrd

Dans un éditeur de texte (SublimeText pour moi) créez le fichier updaterrddatabase.sh qui contient :

#!/bin/bash
rrdtool="/usr/local/bin/rrdtool"
while :
do
    data=$(netstat -i -b | grep en1 | tail -n 1 | awk '{print $7" "$10}')
    inbytes=$( echo $data | awk '{print $1}')
    oubytes=$( echo $data | awk '{print $2}')
    $rrdtool update bandwidthusage_db.rrd N:$inbytes:$oubytes
    sleep 9
done

Ce script va devoir être lancé à intervales réguliers, pour cela et puisque cron est obsolète sur Os X, j'utilise Lingon X qui facilite la création de fichier plist. Dans Lingon X j'ai demandé à ce que le script "updaterrddatabase.sh" soit exécuté toutes les minutes.

Maintenant la base bandwidthusagedb.rrd est mise à jour toutes les minutes grace au script updaterrd_database.sh.

Il ne manque plus qu'un dernier script rrd pour générer le graphe (toutes les minutes aussi avec Lingon X).

Etape 5 : création du graphe

Dans un éditeur de texte (SublimeText pour moi) créez le fichier create_graph.sh qui contient :

#!/bin/bash
/usr/local/bin/rrdtool graph bandwidth_graph.png \
-w 245 -h 80 -a PNG \
--start -1800 --end now \
--font DEFAULT:7:Menlo \
--title " " \
--lower-limit 0 \
--upper-limit MAX \
--right-axis 1:0 \
--x-grid none \
--y-grid none \
--border 0 \
--color ARROW#ffffff00 \
--color AXIS#ffffff \
--color BACK#ffffff00 \
--color CANVAS#ffffff00 \
--color FONT#ffffff \
DEF:inbyts=bandwidthusage_db.rrd:inbyts:MAX \
DEF:oubyts=bandwidthusage_db.rrd:oubyts:MAX \
CDEF:IBNone=inbyts,0,0,LIMIT,UN,UNKN,INF,IF \
AREA:inbyts#FFFFFF:"inBytes" \
GPRINT:inbyts:LAST:"Cur\: %5.2lf" \
GPRINT:inbyts:AVERAGE:"Avg\: %5.2lf" \
GPRINT:inbyts:MAX:"\t        Max\: %5.2lf" \
GPRINT:inbyts:MIN:"Min\: %5.2lf"
sleep 9

L'image bandwidthgraph.png est mise à jour en permanence (grace à Lingon X qui lance toutes les minutes updaterrddatabase.sh et creategraph.sh ).

Voila il ne reste plusqu'à afficher l'image bandwidth_graph.png dans Geektool avec un raffraichissement régulier mais là pas besoin de tuto n'est pas ...

Fouillez la doc de rrdtool, améliorez le tout, faites le à votre gout, faites moi rêver quoi !

Blague à part, j'espère que cette "ligne directrice" vous servira.

Et voici un script qui permet d'obtenir le nom de l'organisme détenteur d'une IP et sa localisation :

!/bin/bash

if [ ! $1 ];then ip=2a00:1450:400c:c06::65 ##ip=17.149.36.87 else ip=$1 fi IPtocheck=$ip

Geolocalisation de l'adresse IP

GeoLookupKey=yourkey ## Peter Möller explain how to have it, search "openports.sh" in google GeoLookupURL="http://api.db-ip.com/addrinfo?addr" GeoLookupFullURL="$(curl -s "$GeoLookupURL=$IPtocheck&api_key=$GeoLookupKey")" Localisation=$(echo $GeoLookupFullURL | awk -F"\"" '{print "("$16"-"$8")" }' )

Determination de l organisme a qui appartient l ip

organism=$(whois -h riswhois.ripe.net $ip | grep descr | awk 'END {print $2}') first=echo ${organism:0:1} | tr 'a-z' 'A-Z' rest=echo ${organism:1} | tr 'A-Z' 'a-z' Organisme=echo $first$rest

Affichage du resultat

echo $Organisme $Localisation

enjoy !


Comments

Log in to comment or register here.