Added --raw option to nlog

dev
Eric Loyd 1 year ago
parent d6be03b24b
commit fdb5169852

19
nlog

@ -16,6 +16,7 @@ host=""
service="" service=""
state="" state=""
severity="" severity=""
raw=""
num="" num=""
# These two need to be regexp wildcards to match everything when nothing is specified # These two need to be regexp wildcards to match everything when nothing is specified
aSource="(HOST|SERVICE)" aSource="(HOST|SERVICE)"
@ -49,6 +50,7 @@ Usage:
--notime don't convert timestamp to human time --notime don't convert timestamp to human time
-c|--constant) the equivalent of a tail -f on the Nagios log file -c|--constant) the equivalent of a tail -f on the Nagios log file
--file <file[s]>) scan <file[s]> instead of $files; use "..." if wildcards --file <file[s]>) scan <file[s]> instead of $files; use "..." if wildcards
--raw Just print the raw file but convert time stamps to human readable form
-v turn on verbose/debug mode -v turn on verbose/debug mode
All input is evaluated as a case-insensitive regexp surrounded by wildcards. All input is evaluated as a case-insensitive regexp surrounded by wildcards.
@ -80,6 +82,7 @@ while [ -n "$1" ]; do
--crit|--critical) state="CRITICAL"; shift 1;; --crit|--critical) state="CRITICAL"; shift 1;;
--hard) severity="HARD"; shift 1;; --hard) severity="HARD"; shift 1;;
--soft) severity="SOFT"; shift 1;; --soft) severity="SOFT"; shift 1;;
--raw) raw="true"; shift 1;;
--sev|--severity) severity="$2"; shift 2;; --sev|--severity) severity="$2"; shift 2;;
-Q) severity="HARD"; state="CRITICAL"; shift 1;; -Q) severity="HARD"; state="CRITICAL"; shift 1;;
-n|--num) num="$2"; shift 2;; -n|--num) num="$2"; shift 2;;
@ -116,9 +119,11 @@ fi
timeSub="" timeSub=""
[ -z "$noTime" ] && timeSub="&& sub (/^\[[0-9]{10}]/, strftime (\"%Y-%m-%d %H:%M:%S\", substr (\$1, 2, 10)), \$1)" [ -z "$noTime" ] && timeSub="&& sub (/^\[[0-9]{10}]/, strftime (\"%Y-%m-%d %H:%M:%S\", substr (\$1, 2, 10)), \$1)"
awkString="/^\[[0-9]{10}] (GLOBAL |CURRENT )?$aSource (DOWNTIME |FLAPPING )?$aType: .*$host.*$service/"
[ -n "$raw" ] && awkString="/./"
do_debug "host=$host" do_debug "host=$host"
do_debug "service=$service" do_debug "service=$service"
do_debug "awk=^\[[0-9]{10}] (GLOBAL |CURRENT )?$aSource (DOWNTIME |FLAPPING )?$aType: .*$host.*$service" do_debug "awk=$awkString"
do_debug "state=$state" do_debug "state=$state"
do_debug "severity=$severity" do_debug "severity=$severity"
do_debug "num=$num" do_debug "num=$num"
@ -128,9 +133,18 @@ do_debug "num=$num"
# $(NF-2) = HARD/SOFT # $(NF-2) = HARD/SOFT
# $(NF-3) = UP/DOWN/UNREACHABLE/OK/WARNING/CRITICAL/etc # $(NF-3) = UP/DOWN/UNREACHABLE/OK/WARNING/CRITICAL/etc
if [ -n "$raw" ]; then
tail -n +1 $tailMode $files | gawk -F\; "\
$awkString \
$timeSel \
$timeSub \
{
print
}"
else
tail -n +1 $tailMode $files | gawk -F\; "\ tail -n +1 $tailMode $files | gawk -F\; "\
BEGIN {IGNORECASE=1} \ BEGIN {IGNORECASE=1} \
/^\[[0-9]{10}] (GLOBAL |CURRENT )?$aSource (DOWNTIME |FLAPPING )?$aType: .*$host.*$service/ \ $awkString \
&& \$(NF-3)~/$state/ \ && \$(NF-3)~/$state/ \
&& \$(NF-2)~/$severity/ \ && \$(NF-2)~/$severity/ \
&& \$(NF-1)~/$num/ \ && \$(NF-1)~/$num/ \
@ -147,3 +161,4 @@ tail -n +1 $tailMode $files | gawk -F\; "\
sub(/SOFT/, \"\x1b[36mSOFT\x1b[0m\", \$(NF-2)) sub(/SOFT/, \"\x1b[36mSOFT\x1b[0m\", \$(NF-2))
printf \"%s: %s;%s;%s;%s;%s\n\", \$1, \$2, \$3, \$4, \$5, \$6 printf \"%s: %s;%s;%s;%s;%s\n\", \$1, \$2, \$3, \$4, \$5, \$6
}" }"
fi

Loading…
Cancel
Save