From 9597e32b627f465f85ba89833393a57ba82f2914 Mon Sep 17 00:00:00 2001 From: Martin Berghaus Date: Wed, 26 Mar 2025 00:55:51 +0100 Subject: [PATCH] -p added and GENERIC_ZFSPOOL_USAGE_CHECK uses ssh --- script/monitor/checks/GENERIC_NGINX_CHECK.sh | 6 +- .../checks/GENERIC_ZFSPOOL_USAGE_CHECK.sh | 63 +++++++++++++------ 2 files changed, 47 insertions(+), 22 deletions(-) diff --git a/script/monitor/checks/GENERIC_NGINX_CHECK.sh b/script/monitor/checks/GENERIC_NGINX_CHECK.sh index ce08fc6..7c0e66a 100755 --- a/script/monitor/checks/GENERIC_NGINX_CHECK.sh +++ b/script/monitor/checks/GENERIC_NGINX_CHECK.sh @@ -26,10 +26,10 @@ function checkViaHTTPS() { } function checkOrStartSSHMaster() { - timeout --preserve-status 1 "ssh -O check -S ${_SOCKET} ${_REMOTE_USER}@${_REMOTE_HOST}" &> /dev/null \ + timeout --preserve-status 1 "ssh -O check -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST}" &> /dev/null \ && return 0 - ssh -O stop -S ${_SOCKET} ${_REMOTE_USER}@${_REMOTE_HOST} &> /dev/null + ssh -O stop -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST} &> /dev/null ssh -o ControlMaster=auto \ -o ControlPath=${_SOCKET} \ -o ControlPersist=65 \ @@ -51,7 +51,7 @@ function checkViaSSH() { checkOrStartSSHMaster \ || return 1 - _RESULT=$(ssh -S ${_SOCKET} ${_REMOTE_USER}@${_REMOTE_HOST} 'systemctl status nginx.service' | grep -E 'Active:.*\(running\)' | cut -d';' -f2) + _RESULT=$(ssh -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST} 'systemctl status nginx.service' | grep -E 'Active:.*\(running\)' | cut -d';' -f2) ! [ -z "${_RESULT}" ] && echo "INFO#UPTIME:${_RESULT}" || echo "FAIL" } diff --git a/script/monitor/checks/GENERIC_ZFSPOOL_USAGE_CHECK.sh b/script/monitor/checks/GENERIC_ZFSPOOL_USAGE_CHECK.sh index ba28b5b..db1461f 100755 --- a/script/monitor/checks/GENERIC_ZFSPOOL_USAGE_CHECK.sh +++ b/script/monitor/checks/GENERIC_ZFSPOOL_USAGE_CHECK.sh @@ -1,26 +1,51 @@ #!/bin/bash -SERVER="${1:?"FQDN of server missing"}" +_REMOTE_HOST="${1:?"FQDN of server missing"}" +_REMOTE_PORT="${2:-"22"}" +_REMOTE_USER="monitoring" +_SOCKET='~/.ssh/%r@%h:%p' -function testSpace(){ - local _RESULT=$(/sbin/zpool list -H -o capacity,name | /usr/bin/sort) - local _SPACE_USED=$(echo "${_RESULT}" | /usr/bin/tail -n 1 | /usr/bin/cut -f1) - local _POOL=$(echo "${_RESULT}" | /usr/bin/tail -n 1 | /usr/bin/cut -f2) +function checkOrStartSSHMaster() { + timeout --preserve-status 1 "ssh -O check -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST}" &> /dev/null \ + && echo "master checked" \ + && return 0 - [ -z "${_SPACE_USED}" ] \ - && echo "FAIL#NO value" \ - && return 0 + ssh -O stop -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST} &> /dev/null + ssh -o ControlMaster=auto \ + -o ControlPath=${_SOCKET} \ + -o ControlPersist=65 \ + -p ${_REMOTE_PORT} \ + -f ${_REMOTE_USER}@${_REMOTE_HOST} exit &> /dev/null \ + && return 0 - [ "${1:?"Missing OK_THRESHOLD"}" -ge "${_SPACE_USED%\%*}" ] \ - && echo "OK#${_SPACE_USED} used ${_POOL}." \ - && return 0 - - [ "${2:?"Missing INFO_THRESHOLD"}" -ge "${_SPACE_USED%\%*}" ] \ - && echo "INFO#${_SPACE_USED} already used ${_POOL}." \ - && return 0 - - echo "FAIL#${_SPACE_USED} used ${_POOL}!" - return 0 + echo "Fail: checkOrStartMaster()" + return 1 } -testSpace 80 90 +function testSpace(){ + checkOrStartSSHMaster \ + || return 1 + + local _RESULT="$(ssh -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST} 'zpool list -H -o capacity,name')" + local _SPACE_USED=$(echo "${_RESULT}" | /usr/bin/tail -n 1 | /usr/bin/cut -f1) + local _POOL=$(echo "${_RESULT}" | /usr/bin/tail -n 1 | /usr/bin/cut -f2) + + [ -z "${_SPACE_USED}" ] \ + && echo "FAIL#NO value" \ + && return 0 + + [ "${1:?"Missing OK_THRESHOLD"}" -ge "${_SPACE_USED%\%*}" ] \ + && echo "OK#${_SPACE_USED} used ${_POOL}." \ + && return 0 + + [ "${2:?"Missing INFO_THRESHOLD"}" -ge "${_SPACE_USED%\%*}" ] \ + && echo "INFO#${_SPACE_USED} already used ${_POOL}." \ + && return 0 + + echo "FAIL#${_SPACE_USED} used ${_POOL}!" + return 0 +} + +testSpace 80 90 && exit 0 + +exit 1