Projet

Général

Profil

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

root / plugins / haproxy / haproxy_active_backend @ 706e7e91

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

1 706e7e91 ricardo
#!/bin/bash
2
# -*- bash -*-
3
4
: << =cut
5
6
=head1 NAME
7
8
haproxy_active_backend -Haproxy servers active backend
9
10
=head1 CONFIGURATION
11
12
[haproxy*]
13
  user root
14
  env.backend backend_name_1 backend_name_2 backend_name_3
15
  env.frontend frontend_name_1 frontend_name_2 frontend_name_3
16
  env.url  http://user:passwd@IP:port/admin?stats;csv
17
18
=head1 AUTHOR
19
20
Ricardo Fraile <rfrail3@yahoo.es>
21
22
=head1 LICENSE
23
24
GNU
25
26
=head1 MAGICK MARKERS
27
28
 #%# family=auto
29
 #%# capabilities=autoconf
30
31
=cut
32
33
. $MUNIN_LIBDIR/plugins/plugin.sh
34
35
function parse_url {
36
	# Modify ifs variable
37
	OIFS=$IFS;
38
	IFS=",";
39
	PXNAME="$1"
40
	SVNAME="$2"
41
	VALUE="$3"
42
	LINE1=`curl -s "$url" | head -1 | sed 's/# //'`
43
	LINE2=`curl -s "$url" | grep "$PXNAME,$SVNAME"`
44
45
	ARRAY1=($LINE1);
46
47
	# Find values
48
	for ((i=0; i<${#ARRAY1[@]}; ++i));
49
	do
50
        	# Get data
51
	        if [[ "${ARRAY1[$i]}" == "${VALUE}" ]]; then
52
	                o=$i;
53
        	        o=`expr $o + 1`
54
                	echo ${LINE2} | cut -d" " -f $o
55
	        fi
56
	done
57
58
	# Reset ifs
59
	IFS=$OIFS;
60
}
61
62
63
SVNAME='BACKEND'
64
LIST=$backend
65
66
if [ "$1" = "autoconf" ]; then
67
	echo yes 
68
	exit 0
69
fi
70
71
if [ "$1" = "config" ]; then
72
73
	echo "graph_title Active Servers ${SVNAME}"
74
	echo 'graph_args --base 1000 -l 0 '
75
	echo 'graph_vlabel Servers'
76
	echo 'graph_scale no'
77
	echo 'graph_category haproxy'
78
	echo "graph_info Active Servers ${SVNAME}"
79
80
	for i in ${LIST}; do
81
	        echo "act`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label Active Servers $i"
82
        	echo "act`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type GAUGE"
83
	        echo "act`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0"
84
        	echo "act`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info Active Servers $i"
85
	done
86
87
	exit 0
88
fi
89
	for i in ${LIST}; do
90
		ACT=`parse_url ${i} ${SVNAME} act`
91
	        echo "act`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $ACT"
92
	done
93