Nagios plugin for checking Squid

AttachmentSize
check_squid.pl.txt3.45 KB

Tags: 

I once needed a way to make sure our Squid proxy cluster operates correctly. So I wrote a rather simple Squid check plugin for the Nagios monitoring software. André Moura has pimped it further. Feel free to use it. It's also available from monitoringexchange.org.

16 Comments

Status: 400 URL must be absolute

 

Hi,

As you can see I tried many known and unknown URLs, but never received the correct responce. Very odd.

root@ABC-1234:/usr/local/nagios/libexec# ./check_squid.pl -u http://www.klunky.co.uk -p fredprox -l 8080 -e200
CRITICAL - Status: 406 Not Acceptable (but expected 200...)
root@ABC-1234:/usr/local/nagios/libexec# ./check_squid.pl -u http://www.klunky.co.uk/ -p fredprox -l 8080 -e200
CRITICAL - Status: 406 Not Acceptable (but expected 200...)
root@ABC-1234:/usr/local/nagios/libexec# ./check_squid.pl -url=http://www.klunky.co.uk/ -p fredprox -l 8080 -e200
CRITICAL - Status: 400 URL must be absolute (but expected 200...)
root@ABC-1234:/usr/local/nagios/libexec# ./check_squid.pl -url=http://www.google.com -p fredprox -l 8080 -e200
CRITICAL - Status: 400 URL must be absolute (but expected 200...)
root@ABC-1234:/usr/local/nagios/libexec# ./check_squid.pl -url=http://www.google.com/ -p fredprox -l 8080 -e200
CRITICAL - Status: 400 URL must be absolute (but expected 200...)
root@ABC-1234:/usr/local/nagios/libexec# ./check_squid.pl -url=http://www.google.com/index.html -p fredprox -l 8080 -e200
CRITICAL - Status: 400 URL must be absolute (but expected 200...)
  root@ABC-1234:/usr/local/nagios/libexec#./check_squid.pl -url=http://www.simonloewen.com/ -p fredprox-l 8080 -e200
CRITICAL - Status: 400 URL must be absolute (but expected 200...)

root@ABC-1234:/usr/local/nagios/libexec#./check_squid.pl -u http://www.simonloewen.com/ -p fredprox-l 8080 -e200
 CRITICAL - Status: 406 Not Acceptable (but expected 200...)

 

Best regards, me

 

Power of example

Your problem is that you give the last parameter wrong. It is "-e 200" not "-e200" (although -h says so).

Example:

check_squid.pl -u http://yahoo.com -p proxy.server.com -l 3128 -e 200

Good luck!

returning (null)

Hey there,

thanks for the nice plugin, its definitely helpful.

My Problem is, that if i let Nagios execute the check it always returns (null).

I run it as user nagios manualy and had success:

./check_squid.pl -u http://www.google.com -p srvproxy -l 3128 -o USER -m PASS -e 200

OK - Status: 200 OK

 

But when i created a service and the command ( i hardcoded everything to eleminate the cause of defect) i just get (null) as result.

 

define service{
        use                             generic-service                  ; Name of service template to use
        host_name                       srvproxy
        service_description             Squid Service
        check_command                   check_squid
        }

 

# 'check_squid' command definition
define command{
        command_name    check_squid
        command_line    $USER1$/check_squid.pl -u http://www.google.com -p srvproxy -l 3128 -o USER -m PASS -e 200
}

Is there any known issues ?

hello

hello

In my case , NAGIOS PLUGINS PATH in resource.cfg "/usr/local/nagios/libexec"
and placed check_squid.pl there.
On the other hand USE LIB PATH in check_squid.pl is "/usr/lib/nagios/plugins".
replace USE LIB PATH in check_squid.pl to "/usr/local/nagios/libexec" and restart nagios.
Is it ok?

You need install

You need install perl-modules

 

perl -MCPAN -e shell
 
cpan> install  HTTP::Request::Common
 
cpan> install  LWP::UserAgent
 
cpan> install  HTTP::Headers

 

ANSWER

AND need change:

 

 19 #use lib "/usr/lib/nagios/plugins";
 20 use lib "/usr/local/nagios/libexec";

Happens also to me

Hello!
Same thing here, works from a prompt but does nnot work from within nagios.
YES, I already checked the lib path and YES I also have utils.pm in the same directory. Matter of fact I have both utils.pm as well as util.sh in the same directory /usr/local/nagios/libexec.
Hmm, I am lost!

squid authentification problem

Hi,

 

I'm trying to use this script to check if squid authentification it's working fine. My SQUID is using ntlm authentification.

# /usr/lib/nagios/plugins/check_squid.pl -u http://www.google.com -p 10.0.0.20 -l 3128 -e 200 -o test1 -m dunhill
CRITICAL - Status: 407 Proxy Authentication Required (but expected 200...)

Seems so   use output from

Seems so

 

use output from the --version option of the plugin itself).
root@SV:/usr/local/nagios/libexec# ./check_squid.pl  -u http://www.google.de -p 10.0.0.13 -l 3128 -e 200
OK - Status: 200 OK
root@SV:/usr/local/nagios/libexec# ./check_squid.pl  -u https://www.google.de -p 10.0.0.13 -l 3128 -e 200
OK - Status: 200 OK