diff --git a/sources/bin/check_health.sh b/sources/bin/check_health.sh index cf0054f..a0a7a68 100644 --- a/sources/bin/check_health.sh +++ b/sources/bin/check_health.sh @@ -37,7 +37,7 @@ # ------------------------- CONFIGURATION starts here ------------------------- # define the version (YYYY-MM-DD) -typeset -r SCRIPT_VERSION="2018-05-29" +typeset -r SCRIPT_VERSION="2018-07-12" # location of parent directory containing KSH functions/HC plugins typeset -r FPATH_PARENT="/opt/hc/lib" # location of custom HC configuration files @@ -115,6 +115,7 @@ typeset ARG_LAST=0 # report last events typeset ARG_LIST="" # list all by default typeset ARG_LOCK=1 # lock for concurrent script executions is on by default typeset ARG_LOG=1 # logging is on by default +typeset ARG_LOG_HEALTHY=0 # logging of healthy health checks is off by default typeset ARG_MONITOR=1 # killing long running HC processes is on by default typeset ARG_NOTIFY="" # notification of problems is off by default typeset ARG_REVERSE=0 # show report in reverse date order is off by default @@ -414,7 +415,12 @@ then exit 1 fi fi - +# --log-healthy +if (( ARG_LOG_HEALTHY > 0 && ARG_ACTION != 4 )) +then + print -u2 "ERROR: you can only use '--log-healthy' in combination with '--run'" + exit 1 +fi # check log location if (( ARG_LOG != 0 )) then @@ -514,7 +520,7 @@ Execute/report simple health checks (HC) on UNIX hosts. Syntax: ${SCRIPT_DIR}/${SCRIPT_NAME} [--help] | [--help-terse] | [--version] | [--list=] | [--list-core] | [--fix-symlinks] | [--show-stats] | (--disable-all | enable-all) | [--fix-logs [--with-history]] | (--check-host | ((--archive | --check | --enable | --disable | --run [--timeout=] | --show) --hc= [--config-file=] [hc-args="])) - [--display=] ([--debug] [--debug-level=]) [--no-monitor] [--no-log] [--no-lock] [--flip-rc] + [--display=] ([--debug] [--debug-level=]) [--log-healthy] [--no-monitor] [--no-log] [--no-lock] [--flip-rc] [--notify=] [--mail-to=] [--sms-to= --sms-provider=] [--report= ( ([--last] | [--today]) | ([--reverse] [--id= [--detail]] [--with-history]) ) ] @@ -553,6 +559,8 @@ Parameters: - whether the HC plugin requires a configuration file in ${HC_ETC_DIR} - whether the HC plugin is scheduled by cron --list-core : show the available core plugins (mail,SMS,...) +--log-healthy : log/show also passed health checks. By default this is off when the plugin support this feature. + (can be overridden by --no-log to disable all logging) --mail-to : list of e-mail address(es) to which an e-mail alert will be send to [requires mail core plugin] --no-lock : disable locking to allow concurrent script executions --no-log : do not log any messages to the script log file or health check results. @@ -873,6 +881,9 @@ do list_core exit 0 ;; + -log-healthy|--log-healthy) + ARG_LOG_HEALTHY=1 + ;; -mail-to=*) ARG_MAIL_TO="${CMD_PARAMETER#-mail-to=}" ;; diff --git a/sources/lib/core/include_core.sh b/sources/lib/core/include_core.sh index ea31ccf..01f6229 100644 --- a/sources/lib/core/include_core.sh +++ b/sources/lib/core/include_core.sh @@ -1477,7 +1477,7 @@ do FCONFIG="Yes" if [[ -r ${CONFIG_DIR}/${FNAME#function *}.conf ]] then - # check for log_healthy parameter + # check for log_healthy parameter (config file) HAS_FHEALTHY=$(_CONFIG_FILE="${CONFIG_DIR}/${FNAME#function *}.conf" data_get_lvalue_from_config 'log_healthy') case "${HAS_FHEALTHY}" in no|NO|No) @@ -1487,15 +1487,19 @@ do FHEALTHY="Yes" ;; *) - FHEALTHY="N/A" + FHEALTHY="N/S" ;; esac else - FHEALTHY="N/A" + FHEALTHY="N/S" fi + # check for log_healthy support through --hc-args (plugin) + elif (( $(grep -c -E -e "_LOG_HEALTHY" "${FFILE}" 2>/dev/null) > 0 )) + then + FHEALTHY="Yes" else FCONFIG="No" - FHEALTHY="N/A" + FHEALTHY="N/S" fi # check state DISABLE_FFILE="$(print ${FFILE##*/} | sed 's/\.sh$//')" @@ -1559,9 +1563,9 @@ fi if [[ "${FACTION}" != "list" ]] then print - print "Config?: plugin has a default configuration files (Yes/No)" + print "Config?: plugin has a default configuration file (Yes/No)" print "Sched? : plugin is scheduled through cron (Yes/No)" - print "H+? : plugin will log/show passed health checks too (Yes/No/Not applicable)" + print "H+? : plugin can log/show passed health checks (Yes/No/Not supported)" fi return 0 @@ -1801,4 +1805,4 @@ return 0 #****************************************************************************** # END of script -#****************************************************************************** +#****************************************************************************** \ No newline at end of file diff --git a/sources/lib/platform/hp-ux/check_hpux_ovpa_status.sh b/sources/lib/platform/hp-ux/check_hpux_ovpa_status.sh index bc728b0..f10ff6b 100644 --- a/sources/lib/platform/hp-ux/check_hpux_ovpa_status.sh +++ b/sources/lib/platform/hp-ux/check_hpux_ovpa_status.sh @@ -54,9 +54,6 @@ typeset _OVPA_DAEMONS="" for _ARG in ${_ARGS} do case "${_ARG}" in - log_healthy) - _LOG_HEALTHY=1 - ;; help) _show_usage $0 ${_VERSION} ${_CONFIG_FILE} && return 0 ;; @@ -64,6 +61,7 @@ do done # log_healthy +(( ARG_LOG_HEALTHY > 0 )) && _LOG_HEALTHY=1 if (( _LOG_HEALTHY > 0 )) then if (( ARG_LOG > 0 )) @@ -129,10 +127,11 @@ return 0 function _show_usage { cat <<- EOT -NAME : $1 -VERSION : $2 -CONFIG : $3 -PURPOSE : Checks the status of OVPA processes (OpenView Performance Agent) +NAME : $1 +VERSION : $2 +CONFIG : $3 +PURPOSE : Checks the status of OVPA processes (OpenView Performance Agent) +LOG HEALTHY : Supported EOT diff --git a/sources/lib/platform/linux/check_linux_process_limits.sh b/sources/lib/platform/linux/check_linux_process_limits.sh index 3b562ae..674a3ee 100644 --- a/sources/lib/platform/linux/check_linux_process_limits.sh +++ b/sources/lib/platform/linux/check_linux_process_limits.sh @@ -23,7 +23,7 @@ # # @(#) HISTORY: # @(#) 2018-07-10: original version [Patrick Van der Veken] -# @(#) 2018-07-11: better log_healthy handling [Patrick Van der Veken] +# @(#) 2018-07-12: better log_healthy handling [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -33,7 +33,7 @@ function check_linux_process_limits { # ------------------------- CONFIGURATION starts here ------------------------- typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2018-07-11" # YYYY-MM-DD +typeset _VERSION="2018-07-12" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -72,9 +72,6 @@ trap "rm -f ${_INSTANCE_RUN_FILE}.* >/dev/null 2>&1; return 1" 1 2 3 15 for _ARG in ${_ARGS} do case "${_ARG}" in - log_healthy) - _LOG_HEALTHY=1 - ;; help) _show_usage $0 ${_VERSION} ${_CONFIG_FILE} && return 0 ;; @@ -101,6 +98,7 @@ case "${_CFG_HEALTHY}" in esac # log_healthy +(( ARG_LOG_HEALTHY > 0 )) && _LOG_HEALTHY=1 if (( _LOG_HEALTHY > 0 )) then if (( ARG_LOG > 0 )) @@ -391,17 +389,18 @@ return 0 function _show_usage { cat <<- EOT -NAME : $1 -VERSION : $2 -CONFIG : $3 with: - log_healthy= - and formatted stanzas: - user:::: - process:::: -PURPOSE : Checks the value(s) of the process limits from /proc/*/limits or ulimit - Currenty following checks are supported: - * Max open files (/proc/*/limits) - * Max processes (ulimit) +NAME : $1 +VERSION : $2 +CONFIG : $3 with: + log_healthy= + and formatted stanzas: + user:::: + process:::: +PURPOSE : Checks the value(s) of the process limits from /proc/*/limits or ulimit + Currenty following checks are supported: + * Max open files (/proc/*/limits) + * Max processes (ulimit) +LOG HEALTHY : Supported EOT