Created
August 28, 2014 17:26
-
-
Save amusarra/c2bc0fc8e88354d7836d to your computer and use it in GitHub Desktop.
Check Informix (nagios-plugins 1.4)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
## | |
# Set Required evironment variable for IDS Informix 10 | |
# Add. 12/06/2008 Antonio Musarra <[email protected]> | |
## | |
INFORMIXDIR=/opt/IBM/informix | |
PATH=$PATH:$INFORMIXDIR/bin | |
ONCONFIG=onconfig.cormonet | |
INFORMIXSERVER=cormonet | |
INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts | |
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql | |
CLIENT_LOCALE=en_US.819 | |
DBDATE=DMY4 | |
PDQPRIORITY=25 | |
export INFORMIXDIR INFORMIXSQLHOSTS PATH ONCONFIG INFORMIXSERVER LD_LIBRARY_PATH DBDATE CLIENT_LOCALE PDQPRIORITY | |
# Definizione Stati di uscita | |
STATE_OK=0 | |
STATE_WARNING=1 | |
STATE_CRITICAL=2 | |
STATE_UNKNOWN=3 | |
VERSION="v1.0" | |
# Definizione dei comandi | |
IFX_ONSTAT=`onstat - | tr -d '\n'` | |
IFX_STATUS=`onstat - | cut -d ' ' -f 12 | tr -d '\n'` | |
IFX_MEMORY=`onstat - | cut -d ' ' -f 19 | tr -d '\n'` | |
## | |
# Funzione print_revision() | |
## | |
print_revision() { | |
echo "Check Informix (nagios-plugins 1.4) $VERSION" | |
echo "------------------------------------------------------" | |
echo "" | |
echo "The nagios plugins come with ABSOLUTELY NO WARRANTY." | |
echo "You may redistribute copies of the plugins under the " | |
echo "terms of the GNU General Public License." | |
echo "For more information about these matters,see the file " | |
echo "named COPYING." | |
} | |
## | |
# Funzione print_usage() | |
## | |
print_usage() { | |
echo "Check Informix by Antonio Musarra <[email protected]>" | |
echo "" | |
echo "See the follow examples:" | |
echo -e "\t Check status of Informix server [Initialization,Fast Recovery,Archive Backup,Read-Only,Unknown,Abort,On-Line,Single-User,Quiescent]:\n check_informix --component status" | |
echo -e "\t Check status SH Memory of Informix Server: check_informix -c 600000 -w 500000 --component shmemory" | |
echo "" | |
echo "Usage: check_informix -c <Critical Threshold> -w <Warning Threshold> --component <Component to check>" | |
echo "Usage: check_informix [-h] [--help]" | |
echo "Usage: check_informix [-V]" | |
} | |
## | |
# Funzione print_help() | |
## | |
print_help() { | |
echo "Check Informix by Antonio Musarra <[email protected]>" | |
echo "" | |
echo "See the follow examples:" | |
echo -e "\t Check status of Informix server [Initialization,Fast Recovery,Archive Backup,Read-Only,Unknown,Abort,On-Line,Single-User,Quiescent]:\n check_informix --component status" | |
echo -e "\t Check status SH Memory of Informix Server: check_informix -c 600000 -w 500000 --component shmemory" | |
echo "" | |
echo "Usage: check_informix -c <Critical Threshold> -w <Warning Threshold> --component <Component to check>" | |
echo "Usage: check_informix [-h] [--help]" | |
echo "Usage: check_informix [-V]" | |
} | |
## | |
# CONTROLLO PARAMETRI | |
## | |
while test -n "$1"; do | |
case "$1" in | |
--help) | |
print_help | |
exit $STATE_OK | |
;; | |
-h) | |
print_help | |
exit $STATE_OK | |
;; | |
-V) | |
print_revision | |
exit $STATE_OK | |
;; | |
-c) | |
CRITICAL_LEVEL=$2 | |
shift | |
;; | |
-w) | |
WARNING_LEVEL=$2 | |
shift | |
;; | |
--component) | |
COMPONENT=$2 | |
shift | |
;; | |
*) | |
echo "Unknown argument: $1" | |
print_usage | |
exit $STATE_UNKNOWN | |
;; | |
esac | |
shift | |
done | |
## | |
# Check Params | |
## | |
if [ -z $COMPONENT ]; then | |
echo "STATUS CRITICAL: Component to check not specified" | |
exit $STATE_CRITICAL | |
fi | |
if [[ "$COMPONENT" = "shmemory" ]] && [ -z $CRITICAL_LEVEL ]; then | |
echo "STATUS CRITICAL: Critical Threshold not specified" | |
exit $STATE_CRITICAL | |
fi | |
if [[ "$COMPONENT" = "shmemory" ]] && [ -z $WARNING_LEVEL ]; then | |
echo "STATUS CRITICAL: Warning Threshold not specified" | |
exit $STATE_CRITICAL | |
fi | |
## | |
# Check Status of Informix Server | |
## | |
if [[ "$COMPONENT" = "status" ]]; then | |
if [[ "$IFX_STATUS" = "On-Line" ]]; then | |
echo "STATUS OK: $IFX_ONSTAT" | |
exit $STATE_OK | |
fi | |
if [[ "$IFX_STATUS" = "Quiescent" ]] || [[ "$IFX_STATUS" = "Fast Recovery" ]] || [[ "$IFX_STATUS" = "Read-Only" ]] || [[ "$IFX_STATUS" = "Single-User" ]]; then | |
echo "STATUS WARNING: $IFX_ONSTAT" | |
exit $STATE_WARNING | |
fi | |
if [[ "$IFX_STATUS" = "Initialization" ]] || [[ "$IFX_STATUS" = "Abort" ]] || [[ "$IFX_STATUS" = "Unknown" ]] || [[ "$IFX_STATUS" = "" ]]; then | |
echo "STATUS CRITICAL: $IFX_ONSTAT" | |
exit $STATE_CRITICAL | |
fi | |
fi | |
## | |
# Check Shared Memory of Informix Server | |
## | |
if [[ "$COMPONENT" = "shmemory" ]]; then | |
if [[ ${IFX_MEMORY} < $CRITICAL_LEVEL ]]; then | |
if [[ ${IFX_MEMORY} < $WARNING_LEVEL ]]; then | |
echo "STATUS OK: $IFX_MEMORY" | |
exit $STATE_OK | |
else | |
echo "STATUS WARNING: $IFX_MEMORY" | |
exit $STATE_WARNING | |
fi | |
else | |
echo "STATUS CRITICAL: $IFX_MEMORY" | |
exit $STATE_CRITICAL | |
fi | |
fi | |
if [[ "$COMPONENT" != "status" ]] || [[ "$COMPONENT" != "shmemory" ]]; then | |
echo "STATUS CRITICAL: Value for --component are: status or shmemory" | |
exit $STATE_CRITICAL | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment