root / plugins / haproxy / haproxy_responses_backend @ 09b88141
Historique | Voir | Annoter | Télécharger (4,86 ko)
| 1 | 706e7e91 | ricardo | #!/bin/bash |
|---|---|---|---|
| 2 | # -*- bash -*- |
||
| 3 | |||
| 4 | : << =cut |
||
| 5 | |||
| 6 | =head1 NAME |
||
| 7 | |||
| 8 | haproxy_responses_backend -Haproxy responses backend |
||
| 9 | |||
| 10 | =head1 CONFIGURATION |
||
| 11 | |||
| 12 | 09b88141 | Lars Kruse | [haproxy*] |
| 13 | 706e7e91 | ricardo | 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 | 4f29ff59 | rfrail3 | # You can use url o socket option, use one of them, not both! |
| 17 | env.url http://user:passwd@IP:port/admin?stats;csv |
||
| 18 | # or |
||
| 19 | env.socket /var/lib/haproxy/stats.socket |
||
| 20 | 706e7e91 | ricardo | |
| 21 | =head1 AUTHOR |
||
| 22 | |||
| 23 | 0541fdd1 | ricardo | Ricardo Fraile <rikr_@hotmail.com> |
| 24 | 706e7e91 | ricardo | |
| 25 | =head1 LICENSE |
||
| 26 | |||
| 27 | a717a913 | rfrail3 | GPLv2 |
| 28 | 706e7e91 | ricardo | |
| 29 | =head1 MAGICK MARKERS |
||
| 30 | |||
| 31 | #%# family=auto |
||
| 32 | #%# capabilities=autoconf |
||
| 33 | |||
| 34 | =cut |
||
| 35 | |||
| 36 | . $MUNIN_LIBDIR/plugins/plugin.sh |
||
| 37 | |||
| 38 | function parse_url {
|
||
| 39 | 0541fdd1 | ricardo | # Modificamos la variable if, al final se vuelve a dejar igual |
| 40 | 706e7e91 | ricardo | OIFS=$IFS; |
| 41 | IFS=","; |
||
| 42 | PXNAME="$1" |
||
| 43 | SVNAME="$2" |
||
| 44 | VALUE="$3" |
||
| 45 | 4f29ff59 | rfrail3 | |
| 46 | if [ ! -z "$url" ]; then |
||
| 47 | LINE1=`curl -s "$url" | head -1 | sed 's/# //'` |
||
| 48 | LINE2=`curl -s "$url" | grep "$PXNAME,$SVNAME"` |
||
| 49 | fi |
||
| 50 | |||
| 51 | if [ ! -z "$socket" ]; then |
||
| 52 | LINE1=`echo 'show stat' | socat unix-connect:"$socket" stdio | head -1 | sed 's/# //'` |
||
| 53 | LINE2=`echo 'show stat' | socat unix-connect:"$socket" stdio | grep "$PXNAME,$SVNAME"` |
||
| 54 | fi |
||
| 55 | 706e7e91 | ricardo | |
| 56 | ARRAY1=($LINE1); |
||
| 57 | |||
| 58 | 0541fdd1 | ricardo | # Recorremos el array buscando los valores esperados |
| 59 | 706e7e91 | ricardo | for ((i=0; i<${#ARRAY1[@]}; ++i));
|
| 60 | do |
||
| 61 | 0541fdd1 | ricardo | # Si coincide con el valor, sacar el dato |
| 62 | 706e7e91 | ricardo | if [[ "${ARRAY1[$i]}" == "${VALUE}" ]]; then
|
| 63 | o=$i; |
||
| 64 | o=`expr $o + 1` |
||
| 65 | echo ${LINE2} | cut -d" " -f $o
|
||
| 66 | fi |
||
| 67 | done |
||
| 68 | |||
| 69 | 0541fdd1 | ricardo | # se deja la variable igual |
| 70 | 706e7e91 | ricardo | IFS=$OIFS; |
| 71 | } |
||
| 72 | |||
| 73 | |||
| 74 | SVNAME='BACKEND' |
||
| 75 | LIST=$backend |
||
| 76 | |||
| 77 | if [ "$1" = "autoconf" ]; then |
||
| 78 | 17f78427 | Lars Kruse | echo yes |
| 79 | 706e7e91 | ricardo | exit 0 |
| 80 | fi |
||
| 81 | |||
| 82 | if [ "$1" = "config" ]; then |
||
| 83 | |||
| 84 | echo "graph_title HTTP Responses ${SVNAME}"
|
||
| 85 | echo 'graph_args --base 1000 -l 0 ' |
||
| 86 | echo 'graph_vlabel Responses' |
||
| 87 | echo 'graph_scale no' |
||
| 88 | a3c2338b | dipohl | echo 'graph_category loadbalancer' |
| 89 | 706e7e91 | ricardo | echo "graph_info HTTP Responses ${SVNAME}"
|
| 90 | |||
| 91 | for i in ${LIST}; do
|
||
| 92 | echo "hrsp_1xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label HTTP 1xx $i" |
||
| 93 | echo "hrsp_1xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE" |
||
| 94 | echo "hrsp_1xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0" |
||
| 95 | echo "hrsp_1xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info HTTP responses with 1xx code $i" |
||
| 96 | |||
| 97 | echo "hrsp_2xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label HTTP 2xx $i" |
||
| 98 | echo "hrsp_2xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE" |
||
| 99 | echo "hrsp_2xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0" |
||
| 100 | echo "hrsp_2xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info HTTP responses with 2xx code $i" |
||
| 101 | |||
| 102 | echo "hrsp_3xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label HTTP 3xx $i" |
||
| 103 | echo "hrsp_3xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE" |
||
| 104 | echo "hrsp_3xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0" |
||
| 105 | echo "hrsp_3xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info HTTP responses with 3xx code $i" |
||
| 106 | |||
| 107 | echo "hrsp_4xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label HTTP 4xx $i" |
||
| 108 | echo "hrsp_4xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE" |
||
| 109 | echo "hrsp_4xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0" |
||
| 110 | echo "hrsp_4xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info HTTP responses with 4xx code $i" |
||
| 111 | |||
| 112 | echo "hrsp_5xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label HTTP 5xx $i" |
||
| 113 | echo "hrsp_5xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE" |
||
| 114 | echo "hrsp_5xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0" |
||
| 115 | echo "hrsp_5xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info HTTP responses with 5xx code $i" |
||
| 116 | |||
| 117 | echo "hrsp_other`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.label HTTP other $i" |
||
| 118 | echo "hrsp_other`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE" |
||
| 119 | echo "hrsp_other`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0" |
||
| 120 | echo "hrsp_other`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.info HTTP responses with other codes $i" |
||
| 121 | |||
| 122 | |||
| 123 | done |
||
| 124 | |||
| 125 | exit 0 |
||
| 126 | fi |
||
| 127 | for i in ${LIST}; do
|
||
| 128 | H1xx=`parse_url ${i} ${SVNAME} hrsp_1xx`
|
||
| 129 | H2xx=`parse_url ${i} ${SVNAME} hrsp_2xx`
|
||
| 130 | H3xx=`parse_url ${i} ${SVNAME} hrsp_3xx`
|
||
| 131 | H4xx=`parse_url ${i} ${SVNAME} hrsp_4xx`
|
||
| 132 | H5xx=`parse_url ${i} ${SVNAME} hrsp_5xx`
|
||
| 133 | Hoxx=`parse_url ${i} ${SVNAME} hrsp_other`
|
||
| 134 | echo "hrsp_1xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $H1xx" |
||
| 135 | echo "hrsp_2xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $H2xx" |
||
| 136 | echo "hrsp_3xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $H3xx" |
||
| 137 | echo "hrsp_4xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $H4xx" |
||
| 138 | echo "hrsp_5xx`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $H5xx" |
||
| 139 | 0541fdd1 | ricardo | echo "hrsp_other`echo $i | md5sum | cut -d - -f1 | sed 's/ //g'`.value $Hoxx" |
| 140 | 706e7e91 | ricardo | done |
