Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / network / proc_netstat @ 047358a0

Historique | Voir | Annoter | Télécharger (1,36 ko)

1 c8b5f17e teddddd
#!/bin/sh
2
# -*- sh -*-
3
#
4
# Plugin to monitor network connection activity using a subset of data from /proc/net/netstat
5
#
6
# Parameters:
7
#
8
#   config   (required)
9
#   autoconf (optional - only used by munin-config)
10
#
11
# Environment variables (optional):
12
#
13
#   IGNORED_FIELDS: comma-separated list of regexs for fields to ignore
14
#
15
# Author: Ted Dumitrescu (ted@mixpanel.com, webdev@cmme.org)
16
#
17
# Magic markers (optional - used by munin-config and some installation
18
# scripts):
19
#%# family=auto
20
#%# capabilities=autoconf
21
22
23
NETSTATS="/proc/net/netstat"
24
25
if [ -z $IGNORED_FIELDS ]; then
26
  IGNORED_FIELDS='TW\.,TCPPrequeued,TCPDirectCopy,TCPHPHits,TCPPureAcks,TCPHPAcks,TCPRcvCoalesce'
27
fi
28
29
TO_REMOVE=`echo $IGNORED_FIELDS | sed 's/,/\\\|/g'`
30
STRIP_OUTPUT="/\($TO_REMOVE\)/d"
31
32
if [ "$1" = "autoconf" ]; then
33
  if [ -r $NETSTATS ]; then
34
    echo yes
35
    exit 0
36
  else
37
    echo no
38
    exit 1
39
  fi
40
fi
41
42
if [ "$1" = "config" ]; then
43
  echo 'graph_title Netstat'
44
  echo 'graph_args -l 0 --base 1000'
45
  echo 'graph_category network'
46
  echo 'graph_period second'
47
  echo 'graph_info TcpExt stats'
48
49
  awk 'NR < 2 { for (i=2; i<=NF; i++) { printf("%s.label %s\n%s.type DERIVE\n%s.min 0\n", $i, $i, $i, $i); } }' $NETSTATS | sed "$STRIP_OUTPUT"
50
  exit 0
51
fi
52
53
awk 'NR < 2 { for (i=2; i<=NF; i++) { fn[i]=$i; }; getline; for (i=2; i<=NF; i++) { printf("%s.value %s\n", fn[i], $i); } }' $NETSTATS | sed "$STRIP_OUTPUT"