mesure du nombre de connection ssh à un serveur

Creation: 29 fevvier 2016
Mise à jour:
Version: 1.11
Author: Jean-Louis Bicquelet-Salaün
Location: http://jlbicquelet.free.fr
Copyright: (c) 2016 Jean-Louis BICQUELET-SALAÜN

mesure du nombre de connection ssh à un serveur

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.

collecte

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

traitement

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;

téléchargement

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