57 lines
1.9 KiB
Plaintext
57 lines
1.9 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
#It is a changed version of the original https://github.com/fridim/nagios-plugin-check_galera_cluster/blob/master/check_galera_cluster
|
||
|
|
||
|
ST_OK=0
|
||
|
ST_WA=1
|
||
|
ST_CR=2
|
||
|
ST_UK=3
|
||
|
|
||
|
PROGNAME=`basename $0`
|
||
|
|
||
|
print_help() {
|
||
|
echo "It is a monitoring plugin to monitor ProxySQL hosts."
|
||
|
echo ""
|
||
|
echo "It does not take any parameter"
|
||
|
exit ${ST_UK}
|
||
|
}
|
||
|
|
||
|
while getopts “h” OPTION; do
|
||
|
case $OPTION in
|
||
|
h)
|
||
|
print_help
|
||
|
exit ${ST_UK}
|
||
|
;;
|
||
|
?)
|
||
|
echo "Unknown argument: $1"
|
||
|
print_help
|
||
|
exit ${ST_UK}
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
|
||
|
/usr/bin/docker exec <%= @proxysql_container_name %> mysql -B -N -e '\s;' >/dev/null 2>&1 || {
|
||
|
echo "CRITICAL: mysql connection check failed"
|
||
|
exit ${ST_CR}
|
||
|
}
|
||
|
|
||
|
mysql_server_status=$(/usr/bin/docker exec <%= @proxysql_container_name %> mysql -B -N -e "select count(distinct hostname) from main.runtime_mysql_servers where status='ONLINE' and hostgroup_id != 9999")
|
||
|
mysql_writer_status=$(/usr/bin/docker exec <%= @proxysql_container_name %> mysql -B -N -e "select count(*) FROM main.runtime_mysql_servers where status = 'ONLINE' and hostgroup_id = 10")
|
||
|
mysql_reader_status=$(/usr/bin/docker exec <%= @proxysql_container_name %> mysql -B -N -e "select count(*) FROM main.runtime_mysql_servers where status = 'ONLINE' and hostgroup_id = 30")
|
||
|
|
||
|
exit_status=${ST_UK}
|
||
|
output="UNKNOWN"
|
||
|
if [[ ${mysql_server_status} -eq 3 ]] && [[ ${mysql_writer_status} -eq 1 ]] && [[ ${mysql_reader_status} -gt 0 ]]; then
|
||
|
exit_status=${ST_OK}
|
||
|
output="OK"
|
||
|
elif [[ ${mysql_server_status} -lt 3 ]] && [[ ${mysql_writer_status} -eq 1 ]] && [[ ${mysql_reader_status} -gt 0 ]]; then
|
||
|
exit_status=${ST_WA}
|
||
|
output="WARNING"
|
||
|
else
|
||
|
exit_status=${ST_CR}
|
||
|
output="CRITICAL"
|
||
|
fi
|
||
|
echo "${output}: number of servers online: ${mysql_server_status}, writers: ${mysql_writer_status}, readers: ${mysql_reader_status}|total=${mysql_server_status};2;1;0;3 writers=${mysql_writer_status};@1:1;@1:1;0;1 readers=${mysql_reader_status};1;0;0;3;"
|
||
|
exit ${exit_status}
|