diff options
Diffstat (limited to 'salt/openbook/database/files/clusterckeck.sh')
| -rw-r--r-- | salt/openbook/database/files/clusterckeck.sh | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/salt/openbook/database/files/clusterckeck.sh b/salt/openbook/database/files/clusterckeck.sh deleted file mode 100644 index adb5da8..0000000 --- a/salt/openbook/database/files/clusterckeck.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -# -# Script to make a proxy (ie HAProxy) capable of monitoring Percona XtraDB Cluster nodes properly -# -# Author: Olaf van Zandwijk <olaf.vanzandwijk@nedap.com> -# Author: Raghavendra Prabhu <raghavendra.prabhu@percona.com> -# -# Documentation and download: https://github.com/olafz/percona-clustercheck -# -# Based on the original script from Unai Rodriguez -# -# This implementation depends on the presence of a ~/.my.cnf file for the mysql username and password. - -if [[ $1 == '-h' || $1 == '--help' ]]; then - echo "Usage: $0 <available_when_donor=0|1> <available_when_readonly=0|1> <log_file> <defaults_extra_file>" - exit 1 -fi - -# if the disabled file is present, return 503. This allows -# admins to manually remove a node from a cluster easily. -if [ -e "/var/tmp/clustercheck.disabled" ]; then - echo -en "HTTP/1.1 503 Service Unavailable\r\n" - echo -en "Content-Type: text/plain\r\n" - echo -en "Connection: close\r\n" - echo -en "Content-Length: 51\r\n" - echo -en "\r\n" - echo -en "Percona XtraDB Cluster Node is manually disabled.\r\n" - sleep 0.1 - exit 1 -fi - -AVAILABLE_WHEN_DONOR=${1:-1} -AVAILABLE_WHEN_READONLY=${2:-1} -ERR_FILE="${3:-/dev/null}" -DEFAULTS_EXTRA_FILE="${4:-/etc/my.cnf}" - -#Timeout exists for instances where mysqld may be hung -TIMEOUT=10 - -EXTRA_ARGS="" -if [[ -r $DEFAULTS_EXTRA_FILE ]]; then - MYSQL_CMDLINE="mysql --defaults-extra-file=$DEFAULTS_EXTRA_FILE --connect-timeout=$TIMEOUT ${EXTRA_ARGS}" -else - MYSQL_CMDLINE="mysql --connect-timeout=$TIMEOUT ${EXTRA_ARGS}" -fi - -# Perform the query to check the wsrep_local_state -WSREP_STATUS=$($MYSQL_CMDLINE -e "SHOW STATUS LIKE 'wsrep_local_state';" 2>${ERR_FILE} | tail -1 | awk '{print $2;}' 2>>${ERR_FILE}) -if [[ "${WSREP_STATUS}" == "4" ]] || [[ "${WSREP_STATUS}" == "2" && ${AVAILABLE_WHEN_DONOR} == 1 ]]; then - # Check only when set to 0 to avoid latency in response. - if [[ $AVAILABLE_WHEN_READONLY -eq 0 ]]; then - READ_ONLY=$($MYSQL_CMDLINE -e "SHOW GLOBAL VARIABLES LIKE 'read_only';" 2>${ERR_FILE} | tail -1 | awk '{print $2;}' 2>>${ERR_FILE}) - if [[ "${READ_ONLY}" == "ON" ]]; then - # Percona XtraDB Cluster node local state is 'Synced', but it is in - # read-only mode. The variable AVAILABLE_WHEN_READONLY is set to 0. - echo -en "HTTP/1.1 503 Service Unavailable\r\n" - echo -en "Content-Type: text/plain\r\n" - echo -en "Connection: close\r\n" - echo -en "Content-Length: 43\r\n" - echo -en "\r\n" - echo -en "Percona XtraDB Cluster Node is read-only.\r\n" - sleep 0.1 - exit 1 - fi - fi - # Percona XtraDB Cluster node local state is 'Synced' - echo -en "HTTP/1.1 200 OK\r\n" - echo -en "Content-Type: text/plain\r\n" - echo -en "Connection: close\r\n" - echo -en "Content-Length: 40\r\n" - echo -en "\r\n" - echo -en "Percona XtraDB Cluster Node is synced.\r\n" - sleep 0.1 - exit 0 -else - # Percona XtraDB Cluster node local state is not 'Synced' - echo -en "HTTP/1.1 503 Service Unavailable\r\n" - echo -en "Content-Type: text/plain\r\n" - echo -en "Connection: close\r\n" - echo -en "Content-Length: 44\r\n" - echo -en "\r\n" - echo -en "Percona XtraDB Cluster Node is not synced.\r\n" - sleep 0.1 - exit 1 -fi |
