3 # NagCollect -- Nagios Data Collector for Passive Checks
4 # Copyright (c)2009 Alexander Barton, alex@barton.de
17 logger -t "$NAME" "$*"
22 function refreshTestScripts()
24 tmp=`mktemp /tmp/nagcollect.XXXXXX`
25 Msg "Downloading scripts from ${SERVER_URL} ..."
26 curl --insecure --fail --output "$tmp" --silent --max-time $MAXTIME \
27 "${SERVER_URL}/nagcollecttestscripts.tgz" ; r=$?
29 # Update local test scripts
30 Msg "Extracting scripts ..."
31 mkdir -p /usr/local/lib/nagcollect
32 tar xzf "$tmp" -C /usr/local/lib/nagcollect ; r=$?
38 function submitService()
40 curl --insecure --fail --output /dev/null --silent --max-time $MAXTIME \
41 --data-urlencode "key=$CLIENT_KEY" \
42 --data-urlencode "host=$CLIENT_ID" \
43 --data-urlencode "service=$1" \
44 --data-urlencode "status=$2" \
45 --data-urlencode "text=$3" \
46 "${SERVER_URL}/nagcollect.php" ; r=$?
50 [ -r "/usr/local/etc/nagcollect.conf" ] && . /usr/local/etc/nagcollect.conf
51 [ -r "/etc/nagcollect.conf" ] && . /etc/nagcollect.conf
53 [ -n "$SERVER_URL" -a -n "$CLIENT_KEY" -a -n "$CLIENT_ID" ] || \
54 Error "Configuration invalid, check SERVER_URL, CLIENT_KEY and CLIENT_ID variables!"
56 if [ "$AUTOUPDATE" = 1 ]; then
57 Msg "Updating local test scripts:"
58 refreshTestScripts || \
59 Error "Failed to refresh test scripts from \"$SERVER_URL\" ($?)!"
62 Msg "Running test scripts:"
65 /usr/local/lib/nagcollect/*.tst \
66 /usr/local/lib/nagcollect/`uname`/*.tst \
67 2>/dev/null | while read tst; do
68 [ -r "$tst" ] || continue
69 SERVICE=""; STATUS=""; TEXT=""
70 Msg "Checking \"$tst\" ..."
72 [ -n "$SERVICE" -a -n "$STATUS" ] || continue
73 submitService "$SERVICE" "$STATUS" "$TEXT"
74 Msg "RESULT: $SERVICE=$STATUS \"$TEXT\" ($?)"