<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi,<br>
<br>
First off sorry for the lateness, but I've been home sick the last week
and been rather unproductive. <br>
Anyways here is a new version that has a few new features and a few new
fixes.<br>
<br>
Mainly;<br>
 * Improved thread safety in Core<br>
This *might* fix the crash that someone had.<br>
<br>
 + Added exception handling and logging in PDH code<br>
This should give better error messages in these parts (as opposed to
before when they silently failed).<br>
<br>
+ New module for check size of files/directories<br>
Hehe, bored last week I did a quick plug in to check the size of a
file, group of files, directory.<br>
<br>
 * Changed build to Dynamic link<br>
Someone said this was better, I'm skeptical. Mainly this means (for non
programmers) that there are now 3 DLLs distributed along with NSClient
(and the files are smaller).<br>
<br>
* Changed the default port to 12489.<br>
<br>
* Added a simple/rough/quick check_nscp client for *nix (so now you can
use the EventlogChecker that has been there for a while :)<br>
<br>
Now for the details.<br>
This build has an optional debug log "mode" that I would like everyone
that run into problems to enable.<br>
Edit NSC.ini and make sure this is not commented out: "debug=1". Also
if you run into problems feel free to send along the log (NSC.log). And
as usually you can run it with -test and use the console logger.<br>
<br>
Secondly the new CheckFileSize plug-in is used along the following
lines:<br>
CheckFileSize&<option>&<option><br>
where <option> one of the following:<br>
MaxWarn=<size gmkb><br>
MaxCrit=<size gmkb><br>
MinWarn=<size gmkb><br>
MinCrit=<size gmkb><br>
ShowAll<br>
File=<path><br>
File:<shortname>=<path><br>
<br>
<size gmkb> is a size with a possible modifier letter (such as G
for gigabyte, M for Megabyte, K for kilobyte etc)<br>
<br>
This means that
CheckFileSize&ShowAll&MaxWarn=1024M&MaxCrit=4096M&<a class="moz-txt-link-freetext" href="File:WIN=c:\WINDOWS\*.*">File:WIN=c:\WINDOWS\*.*</a><br>
Will check all files under c:\windows and using the short name WIN, and
warn if the size is above 1024megabytes and Critical if the size is
above 4096megabytes.<br>
On my computer this returns:<br>
WIN: 1G (2110962363B)|WIN:2110962363:1073741824:4294967296<br>
<br>
Known bugs:<br>
returned size are truncated to G for instance the above should have
been 1.96G not 1G.<br>
performance data only shows max warn and crit (not minimum)<br>
<br>
<br>
Thirdly:<br>
The Eventlog Checker<br>
<br>
CheckEventLog&<logfile>&<Query
string>&<Query string>...<br>
This is rather complex, and I think next update will be a web interface
for the SF page where I can start documenting these but a few simple
ideas on how it works:<br>
CheckEventLog&Application&warn.require.eventType=warnig&critical.require.eventType=error&truncate=1024&descriptions&all.exclude.eventSourceRege<br>
xp=^(Win|Msi|NSClient\+\+|Userenv|ASP\.NET|LoadPerf|Outlook|ApplicatioE|NSClient).*<br>
<br>
<i>Application<br>
</i>log file (options are System, Security and whatever you have in
your syslog)<br>
<i>warn.require.eventType=warnig<br>
</i>Means for an event to be considerd a warning it has to have event
type "warning" (options are information, error, etc)<br>
<i>critical.require.eventType=error<br>
</i>Means for an event to be considerd an error it has to have event
type "error.<br>
<i>truncate=1024<br>
</i>Truncate the response at 1024 chars (to prevent buffers from
overflowing)<br>
<i>descriptions<br>
</i>Means we show description for events.<br>
<i>all.exclude.eventSourceRegexp=^(Win|Msi|NSClient\+\+|Userenv|ASP\.NET|LoadPerf|Outlook|ApplicatioE|NSClient).*<br>
</i>This means we exclude (from all, as in warning and error) all event
sources matching this regular expression.<br>
<br>
A quick note on "warn.require.eventType" they all look
<type>.<action>.<key> where;<br>
type is: warn, error, all<br>
action is: require, exclude<br>
and key can be one of the following:<br>
eventType, eventSource, eventSourceRegexp, generatedBeforeDelta,
generatedAfterDelta, writtenBeforeDelta, writtenAfterDelta, regexp<br>
As I said this is rather complex and not easy, I will try to clear the
documentation up, and also look at similar projects to see how they do
things. This was just done so I could see if it was possible.<br>
<br>
<br>
Fourth:<br>
check_nscp is included under unix_client. This is a C client (hacked
version of check_nt) for unix that is more generic and should work to
send checks to NSClient++ (not regular NSClient), mainly I would use
this only to play with CheckEventLog and CheckFileSize.<br>
<br>
Usage: check_nscp -H host [-p port] -c command -s password [-t timeout]<br>
<br>
Options:<br>
-H, --hostname=HOST<br>
  Name of the host to check<br>
-p, --port=INTEGER<br>
  Optional port number (default: 12489)<br>
-s, --password <password><br>
  Password needed for the request<br>
-c, --command <command><br>
  Command to execute on remote node<br>
-t, --timeout=INTEGER<br>
  Seconds before connection attempt times out (default: 10)<br>
-h, --help<br>
  Print this help screen<br>
-V, --version<br>
  Print version information<br>
<br>
The -c <command> is they key, here you enter the *entire*
command, as oposed to check_nt that has other arguments. <br>
So -c
'CheckFileSize&ShowAll&MaxWarn=1024M&MaxCrit=4096M&<a class="moz-txt-link-freetext" href="File:WIN=c:\WINDOWS\*.*">File:WIN=c:\WINDOWS\*.*</a>'
will do the Checksize exaple from before.<br>
<br>
To compile this *I* did:<br>
gcc -I. -I.. -I../lib -I../intl -I/include -g -O2 -MT check_nscp.o -MD
-MP -c -o check_nscp.o check_nscp.c;<br>
gcc -g -O2  -L. -L/usr/lib -o check_nscp check_nscp.o netutils.o
utils.o ../lib/libnagiosplug.a ../lib/libcoreutils.a -lnsl -lresolv
-I/usr/include<br>
But that was because that was what check_nt did on my computer, so if
someone is good at making ./configure or make for *nix feel free to
help me out.<br>
<br>
Ohh, lastly: <a class="moz-txt-link-freetext" href="http://sourceforge.net/projects/nscplus/">http://sourceforge.net/projects/nscplus/</a> is where you will
find it :)<br>
<br>
<br>
Anyways now I'm off for bed...<br>
<br>
// Michael Medin<br>
<br>
</body>
</html>