![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
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 |