Updates on the 0.4.x branch
Hello everyone!
I have been working quite hard on the 0.4.x branch this summer (instead of fixing bugs in the 0.3.x branch) and things are finally starting to look good.
Right now the following is implemented:
- Settings subsystem (old, ini and registry)
- New plugin API (which is based off google protocol buffers)
- New Settings client (for plugins, which is wicked cool)
- NRPE client/server (all based off boost::asio)
- NSCA client
- CheckDisk, CheckEventLog, CheckExternalScripts, CheckHelpers, CheckSystem have all been ported and works
- FileLogger have also been ported
- The new scheduler is working (still needs a better grouping support though)
What is currently missing is:
- LUAScript, CheckTaskSched, CheckWMI
- .net wrapper plugin
- NSClientListener (check_nt)
- SysTray (a lot of work is required here and probably wont make it into 0.4.0)
- The installer (probably a lot of work to handle upgrades and such)
- Improve the scheduler to handle groups and such.
So we are getting fairly close to a set of alfa builds (sans installer) and I hope to have most of the above done in a few weeks.
It would be interesting in the next few weeks to get some people interested in testing it out and helping me with migration issues and how you like the new stuff.
// Michael Medin
Answers...
Hello,
I have updated most questions and what not which has dropped in during summer so if I have missed your question please post a follow up so I can see what I have missed and I will get back ASAP.
One of the big reasons for the inactivity and the delay is that I got a baby girl last week so things have been rather hectic leading up to (and since).
Another reason is that I have migrated my VPS to another host which means installing mail and what not all over again...
And yet another reason is the warm weather and nice summer which sometimes keeps me from spending time in front of my computer :P
// Michael Medin
Vacation mode!
Just a heads up: It is now 30+ degrees (centigrades) in Sweden so I am (and have been for the past week) in vacation mode which means I update things rather less frequently then i normally do.
If something is urgent drop me an email at michael <AT> medin <DOT> name (mention NSClient++ in the subject) and I will try to deal with it "slightly more" then elsewhere. I will hopefully try to work off the backlog every other week or so so not to seldom...
// Michael Medin
Lufthansa apparently is the worst airline, shall I change my license to reflect that?
Hello,
I have a question for you (the general public, the community, the...)
Would it be considered bad/immature/evil/* to add a clause to the license for the binaries which denies for instance Lufthansa to use NSClient++? This would not change the source code (which would still be OSS) but it would restrict them from using the binaries I provide.
The reason in short is they f*cked me right up the *ss when I was flying with them last week (ended up getting home one day later paying over 300 euro extra). Then in addition to this their "customer support" where extremely unfriendly and unhelpful. In essence they told "ohh... your life sucks, go buy a new one, I don't really care..."
And I am thinking (since I have hits from them) they are essentially using my program for free yet they care nothing for me when I am their customer?
So this is one of those questions, shall I give freely to someone who only takes from me?
// Michael Medin
0.3.8 Released!
Hello google bot! (and some happy weeks even the yahoo bot).
I have just released 0.3.8 version. It has a lot of new features and, I am especially, proud of the new event log filters. I will try to see if I can propagate it out to sourceforge and nagios forge during the weekend unfortunately I did not have time this morning...
For those who has not seen the eventlog filter I recommend reading up on the quick guide i wrote on the CheckEventLog/CheckEventLog page. It has a fairly good getting started guide I hope. But a quick note is that the new default filter is:
generated > -2d AND severity NOT IN ('success', 'informational')
Which I believe is a lot more readable the before.
Other news are many minor changes and fixes in the file7disk related checks as well as index in CheckCounter to allow handling multiple languages and locales.
The changelog grouped by module can be found here:
New commands - CheckSingleFile - to check spects of a single file use like so: CheckSingleFile file=d:\nrpe_512.pem warn=>100 check=line-count warn=>100 crit=>170 check=size - CheckSingleRegEntry CheckSingleRegEntry path=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MaxSize "syntax=%path%: %int%" warn==20971520 crit==20971520 check=int ShowAll=long Scripts - Cleaned up scripts folder - Added new "NagiosPlugin library" from op5 - Added check_no_rdp.vbs (Checks that no RDP connection is online) - Added check_battery.vbs which checks batterys via WMI - Added check_printer.vbs to check printers via WMI CheckExternalScript - Added new "script templating" thing to simplify adding scripts: [Wrapped Scripts] test=check_test.ps1 ; (will use correct template for running ps1 commands) - Fixed erroneous error message "Failed to peek buffer" NSCA - Added obfuscated_password to NSCA section - Added so "global" ([Settings] password=...) passwords are read from the NSCA module CheckEventLog - Brand new filter syntax based on SQL where clauses Avalible operators are: =, !=, >, <, >=, <=, eq, ne, gt, lt, ge, le, OR, AND, like, IN, NOT IN CheckCounter - Added new index option to CheckCounter to allow looking up index and thus you can use the same checks on multiple locales and also use characters not present in "NRPE charset) CheckCounter index "Counter=\1450(_Total)\1458" ShowAll MaxWarn=500 MaxCrit=1000 nsclient++ -noboot CheckSystem pdhlookup Utskrifter - Optional new "safe" PDH subsystem (slower, but possibly safer) pdh_subsystem=thread-safe - Added checks for missing counters to CheckCounter CheckDriveSize - Added volume support for CheckDriveSize (CHeckAll) like so: CheckDriveSize MinWarn=50% MinCrit=25% CheckAll=volumes FilterType=FIXED FilterType=REMOTE - Changed "missing" disks are now a critical error and not unknown - Improved CheckDriveSize bad FilterType error message - Added option to return error messages to the client [CheckDisk] show_errors=1 (defauilt is off 0) CheckFile2 - Dates are signed (means you can use neagitve dates to check the future) CheckFile2 debug path=D:\tmp\dates filter+creation=<-30m MaxWarn=1 MaxCrit=1 "syntax=%filename%: %creation%" CRITICAL:future.txt: C: Thursday, December 31, 2009 12:47:11, found files: 1 > critical|'found files'=1;1;1; - Added checks for missing path and missing filter on CheckFile2 thus - Fixed so files locked for reading can be checked (basic checks) - Improved speed of file chyecking (does not check file data twice) - Changed so missing files and such generate an error - Fixed major issue with date matching in CheckFile* which was not working at all. - Exe file version checks: CheckFile2 path=D:\tmp pattern=*.exe filter+version=!=6.0.2900.5512 "syntax=%filename%: %version%" MaxWarn=1 - Line count check: CheckFile2 path=D:\tmp pattern=*.txt filter+line-count=ne:3 "syntax=%filename%: %line-count%" MaxWarn=1 - Added ignore-errors to "ignore" any filesystem related errors (NOTICE this is probably not what you want) - Added master-syntax to CheckFile2 to change the overall message like so: %list%, %files%, %matches% CheckFile2 MinWarn=10 MinCrit=10 path=D:\WINDOWS\system32 filter+size=gt:0 truncate=10 ignore-errors "master-syntax=%matches%/%files%" - Added %user% to syntax to print user who generated message CheckEventLog file=application file=system filter=new filter=out MaxWarn=1 MaxCrit=1 filter-generated=>2w filter-severity==success filter-severity==informational truncate=1023 unique descriptions "syntax=%user% (%count%)" CRITICAL: (1), (2), NT INSTANS\SYSTEM (3), NT INSTANS\SYSTEM (3), NT INSTANS\SYSTEM (3), missing (3), missing (5), (4), missing (2), missing (2), missing (2), missing (2), (1), eventlog: 33 > critical|'eventlog'=33;1;1; Generic: - Added != to all string comparisons - Changes syntax of performance counters: Alias is '<alias> %' and it also has the "full" non % data as '<alias>' CheckDriveSize CheckAll MaxWarnUsed=80% MaxCritUsed=90% CRITICAL:CRITICAL: C:\: Total: 146G - Used: 140G (95%) - Free: 6.31G (5%) > critical, D:\: Total: 152G - Used: 148G (97%) - Free: 3.59G (3%) > critical|'C:\ %'=95%;80;90; 'C:\'=140.17G;117.18;131.83;0;146.48; 'D:\ %'=97%;80;90; 'D:\'=147.93G;121.21;136.3;0;151.52; - Added warning message ewhen numerical filters evaluate to zero (and are not 0) - added a new "option" in conjunction with -c you can now do -m to specify the module to load. nsclient++ -m CheckDisk.dll -c CheckDriveSize MaxWarn=100 CheckAll
Please try it and let me know, if nothing major pops up I will release 0.3.8 tomorrow.
// Michael Medin
New (and final) Release Candidate for 0.3.8!
Hello google bot! (and some happy weeks even the yahoo bot).
I have just released the final (I hope) release candidate for the 0.3.8 version. It has a lot of new features and, I am especially, proud of the new event log filters.
For those who has not seen the eventlog filter I recommend reading up on the quick guide i wrote on the CheckEventLog/CheckEventLog page. It has a fairly good getting started guide I hope. But a quick note is that the new default filter is:
generated > -2d AND severity NOT IN ('success', 'informational')
Which I believe is a lot more readable the before.
Other news are many minor changes and fixes in the file7disk related checks as well as index in CheckCounter to allow handling multiple languages and locales.
The changelog grouped by module can be found here:
New commands - CheckSingleFile - to check spects of a single file use like so: CheckSingleFile file=d:\nrpe_512.pem warn=>100 check=line-count warn=>100 crit=>170 check=size - CheckSingleRegEntry CheckSingleRegEntry path=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MaxSize "syntax=%path%: %int%" warn==20971520 crit==20971520 check=int ShowAll=long Scripts - Cleaned up scripts folder - Added new "NagiosPlugin library" from op5 - Added check_no_rdp.vbs (Checks that no RDP connection is online) - Added check_battery.vbs which checks batterys via WMI - Added check_printer.vbs to check printers via WMI CheckExternalScript - Added new "script templating" thing to simplify adding scripts: [Wrapped Scripts] test=check_test.ps1 ; (will use correct template for running ps1 commands) - Fixed erroneous error message "Failed to peek buffer" NSCA - Added obfuscated_password to NSCA section - Added so "global" ([Settings] password=...) passwords are read from the NSCA module CheckEventLog - Brand new filter syntax based on SQL where clauses Avalible operators are: =, !=, >, <, >=, <=, eq, ne, gt, lt, ge, le, OR, AND, like, IN, NOT IN CheckCounter - Added new index option to CheckCounter to allow looking up index and thus you can use the same checks on multiple locales and also use characters not present in "NRPE charset) CheckCounter index "Counter=\1450(_Total)\1458" ShowAll MaxWarn=500 MaxCrit=1000 nsclient++ -noboot CheckSystem pdhlookup Utskrifter - Optional new "safe" PDH subsystem (slower, but possibly safer) pdh_subsystem=thread-safe - Added checks for missing counters to CheckCounter CheckDriveSize - Added volume support for CheckDriveSize (CHeckAll) like so: CheckDriveSize MinWarn=50% MinCrit=25% CheckAll=volumes FilterType=FIXED FilterType=REMOTE - Changed "missing" disks are now a critical error and not unknown - Improved CheckDriveSize bad FilterType error message - Added option to return error messages to the client [CheckDisk] show_errors=1 (defauilt is off 0) CheckFile2 - Dates are signed (means you can use neagitve dates to check the future) CheckFile2 debug path=D:\tmp\dates filter+creation=<-30m MaxWarn=1 MaxCrit=1 "syntax=%filename%: %creation%" CRITICAL:future.txt: C: Thursday, December 31, 2009 12:47:11, found files: 1 > critical|'found files'=1;1;1; - Added checks for missing path and missing filter on CheckFile2 thus - Fixed so files locked for reading can be checked (basic checks) - Improved speed of file chyecking (does not check file data twice) - Changed so missing files and such generate an error - Fixed major issue with date matching in CheckFile* which was not working at all. - Exe file version checks: CheckFile2 path=D:\tmp pattern=*.exe filter+version=!=6.0.2900.5512 "syntax=%filename%: %version%" MaxWarn=1 - Line count check: CheckFile2 path=D:\tmp pattern=*.txt filter+line-count=ne:3 "syntax=%filename%: %line-count%" MaxWarn=1 - Added ignore-errors to "ignore" any filesystem related errors (NOTICE this is probably not what you want) - Added master-syntax to CheckFile2 to change the overall message like so: %list%, %files%, %matches% CheckFile2 MinWarn=10 MinCrit=10 path=D:\WINDOWS\system32 filter+size=gt:0 truncate=10 ignore-errors "master-syntax=%matches%/%files%" - Added %user% to syntax to print user who generated message CheckEventLog file=application file=system filter=new filter=out MaxWarn=1 MaxCrit=1 filter-generated=>2w filter-severity==success filter-severity==informational truncate=1023 unique descriptions "syntax=%user% (%count%)" CRITICAL: (1), (2), NT INSTANS\SYSTEM (3), NT INSTANS\SYSTEM (3), NT INSTANS\SYSTEM (3), missing (3), missing (5), (4), missing (2), missing (2), missing (2), missing (2), (1), eventlog: 33 > critical|'eventlog'=33;1;1; Generic: - Added != to all string comparisons - Changes syntax of performance counters: Alias is '<alias> %' and it also has the "full" non % data as '<alias>' CheckDriveSize CheckAll MaxWarnUsed=80% MaxCritUsed=90% CRITICAL:CRITICAL: C:\: Total: 146G - Used: 140G (95%) - Free: 6.31G (5%) > critical, D:\: Total: 152G - Used: 148G (97%) - Free: 3.59G (3%) > critical|'C:\ %'=95%;80;90; 'C:\'=140.17G;117.18;131.83;0;146.48; 'D:\ %'=97%;80;90; 'D:\'=147.93G;121.21;136.3;0;151.52; - Added warning message ewhen numerical filters evaluate to zero (and are not 0) - added a new "option" in conjunction with -c you can now do -m to specify the module to load. nsclient++ -m CheckDisk.dll -c CheckDriveSize MaxWarn=100 CheckAll
Please try it and let me know, if nothing major pops up I will release 0.3.8 tomorrow.
// Michael Medin
Away for a bit
I'll be in Cologne/Marl? in Germany for a few days so wont be able to reply much...
// Michael Medin
First RC for 0.3.8
Hello everyone.
Time for a RC:s for the up-coming 0.3.8 so please try it out and let me know. I will try to post a note later on with the cumulative updates but for now you will see whats new in this version only.
2010-04-21 MickeM - 0.3.8 RC1
+ Added support for strings and int (values) to CheckSingleRegEntry
Use like so (int):
CheckSingleRegEntry path=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MaxSize "syntax=%path%: %int%" warn==20971520 crit==20971520 check=int ShowAll=long
CheckSingleRegEntry path=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MaxSize "syntax=%path%: %int%" warn==30971520 crit==30971520 check=int ShowAll=long
Use like so (string):
CheckSingleRegEntry path=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MaxSize "syntax=%path%: %string%" warn==20971520 crit==20971520 check=string ShowAll=long
CheckSingleRegEntry path=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MaxSize "syntax=%path%: %string%" warn==30971520 crit==30971520 check=string ShowAll=long
This can ofcourse be combined and all valid operators (like regexp, substr, lt, gt, ne etc etc are supported.
// Michael Medin
New nightly build
New minor build with a new command: CheckSingleRegEntry? Used for checking registry entries (at the moment only existence) Scedule postponed 1 week since the eventlog took a bit more time ten I had anticipated and this weekend will be mountainbike weather!!! :)
SOON It is currently building and hopefully will be posted after that.
2010-04-16 MickeM
+ Added new Check to CheckSystem: CheckSingleRegEntry
Similar to the previous CheckSIngleFile but can be used to check aspects of registry entries.
CheckSingleRegEntry path=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MaxSize "syntax=%path%: %exists%" warn==true crit==true check=exists ShowAll=long
CheckSingleRegEntry path=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MaxSizeYY "syntax=%path%: %exists%" warn==true crit==true check=exists ShowAll=long
Currently only supports checking existanse of keys but more checks will be added soon.
2010-04-14 MickeM
! Fixed erroneous error message "Failed to peek buffer"
// Michael Medin
New nightly with support for dates in new CheckEventLog
Hello.
A new nightly build is out. It features support for date/time in the new CheckEventLog. Dates are handled somewhat differently from before, but more "logical" I hope. Dates are specified like so:
generated gt -2d
This means event record was generated more recently then "2 days ago". In other words 'generated > (now - 2 days)'. You can of course also specify 'generated gt 2d' which means records generated "in the future" (not very sensible really) but for consistency I think this is much better then "having them then other way around".
This can be combined with the usual AND/OR expressions I mentioned earlier.
generated gt -2d AND severity = 'error'
The above means all records from the last 2 days which has severity error.
A sample command for instance would look like this:
CheckEventLog debug=true file=application file=system MaxWarn=1 MaxCrit=1 "filter=generated gt -2d AND severity = 'error'" truncate=800 unique descriptions "syntax=%severity%: %source%: %generated% %strings% (%count%)"
The overall scheduling for the up-coming 0.3.9 release is RC sometimes this week and unless something pops up a release set for next 2 weeks or so.
// Michael Medin
New nightly with the "new" event log checker
Hello,
The eventlog checker code is now live in the latest nightly build. You can try it wout using something along the lines of the following:
CheckEventLog debug=true file=application file=system MaxWarn=1 MaxCrit=1 "filter=severity = 'error' AND strings like 'SQLEXPRESS'" truncate=800 unique descriptions "syntax=%severity%: %source%: %strings% (%count%)"
Most things are similar the "new" option is: filter=<where expression> where the <where expression> is similar to a SQL where clause.
Operators supported are:
=, !=, >, <, >=, <=, eq, ne, gt, lt, ge, le, OR, AND, like
Keywords supported:
id, source, type, severity, message, strings, written, generated
Types supported:
string, int, severity
In pother words since date is NOT supported you cant really use the written and generated options since you have no way to specify "time" this will be fixed next week. Same thing goes for type which cant (like severity) parse strings into integers.
But PLEASE try this out despite the limitations as I would like some feedback on what kind of features you would need and also find any bugs.
A few examples:
severity = 'error' OR severity = 'warning' (severity = 'error' OR severity = 'warning') AND strings like 'SQLEXPRESS' (severity = 'error' OR severity = 'warning') AND (strings like 'SQLEXPRESS' OR strings like 'SOMETHING ELSE') (severity = 'error' OR severity = 'warning') AND (strings like 'SQLEXPRESS' OR strings like 'SOMETHING ELSE') OR 1 = 1 OR 1 = 2
// Michael Medin
The all-new eventlog checker is working!
Hello everyone (and that is you Google index bot!)
News
Today I can announce the first ever all-new EventLog? check working on my development machine. It was (actually) much much harder to make this then I had initially anticipated and halfway through I almost gave up. The checkin (in a few days or so) will be around 2000 lines of code (thats around 10% of NSClient++) so it was a pretty long haul. Given the complexity I think this will be in beta for a while but I really think the new syntax will be pretty awesome!
How it works
The check I run today looks like so:
CheckEventLog debug=true file=application file=system MaxWarn=1 MaxCrit=1 "filter=severity = 1" truncate=1023 unique descriptions "syntax=%severity%: %source%: %message% (%count%)"
Most of the options are the "same old":
- debug=true Enable debugging (something I always do when I develop things :)
- file=application / system What to check
- MaxWarn/MaxCrit? When it is bad/worse
- truncate Make sure it fits
- unique Keep the result minimal (ie. don't report multiple items)
- descriptions This might be removed as it is sort of superfluous but I am not sure yet.
- syntax Same old same old.
And here it comes
"filter=severity = 1"
- filter Has a new meaning in this case saying report all messages with a severity of 1
Changing this parameter to for instance:
"filter=severity = 1 AND severity = 2"
yields no results as severity cant be BOTH 1 and 2 at the same time where as
"filter=severity = 1 OR severity = 2"
yields more results as we now have both 1 and 2 as allowed values.
As you can see the values are "numeric" at the moment but that will be fixed a bit later on as I get all the conversion code ready.
The nitty gritty details
Another interesting thing is how this works. The expression is parsed into a tree which is "enhanced" in several passes. If we look in the debug log we can see this:
d \CheckEventLog.cpp(648) Using: where
Use the new "where" mode.
Parsing
d \CheckEventLog.cpp(302) Parsing: severity = 1 OR severity = 2 AND 1='1'
d \CheckEventLog.cpp(310) Parsing succeeded: {tbd}op:or({tbd}op:=({tbd}:severity, {tbd}#1), {tbd}op:and({tbd}op:=({tbd}:severity, {tbd}#2), {tbd}op:=({tbd}#1, {tbd}'1')))
Expression was parsed into the tree. All the "tbd" here is the types which at the moment are unknown which the parser will do next.
Type inference
d \CheckEventLog.cpp(318) Type resolution succeeded: {bool}op:or({bool}op:=({int}:severity, {int}#1), {bool}op:and({bool}op:=({int}:severity, {int}#2), {bool}op:=({int}#1, {int}fun:auto_convert({string}'1'))))
Here we have looked up the types.
Automatic conversion
An interesting point here is the
{int}fun:auto_convert({string}'1')
This phase discovered that an "int" was compared to a "string" and "solved" this by converting the string to an int.
Static evaluation
Next up is a static evaluation
d \CheckEventLog.cpp(326) Static evaluation succeeded: {bool}op:or({bool}op:=({int}:severity, {int}#1), {bool}op:and({bool}op:=({int}:severity, {int}#2), {bool}#1))
And as you can see here the function is removed and replaced by an "boolean value" (true). Since the expression does not contain any variables the static evaluation figures out it is pointless to do this over and over and thus removes it.
Variable Binding
d \CheckEventLog.cpp(334) Binding succeeded: {bool}op:or({bool}op:=({int}:severity, {int}#1), {bool}op:and({bool}op:=({int}:severity, {int}#2), {bool}#1))
Here we cant really see a difference since the bindings are not showed but what has happen is that the filter is bound to the variables which will contain the data. This is actually much faster than the old version which did "string" comparisons for every check. Now it already knows what it will do and just executes the code. I have yet to run any tests on this but presumably a well written where clause will be faster then the previous version.
That is all for now good people you can expect nightly builds with this functionality either this week or the next.
// Michael Medin
I am not dead! :)
Hello everyone,
Sorry for being "off-line" last few weeks but I have actually been working more diligently then usual.
What I am working on is a parser for defining filter expressions. The first use case for this is the event log check but in the future this might be added to more places.
The syntax is similar to "SQL WHERE" Clauses so the following will for instance be a valid check:
CheckEventLog MaxWarn=1 MaxCrit=1 "filter=(id = 123 OR id = 321) AND (severity='warning' OR severity='error')"
// Michael Medin
New nightly out...
A new nightly out. Nothing major just a few fixes to the CheckFile related module.
2009-02-26 MickeM * Changed fo missing files and such generate an error * Added option to return error messages to the client [CheckDisk] show_errors=1 (defauilt is off 0) * Added warning message ewhen numerical filters evaluate to zero (and are not 0) * Fixed major issue with date mathing in CheckFile* which was not working at all.
Note though that this new release is built with a new "kit" ie. new version of boost, openssl, and what not so things might be a bit more experimental then usual...
// Michael Medin
Welcome Opsview (Opsera)
Hello,
I would like to welcome Opsera as a Gold sponsor for the NSClient++ project.
In other news I have been mad busy at work and with Windows 7 installes so nothing in the ways of updates. But hopefully after the weekend.
Also I can say: "Windows 7?" I actually dont get the hype. What is "new" it is pretty much like "XP" so in that regard it is a lot better then Vista (which I hated) but I cant really say there is much of a reason to upgrade from XP?
Most of the "addons" I already had in the form of third party products...
Well, we shall see, maybe it will grow on me?
(still havent installed a US enligh spellchecker in Firefox so excuse my spelling errors :)
// Michael Medin
Network trafic!
I forgot to post that the nice people at netways have worked some magic which makes the site A LOT snappier!
The reason for the "slow down" is the 60+Gb/month traffic you all help generate. You can read some more on the netways blog over here http://blog.netways.de/2010/02/10/nsclient-plus-speed/.
// Michael Medin
Welcome community!!! :P
Hello community!
Awesome to see someone actually helping out here :P Really really nice!
Also if there are any handy unix using people out there I will starting next week be doing a small (controlled) alpha of the up-coming 0.4.x branch which will (in addition to windows) also run on unix. The version is far from finished but it would be interesting to see how well it builds out there in the "big world" outside my Debian here at home.
The features currently supported in the 0.4.x branch is:
- NRPE Server
- NRPE Client
- NSCA Client
- Scheduler (NSCA does not have one anymore)
- Logging (to text file)
- CheckHelpers (simplest module)
- CheckExternalScripts
I would also really really like to get feedback on what people would like to see in the form of features and such. Especially on *nix where I am just now starting to thread lightly... Also feel free to let me know if I am stone crazy and should give upon this! :)
And again wicked big thanks to everyone who helps out and such on the forum/wiki/* here!!!
// Michael Medin
Warsaw visit
Hello,
I thought Id quickly post here that I will be in Warsaw (course about coherence) so probably wont be much updates this week. If anyone has any sightseeing ideas or wanna grab a beer or something like that drop me an email at michael at medin dot name.
As for the client there is a new nightly build out a few days ago with some fixes and such. I am currently reworking some stuff in the 0.4.x brance wich I hope to have a beta for in the next few weeks.
// Michael Medin
New 0.3.8 Nightly build out!
Again more improvements and changes to the disk related checks.
Highlights are:
- Better performance data for CheckDrive? (now always shows absolute sizes) so you can plot better graphs.
- Volume support for CheckDriveSize (CheckAll?=volumes)
- User support in syntax for CheckEventLog
- Support for "future dates"
Now is a very good time to submit all feature requests for disk related checks as I am working over those parts.
Full changlog
2009-12-31 MickeM
* Fixed CheckFile* time handling so it is "signed"
This means you can check for "future dates" as well as future dates works correctly:
Like so:
CheckFile2 debug path=D:\tmp\dates filter+creation=>30m MaxWarn=1 MaxCrit=1 "syntax=%filename%: %creation%"
CRITICAL:past.txt: Thursday, December 31, 2009 08:47:30, found files: 1 > critical|'found files'=1;1;1;
CheckFile2 debug path=D:\tmp\dates filter+creation=<-30m MaxWarn=1 MaxCrit=1 "syntax=%filename%: %creation%"
CRITICAL:future.txt: C: Thursday, December 31, 2009 12:47:11, found files: 1 > critical|'found files'=1;1;1;
+ Added volume support for CheckDriveSize (CHeckAll) like so:
Like so:
CheckDriveSize MinWarn=50% MinCrit=25% CheckAll=volumes FilterType=FIXED FilterType=REMOTE
+ Added %user% to syntax to print user who generated message.
Like so:
CheckEventLog file=application file=system filter=new filter=out MaxWarn=1 MaxCrit=1 filter-generated=>2w filter-severity==success filter-severity==informational truncate=1023 unique descriptions "syntax=%user% (%count%)"
CRITICAL: (1), (2), NT INSTANS\SYSTEM (3), NT INSTANS\SYSTEM (3), NT INSTANS\SYSTEM (3), missing (3), missing (5), (4), missing (2), missing (2), missing (2), missing (2), (1), eventlog: 33 > critical|'eventlog'=33;1;1;
2009-12-21 MickeM
! BREAKING CHANGE!
! New perfoamcen data syntax for ALL % checks
Alias is '<alias> %' and it also has the "full" non % data as '<alias>'
Like so:
CheckDriveSize CheckAll MaxWarnUsed=80% MaxCritUsed=90%
CRITICAL:CRITICAL: C:\: Total: 146G - Used: 140G (95%) - Free: 6.31G (5%) > critical, D:\: Total: 152G - Used: 148G (97%) - Free: 3.59G (3%) > critical|'C:\ %'=95%;80;90; 'C:\'=140.17G;117.18;131.83;0;146.48; 'D:\ %'=97%;80;90; 'D:\'=147.93G;121.21;136.3;0;151.52;
CheckDriveSize CheckAll MaxWarnFree=20% MaxCritFree=10%
OK:OK: All drives within bounds.|'C:\ %'=5%;20;10; 'C:\'=140.17G;29.29;14.64;0;146.48; 'D:\ %'=3%;20;10; 'D:\'=147.93G;30.30;15.15;0;151.52;
CheckDriveSize CheckAll MaxWarnUsed=100G MaxCritUsed=150G
WARNING:WARNING: C:\: Total: 146G - Used: 140G (95%) - Free: 6.31G (5%) > warning, D:\: Total: 152G - Used: 148G (97%) - Free: 3.59G (3%) > warning|'C:\ %'=95%;32;4294967294; 'C:\'=140.17G;100;150;0;146.48; 'D:\ %'=97%;35;2; 'D:\'=147.93G;100;150;0;151.52;
CheckDriveSize CheckAll MaxWarnFree=20G MaxCritFree=10G
OK:OK: All drives within bounds.|'C:\ %'=5%;87;94; 'C:\'=140.17G;20;10;0;146.48; 'D:\ %'=3%;87;94; 'D:\'=147.93G;20;10;0;151.52;
// Michael Medin
New nightly out!
Mainly disk and file related additions:
- New command: CheckSingleFile?
- A few new options for CheckFile2
Full changelog here
2009-12-13 MickeM
+ Added new command: CheckSingleFile to check aspects of a single file use like so:
CheckSingleFile file=d:\nrpe_512.pem warn=>100 check=line-count warn=>100 crit=>170 check=size
+ Added option debug to CheckFile2 to enable printing of debug information
+ Added ignore-errors to "ignore" any filesystem related errors (NOTICE this is probably not what you want)
+ Added master-syntax to CheckFile2 to change the overall message like so:
It takes three options (and char data):
* %list% A list of all "files" (syntax controls this)
* %files% number of files
* %matches% number of files matched
CheckFile2 MinWarn=10 MinCrit=10 path=D:\WINDOWS\system32 filter+size=gt:0 truncate=10 ignore-errors "master-syntax=%matches%/%files%"
OK:7177/7...|'found files'=7177;10;10;
2009-12-06 MickeM
+ Added != to all string filters
+ Sorted out the alias handling it is now wither what you specify or "files found" (this makes performance data work)
+ Added version to CheckFile2
CheckFile2 path=D:\tmp pattern=*.exe filter+version=!=1.0 "syntax=%filename%: %version%" MaxWarn=1
CheckFile2 path=D:\tmp pattern=*.exe filter+version=!=6.0.2900.5512 "syntax=%filename%: %version%" MaxWarn=1
+ Added line count to CheckFile2 to count lines
CheckFile2 path=D:\tmp pattern=*.txt filter+line-count=!=2 "syntax=%filename%: %line-count%" MaxWarn=1
CheckFile2 path=D:\tmp pattern=*.txt filter+line-count=ne:3 "syntax=%filename%: %line-count%" MaxWarn=1







rss
