Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Desc: Collectd's plugin script
- # Calls check_nt nagios plugin and parse it's output with
- # userdefine `perl -lape' program... and submit the parsed output
- # with echo "PUTVAL @HOSTNAME@/@PLUGIN@/@INSTANCE@ INTERVAL=$INTERVAL N:$OUTPUT
- # @XXX@ are command line arguments
- # $XXX are values computed at run time
- LOGFILE=/dev/null
- log() {
- echo $(date) $* >> $LOGFILE
- }
- log "Called as $0 $*"
- PERL=/usr/bin/perl
- HOSTNAME=$1
- shift
- PLUGIN_NAME=$1
- shift
- INSTANCE=$1
- shift
- HOSTADDR=$1
- shift
- PORT=$1
- shift
- VARIABLE=$1
- shift
- PERL_REGEX_PROGRAM=$1
- shift
- PLUGINS_DIR=/usr/lib/nagios/plugins
- INTERVAL=10
- usage() {
- echo "$0: <HOSTNAME> <PLUGIN_NAME> <INSTANCE> <HOSTADDR> <PORT> <VARIABLE> <PERL_REGEX_PROGRAM> <ARGUMENTS TO BE PASSED DO check_nt AS \$*>"
- }
- get_output() {
- OUTPUT=$($PLUGINS_DIR/check_nt -H $HOSTADDR -p $PORT -v $VARIABLE $*)
- log "get_output returns: $OUTPUT"
- echo "$OUTPUT"
- }
- parse_output() {
- OUTPUT=$(get_output $*)
- PARSED_OUTPUT=$(echo $OUTPUT | $PERL -lape "$PERL_REGEX_PROGRAM")
- log "parse_output with \"$PERL_REGEX_PROGRAM\" returns: \"$PARSED_OUTPUT\""
- if test -z $PARSED_OUTPUT; then
- echo "Can't parse output \"$OUTPUT\" with \"$PERL_REGEX_PROGRAM\""
- log "Can't parse output \"$OUTPUT\" with \"$PERL_REGEX_PROGRAM\""
- exit 1
- fi
- echo $PARSED_OUTPUT
- }
- if test -z "$HOSTNAME" -o -z "$HOSTADDR" -o -z "$PORT" -o \
- -z "$PLUGIN_NAME" -o -z "$VARIABLE" -o -z "$PERL_REGEX_PROGRAM"; then
- usage
- exit 0
- fi
- while :; do
- VALUE=$(parse_output $*)
- SUBMIT="PUTVAL \"$HOSTNAME/$PLUGIN_NAME/$INSTANCE\" interval=$INTERVAL N:$VALUE"
- log "Submitting: $SUBMIT"
- echo $SUBMIT
- sleep $INTERVAL
- done
- exit 1 # This should never happen
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement