root / plugins / haproxy / haproxy-sessions-by-servers @ c3660c2a
Historique | Voir | Annoter | Télécharger (2,7 ko)
| 1 | 825cb214 | Allan Parsons | #!/bin/bash |
|---|---|---|---|
| 2 | # Allan Parsons (allan.parsons@gmail.com) |
||
| 3 | 41db1b55 | Allan Parsons | # This was a rewrite by Allan Parsons |
| 4 | # |
||
| 5 | # Original Author: Pasha "p01nt" Klets <pasha@klets.name> |
||
| 6 | # |
||
| 7 | 825cb214 | Allan Parsons | |
| 8 | ##DEBUGDEBUG |
||
| 9 | #MUNIN_LIBDIR=/usr/share/munin |
||
| 10 | #. $MUNIN_LIBDIR/plugins/plugin.sh |
||
| 11 | #socket="/var/run/haproxy.sock" |
||
| 12 | |||
| 13 | |||
| 14 | 8b63e3cd | Pasha Klets | |
| 15 | name=`basename $0` |
||
| 16 | title=`echo ${name} | awk -F_ '{print $NF}'`
|
||
| 17 | 825cb214 | Allan Parsons | SVNAME='BACKEND' |
| 18 | LIST=$backend |
||
| 19 | 8b63e3cd | Pasha Klets | |
| 20 | |||
| 21 | |||
| 22 | 825cb214 | Allan Parsons | function parse_url {
|
| 23 | # Modify ifs variable |
||
| 24 | OIFS=$IFS; |
||
| 25 | IFS=","; |
||
| 26 | PXNAME="$1" |
||
| 27 | SVNAME="$2" |
||
| 28 | VALUE="$3" |
||
| 29 | if [ ! -z "$4" ]; then |
||
| 30 | SERVERNAME="$4" |
||
| 31 | fi |
||
| 32 | |||
| 33 | if [ ! -z "$url" ]; then |
||
| 34 | LINE1=`curl -s "$url" | head -1 | sed 's/# //'` |
||
| 35 | 7b888282 | Allan Parsons | LINE2=`curl -s "$url" | grep "$PXNAME" | grep -v "$PXNAME,$SVNAME" | tr ',' ' '` |
| 36 | 825cb214 | Allan Parsons | fi |
| 37 | |||
| 38 | if [ ! -z "$socket" ]; then |
||
| 39 | LINE1=`echo "show stat" | socat unix-connect:"$socket" stdio | head -1 | sed 's/# //'` |
||
| 40 | LINE2=`echo "show stat" | socat unix-connect:"$socket" stdio | grep "$PXNAME" | grep -v "$PXNAME,$SVNAME" | tr ',' ' '` |
||
| 41 | |||
| 42 | #echo $CMD |
||
| 43 | #exit |
||
| 44 | fi |
||
| 45 | 8b63e3cd | Pasha Klets | |
| 46 | |||
| 47 | 825cb214 | Allan Parsons | ARRAY1=($LINE1); |
| 48 | if [ ! -z $SERVERNAME ]; then |
||
| 49 | # Find values |
||
| 50 | for ((i=0; i<${#ARRAY1[@]}; ++i));
|
||
| 51 | do |
||
| 52 | # Get data |
||
| 53 | if [[ "${ARRAY1[$i]}" == "${VALUE}" ]]; then
|
||
| 54 | o=$i; |
||
| 55 | o=`expr $o + 1` |
||
| 56 | RVAL=`echo ${LINE2} | grep ${SERVERNAME} | cut -d" " -f $o`
|
||
| 57 | fi |
||
| 58 | done |
||
| 59 | else |
||
| 60 | RVAL=`echo 'show stat' | socat unix-connect:"$socket" stdio | grep "$PXNAME" | grep -v "$PXNAME,$SVNAME" | tr ',' ' ' | awk '{print $2}'`
|
||
| 61 | fi |
||
| 62 | # Reset ifs |
||
| 63 | IFS=$OIFS; |
||
| 64 | |||
| 65 | ## return val |
||
| 66 | echo $RVAL |
||
| 67 | 8b63e3cd | Pasha Klets | } |
| 68 | |||
| 69 | 825cb214 | Allan Parsons | |
| 70 | |||
| 71 | ## |
||
| 72 | ## Main |
||
| 73 | ## |
||
| 74 | |||
| 75 | 8b63e3cd | Pasha Klets | graph_title="${title} sessions by servers"
|
| 76 | graph_vlabel=${title}
|
||
| 77 | |||
| 78 | 825cb214 | Allan Parsons | if [ "$1" = "autoconf" ]; then |
| 79 | echo yes |
||
| 80 | exit 0 |
||
| 81 | fi |
||
| 82 | |||
| 83 | |||
| 84 | if [ "$1" = "config" ]; then |
||
| 85 | |||
| 86 | echo "graph_category haproxy" |
||
| 87 | echo "graph_title ${graph_title}"
|
||
| 88 | echo "graph_vlabel ${graph_vlabel}"
|
||
| 89 | 2e950fcd | Allan Parsons | #echo "graph_printf %.0f" |
| 90 | 825cb214 | Allan Parsons | |
| 91 | for i in ${LIST}; do
|
||
| 92 | SERVERLIST=$(parse_url ${i} ${SVNAME} svname)
|
||
| 93 | for s in $SERVERLIST; do |
||
| 94 | echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.label $s" |
||
| 95 | echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.type DERIVE" |
||
| 96 | echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.info Active Sessions for $s" |
||
| 97 | echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.min 0" |
||
| 98 | #echo "hsessionsbyservers_$s_`echo $i_$s | md5sum | cut -d - -f1 | sed 's/ //g'`.draw AREASTACK" |
||
| 99 | done |
||
| 100 | done |
||
| 101 | |||
| 102 | exit 0 |
||
| 103 | fi |
||
| 104 | |||
| 105 | 8b63e3cd | Pasha Klets | |
| 106 | 825cb214 | Allan Parsons | for i in ${LIST}; do
|
| 107 | 8b63e3cd | Pasha Klets | |
| 108 | 825cb214 | Allan Parsons | SERVERLIST=$(parse_url ${i} ${SVNAME} svname)
|
| 109 | 8b63e3cd | Pasha Klets | |
| 110 | 825cb214 | Allan Parsons | for s in $SERVERLIST; do |
| 111 | val=$(parse_url ${i} ${SVNAME} scur ${s})
|
||
| 112 | echo "hsessionsbyservers_$s_`echo $i_$s | md5sum| cut -d - -f1 | sed 's/ //g'`.value ${val}"
|
||
| 113 | done |
||
| 114 | done |
