Skip to content
Snippets Groups Projects
Commit 6fef98aa authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

couch db check "up" - WIP

parent 89868bfb
No related branches found
No related tags found
1 merge request!147couch db check "up" - WIP
#!/bin/bash
# ======================================================================
#
# Icinga/ Nagios Check
# COUCHDB
#
# ----------------------------------------------------------------------
#
# REQUIREMENTS:
# - curl
#
# SYNTAX:
# - check_couchdb [-h] [-t FILE] -m MODE
#
# ----------------------------------------------------------------------
# 2023-08-28 v0.1 <axel.hahn@unibe.ch>
# ======================================================================
. $(dirname $0)/inc_pluginfunctions
export self_APPVERSION=0.1
function showHelp(){
local _self; _self=$(basename $0)
cat <<EOF
$( ph.showImlHelpHeader )
Show couchdb status.
SYNTAX:
$_self [-h] [-t FILE] -m MODE
OPTIONS:
-h or --help show this help.
-m MODE test a value; for debugging purposes
-t FILE take couchdb auth from Telegraph config
add file like /etc/telegraf/telegraf.conf
EXAMPLE:
$_self -m up
Check if couchdb is up and running
EOF
}
# --- check param -h
case "$1" in
"--help"|"-h")
showHelp
exit 0
;;
*)
esac
sTelegraph=$(ph.getValueWithParam "" "t" "$@")
sMode=$(ph.getValueWithParam '' "m" "$@")
if [ -n "$sTelegraph" ]; then
if [ ! -r "${sTelegraph}" ]; then
echo "ERROR: Telegraph config file [${sTelegraph}] cannot be read."
showHelp
ph.abort
fi
_user=$( grep "basic_username = " "${sTelegraph}" | cut -f 2 -d '"' )
_pw=$( grep "basic_password = " "${sTelegraph}" | cut -f 2 -d '"' )
export COUCH_URL=http://${_user}:${_pw}@localhost:5984
fi
if [ -z "$COUCH_URL" ]; then
echo "ERROR: I have no couchdb url + autentication yet."
echo "Maybe you need to add -t /etc/telegraf/telegraf.conf."
ph.abort
fi
case "${sMode}" in
"up")
response=$( curl -s "${COUCH_URL}/_up" )
_status=$( jq '.status' <<< "${response}" | tr -d '"')
if ! echo "$_status" | grep "ok" >/dev/null; then
ph.setStatus critical
fi
ph.status "Couchdb status (value in /_up is '$_status')"
echo "Reponse: "; echo "${response}" | jq
_status=$( jq '.status' <<< "${response}" | tr -d '"')
;;
*)
echo "ERRROR: [${sMode}] is an INVALID mode"
showHelp
ph.abort
esac
ph.exit
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment