Page 2 of 2

Re: Check File Content

Posted: Tue Sep 12, 2017 10:06 am
by DrNox
I got NRPE and NSCP install :)
But i want to read inside the file to found a string : "Infected files: " + a number
If this number is 0 it s OK else Critical
Then i'am back to the beginning

Re: Check File Content

Posted: Tue Sep 12, 2017 10:18 am
by scottwilkerson
so based on the site I posted from one of our contractors
http://sites.box293.com/nagios/guides/c ... es-folders
There is a section marked Make Sure Files Exists That Match A Pattern

You can use something like the following depending on your NSClient version:

Make Sure Files Exists That Match A Pattern
The following file exists: "C:\Downloads\test1\test-123.txt" AND it has some text added to it (so it doesn't have a byte size of 0).
These commands find any files that start with test-
Generate a critical alert if no files are found.

NSClient++ 0.3.9
No additional configuration is required.
Command:

Code: Select all

check_nrpe -H 192.168.142.1 -t 30 -c CheckFiles -a path='C:\\Downloads\\test1' pattern='test-*' 'filter=size gt 0b' max-dir-depth=0 MinCrit=0
Output when files are found:

Code: Select all

test-123.txt|'found files'=1;0;0
Output when NO files are found:

Code: Select all

found files: 0 < critical|'found files'=0;0;0
NSClient++ 0.4.1
No additional configuration is required.
Command:

Code: Select all

check_nrpe -H 192.168.142.1 -t 30 -c CheckFiles -a path='C:\\Downloads\\test1' pattern='test-*' max-dir-depth=0 MinCrit=0
Output when files are found:

Code: Select all

test-123.txt|'found files'=1;0;0
Output when NO files are found:

Code: Select all

found files: 0 < critical|'found files'=0;0;0
NSClient++ 0.4.3.138 onwards
No additional configuration is required.
Command:

Code: Select all

check_nrpe -H 192.168.142.1 -t 30 -c check_files -a path='C:\\Downloads\\test1\\' pattern=test-* 'critical=count<1' max-depth=1 'empty-state=critical'
Output when file is found:

Code: Select all

OK: All 1 files are ok|'count'=1;0;1
Output when file is NOT found:

Code: Select all

No files found|'count'=0;0;1

Re: Check File Content

Posted: Wed Sep 13, 2017 5:03 am
by DrNox
Thank for your answer.
I think I have expressed myself badly.
What I meant was that i want to read inside the file ( Ligne 5 or Ligne 6 inside, for example) not the name of my file.
In my case I don't know which line is my string : "Infected files: " + a number .

Re: Check File Content

Posted: Wed Sep 13, 2017 8:40 am
by scottwilkerson
Ok, I guess I would have to refer you back to the plugin you were working with first, and you can install the windows version on a windows machine running NSClient++ or NCPA.

The easiest method by far would be to spin up a Nagios Log Server if that was an option as the functionality is built-in
https://www.nagios.com/products/nagios-log-server/

Re: Check File Content

Posted: Wed Sep 13, 2017 9:04 am
by DrNox
okey,thanks for your help

But I didn't see any possibility to install it on Windows (https://labs.consol.de/nagios/check_logfiles/)

Re: Check File Content

Posted: Wed Sep 13, 2017 9:50 am
by scottwilkerson
DrNox wrote:okey,thanks for your help

But I didn't see any possibility to install it on Windows (https://labs.consol.de/nagios/check_logfiles/)
There is definitely some homework. If you download the check_logfiles-3.8.1.tar.gz file, when you extract it there is a text file called README.windows-exe which contains instructions
How to create a windows native binary
check_logfiles.exe

0) Deinstall ActiveState Perl VMWare Remote CLI
and any other Perl packages you can find.

1) Install Strawberry Perl
from http://strawberryperl.com/

2) Prepare your environment so that strawberry perl
is the preferred perl interpreter.
set PATH=C:\strawberry\c\bin;C:\strawberry\perl\bin;%PATH%
Better: Deinstall ActiveState Perl and any other Perl packages you can find.

3) Install PAR::Packer
perl -MCPAN -eshell
install PAR
install PAR::Packer
You will see error messages and the installation will fail.
No problem! We can repair it.
cd C:\strawberry\cpan\build
a)
cd PAR-0.980-<a lot of crap>
perl Makefile.PL
dmake
dmake install
b)
cd PAR-Packer-0.980-<a lot of crap>
edit myldr/Makefile.PL and add
$file =~ s/^lib// if $^O eq "MSWin32";
after line 142.
perl Makefile.PL
dmake
dmake install

4) Build the plugin
cd check_logfiles-x.x.x.x
perl winconfig.pl

5) Compile the plugin
cd plugins-scripts
pp -M PerlIO -M Digest::MD5 -M Encode::Encoding -M Encode::Unicode -M Encode::Unicode::UTF7 -M Net::Domain -M Win32::NetResource -M Win32::Daemon -M Time::Piece -M Time::Local -M Win32::EventLog -M Win32::TieRegistry -M Win32::WinError -M Date::Manip -o check_logfiles.exe check_logfiles
(maybe you need to install Win32::NetResource and Win32::Daemon)
(Win32::Service is useful, too)

6) Package the plugin
C:\Programme\WinZip\WINZIP32.EXE -a check_logfiles.zip plugins-scripts\check_logfiles

If it does not work it's not my fault. It worked for me and my PC.
I read the documentation and played around until it worked.
If it does not work for you, read the documentation and play around.
At least for a week.
If it still does not work, forget check_logfiles.
Use check_hanswurscht instead. The source of check_hanswurscht is:

printf "hello hanswurscht\n";

Now try to create a windows binary with
pp -o check_hanswurscht.exe check_hanswurscht

Do not contact me if check_hanswurscht.exe doesn't work.
Please contact Strawberry and tell them:
"hi, i am a hanswurscht and i have a problem..."

Re: Check File Content

Posted: Thu Sep 14, 2017 2:42 am
by DrNox
OoO whaou
It's gonna be hard, but thanks for your help, I will try !
I come back to you if i got some issues ^^

Re: Check File Content

Posted: Thu Sep 14, 2017 2:23 pm
by tmcdonald
We'll keep this post open for you.

Re: Check File Content

Posted: Thu Sep 21, 2017 2:55 am
by DrNox
Hello,

Finally i used the check_file and not this plugin.
You can close the post :)

Re: Check File Content

Posted: Thu Sep 21, 2017 10:41 am
by scottwilkerson
Glad you found a solution!