J'ai eu à surveiller le nombre de connections ssh simultanées sur un même serveur. VOici la méthode que j'ai utilisée.
On va utilise run simple script qui va concatener les valeurs receuillies au format suivant sur deux colonnes, (heure,nombre de connections).
HH:MM:00 nb_connections
#!/usr/bin/ksh FICHIER=connection_$(date +%d%m%Y) DATA_DIR=/data/collecte heure=$(date +%H:%M:00) collecte=$(lsof -i -a -c ssh |wc -l) printf "%5s %s\n" $heure $collecte >> $DATA_DIR/$FICHIER
On ajoute dans la crontab le ligne suivante qui va appeler le script toutes les minutes 24h/24H.
0-59 * * * * /root/bin/get_connexions
Il est possible d'utiliser directement gnuplot. Mais pour automatiser, je vais utiliser perl avec un pipe.
Il est possible aussi Chart::Gnuplot, mais cette solution à le mérite d'être extrèmement simple, surtout si on connait gnuplot.
open my $GP, '|-', 'gnuplot';
print {$GP} <<'__GNUPLOT__';
set title "serveur 23/05"
set terminal png truecolor
set output "graph1.png"
set autoscale
set xdata time
set timefmt "%H:%M:%S"
set style data lines
set xrange ["00:00" to "23:00"]
plot "plot/connection_23052015" using 1:2 title "nb connections"
__GNUPLOT__
close $GP;
| Description | date | script |
| collecte des connections (sh) | 27/05/2015 | collecte |
| traitement gnuplot (perl) | 27/05/2015 | draw_graph |
| donnees (data) | 27/05/2015 | data.plt |