1 | #!/bin/bash
|
2 |
|
3 | # Check the status of a statsd or statsd proxy connecting directly to the
|
4 | # management console.
|
5 |
|
6 | # This script can be used both for Nagios and Keepalived passing a parameter.
|
7 | # The default behaviour is the Nagios one.
|
8 |
|
9 | OK=0;
|
10 | CRITICAL=2;
|
11 | UNKNOWN=3;
|
12 | KEEPALIVED_CRITICAL=1;
|
13 |
|
14 | HOST="127.0.0.1"
|
15 | PORT="8126"
|
16 | MODE_KEEPALIVED=0
|
17 |
|
18 | print_usage() {
|
19 | echo "Usage: check_statsd_health [-H host] [-P port] [-k]"
|
20 | echo "Options:"
|
21 | echo " -H host Specify the host to check. [default: 127.0.0.1]"
|
22 | echo " -P port Specify the port to check. [default: 8126]"
|
23 | echo " -k Use exit status for Keepalived MISC_CHECK. [default: false]"
|
24 |
|
25 | if [[ "${MODE_KEEPALIVED}" -eq "1" ]]; then
|
26 | exit ${KEEPALIVED_CRITICAL}
|
27 | else
|
28 | exit ${UNKNOWN}
|
29 | fi
|
30 | }
|
31 |
|
32 | while getopts ":H:P:k" opt; do
|
33 | case $opt in
|
34 | H) HOST="${OPTARG}";;
|
35 | P) PORT="${OPTARG}";;
|
36 | k) MODE_KEEPALIVED=1;;
|
37 |
|
38 | :)
|
39 | echo "Missing mandatory value for option '-${OPTARG}'" >&2
|
40 | print_usage
|
41 | ;;
|
42 |
|
43 | \?)
|
44 | echo "Invalid option '${OPTARG}'" >&2
|
45 | print_usage
|
46 | ;;
|
47 |
|
48 | esac
|
49 | done
|
50 |
|
51 | HEALTH="$(echo -e "health\n" | nc "${HOST}" "${PORT}")"
|
52 | echo "Statsd '${HOST}:${PORT}' responded: '${HEALTH}'"
|
53 |
|
54 | if [[ "${HEALTH}" == "health: up" ]]; then
|
55 | exit ${OK}
|
56 | else
|
57 | if [[ "${MODE_KEEPALIVED}" -eq "1" ]]; then
|
58 | exit ${KEEPALIVED_CRITICAL}
|
59 | else
|
60 | exit ${CRITICAL}
|
61 | fi
|
62 | fi
|