Nagios Exchange
  • Home
  • Directory
  • About

Advanced Search

Build precise queries to find exactly what you need

Search Logic

Select compatible versions

Press ESC to close

Sign In Sign Up

Join our next live webinar: “Advanced Nagios Monitoring Techniques” – Register Now

Plugins4379Themes and Skins11Addons732Documentation283Graphics and Logos36View All Categories
LinuxSecuritySNMPFile SystemCloud
New Listings Recently Updated Listings Most Favored Listings Most Popular Listings Most Rated Listings Most Reviewed Listings
Random Project
Other Tutorials And HOWTOs Verifying Your Nagios Configuration
RSS Feed
Newest Listings Updated Listings
Top Contributors
Julien DESMAREST (4)Davide Lemma (4)deskwork_itunes142 (4)Joerg Hoerter (3)TcoUpLoad (1)
See More
Newest Contributors
Community Member (51)Davide Lemma (4)Alarig Le Lay (1)Penn Rabb (1)Sean Falzon (1)
See More
Home > Klaus Tachtler
KT

Klaus Tachtler

@tachtler

User Stats

Favorites0

Views0

Projects1

check_squid_ng
Software
check_squid_ng
check_squid is a plugin to nagios for monitoring Squid by using squidclient with Memory-Patch (Squid 3.5.20/CentOS 7.3)
4.0 (2)
10.2K
0
Klaus Tachtler
GPL
check_squid

Memory Problem since squid 3.5.20 - SOLVED

To solve the problem with squid version 3.5.20 (CentOS-7) Use of uninitialized value in sprintf at /usr/local/share/perl5/Nagios/Plugin/Performance.pm line 68. Use this modified script: #!/usr/bin/perl ################################################################### # check_squid is developped with GPL Licence 2.0 # # GPL License: http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt # # Developped by : Cyril Feraudet # ################################################################### # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # For information : [email protected] #################################################################### # Changed "Memory" data mining for squid version 3.5.20 # Developped by : Klaus Tachtler # http://dokuwiki.tachtler.net # http://www.tachtler.net #################################################################### my $VERSION = "1.0"; $|; use Nagios::Plugin; # todo : use strict; $np = Nagios::Plugin->new(usage => "Usage: %s [ -v|--verbose ] [ -H ] [ -d ] [ -p ] [ -t ] [ -c ] [ -w ]", version => $VERSION); $np->add_arg( spec => 'host|H=s', help => "-H, --host=n" . " Name of the proxy to check (default: localhost)", required => 0 ); $np->add_arg( # Connections Cache Resources Memory FileDescriptors spec => 'data|d=s', help => "-d, --data=n" . " Optional data to fetch (default: Connections)" . " available data : Connections Cache Resources Memory FileDescriptors", required => 0 ); $np->add_arg( spec => 'port|p=i', help => "-p, --port=n" . " Optional port number (default: 3128)", required => 0 ); $np->add_arg( spec => 'user|U=s', help => "-U, --user=n" . " Optional WWW user (default: root)", required => 0 ); $np->add_arg( spec => 'password|W=s', help => "-W, --password=n" . " Optional WWW password", required => 0 ); $np->add_arg( spec => 'warning|w=s', help => "-w, --warning=THRESHOLDn" . " Warning threshold. Seen" . " http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMATn" . ' for the threshold format.', required => 0, ); $np->add_arg( spec => 'critical|c=s', help => "-c, --critical=THRESHOLDn" . " Critical threshold. Seen" . " http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMATn" . ' for the threshold format.', required => 0, ); $np->add_arg( spec => 'squidclient|s=s', help => "-s, --squidclient=n" . " Path of squidclient (default: /usr/bin/squidclient)", required => 0, ); $np->getopts; my $host = $np->opts->host; my $port = $np->opts->port; my $data = $np->opts->data; my $user = $np->opts->user; my $password = $np->opts->password; my $critical = $np->opts->critical; my $warning = $np->opts->warning; my $squidclient = $np->opts->squidclient; $host = 'localhost' if (!defined($host) or $host eq ''); $port = 3128 if (!defined($port) or $port eq ''); $data = 'Connections' if (!defined($data) or $data eq ''); $user = 'root' if (!defined($user) or $user eq ''); $password = '' if (!defined($password)); $critical = undef if (defined($critical) and $critical eq ''); $warning = undef if (defined($warning) and $warning eq ''); $squidclient = '/usr/bin/squidclient' if (!defined($squidclient) or $squidclient eq ''); $np->set_thresholds(critical => $critical, warning => $warning); # squidclient -h localhost -p 8080 -U root -W FPSlsker mgr:info @exec = ("-h", "Q$host", "-p", "Q$port", "-U", "Q$user", "-W", "Q$password", "mgr:info"); @result = `$squidclient @exec`; my $fd_available; my $fd_used; my $memory_available; my $memory_used; my $connection_nbclient; my $connection_nbicpreceived; my $connection_nbicpsent; my $connection_nbicpqueued; my $cache_requesthitratio5; my $cache_requesthitratio60; my $cache_bytehitratio5; my $cache_bytehitratio60; for my $line (@result) { chomp($line); # Connection information for squid: # Number of clients accessing cache: 1203 $line =~ /s+Number of clients accessing cache:s+([0-9]+)/ and $connection_nbclient = $1; # Number of HTTP requests received: 8892278 $line =~ /s+Number of HTTP requests received:s+([0-9]+)/ and $connection_nbhttpreceived = $1; # Number of ICP messages received: 0 $line =~ /s+Number of ICP messages received:s+([0-9]+)/ and $connection_nbicpreceived = $1; # Number of ICP messages sent: 0 $line =~ /s+Number of ICP messages sent:s+([0-9]+)/ and $connection_nbicpsent = $1; # Number of queued ICP replies: 0 $line =~ /s+Number of queued ICP replies:s+([0-9]+)/ and $connection_nbicpqueued = $1; # Request failure ratio: 0.00 # Average HTTP requests per minute since start: 1247.5 # Average ICP messages per minute since start: 0.0 # Select loop called: 407414146 times, 1.050 ms avg # Cache information for squid: # Request Hit Ratios: 5min: 32.8%, 60min: 33.9% # $line =~ /s+Request Hit Ratios:s+5min:s+([0-9.]+)%,s+60min:s+([0-9.]+)%/ and $cache_requesthitratio5 = $1 and $cache_requesthitratio60 = $2; # Hits as % of all requests: 5min: 0.0%, 60min: 0.0% $line =~ /s+Hits as % of all requests:s+5min:s+([0-9.]+)%,s+60min:s+([0-9.]+)%/ and $cache_requesthitratio5 = $1 and $cache_requesthitratio60 = $2; # Byte Hit Ratios: 5min: 23.7%, 60min: 20.9% # $line =~ /s+Byte Hit Ratios:s+5min:s+([0-9.]+)%,s+60min:s+([0-9.]+)%/ and $cache_bytehitratio5 = $1 and $cache_bytehitratio60 = $2; # Hits as % of bytes sent: 5min: 100.0%, 60min: 100.0% $line =~ /s+Hits as % of bytes sent:s+5min:s+([0-9.]+)%,s+60min:s+([0-9.]+)%/ and $cache_bytehitratio5 = $1 and $cache_bytehitratio60 = $2; # Request Memory Hit Ratios: 5min: 20.3%, 60min: 24.9% # Request Disk Hit Ratios: 5min: 25.0%, 60min: 23.9% # Storage Swap size: 27694948 KB # Storage Mem size: 614304 KB # Mean Object Size: 26.96 KB # Requests given to unlinkd: 1318030 # Median Service Times (seconds) 5 min 60 min: # HTTP Requests (All): 0.03622 0.02742 # Cache Misses: 0.07825 0.06640 # Cache Hits: 0.00091 0.00091 # Near Hits: 0.03241 0.04047 # Not-Modified Replies: 0.00091 0.00000 # DNS Lookups: 0.00094 0.00094 # ICP Queries: 0.00000 0.00000 # Resource usage for squid: # UP Time: 427690.730 seconds # CPU Time: 7524.043 seconds # CPU Usage: 1.76% $line =~ /s+CPU Usage:s+([0-9.]+)%/ and $resource_cpu5s = $1; # CPU Usage, 5 minute avg: 7.99% $line =~ /s+CPU Usage, 5 minute avg:s+([0-9.]+)%/ and $resource_cpu5m = $1; # CPU Usage, 60 minute avg: 10.03% $line =~ /s+CPU Usage, 60 minute avg:s+([0-9.]+)%/ and $resource_cpu60m = $1; # Process Data Segment Size via sbrk(): 875680 KB # Maximum Resident Size: 0 KB # Page faults with physical i/o: 2 # Tachtler -------------- # Tachtler - deprecated - # Tachtler -------------- # Memory usage for squid via mallinfo(): # Total space in arena: 875812 KB # Ordinary blocks: 811063 KB 97332 blks # Small blocks: 0 KB 0 blks # Holding blocks: 3996 KB 6 blks # Free Small blocks: 0 KB # Free Ordinary blocks: 64748 KB # Total in use: 815059 KB 93% # $line =~ /s+Total in use:s+([0-9]+)/ and $memory_used = $1; # Total free: 64748 KB 7% # Total size: 879808 KB # $line =~ /s+Total size:s+([0-9]+)/ and $memory_available = $1; # Tachtler -------------- # Tachtler - deprecated - # Tachtler -------------- # Memory accounted for: # Total accounted: 750343 KB # memPoolAlloc calls: 1149188126 # memPoolFree calls: 1144643200 # File descriptor usage for squid: # Maximum number of file descriptors: 4096 # Largest file desc currently in use: 718 # Number of file desc currently in use: 692 # Files queued for open: 0 # Available number of file descriptors: 3404 # Reserved number of file descriptors: 100 # Store Disk files open: 2 # IO loop method: epoll $line =~ /s+Maximum number of file descriptors:s+([0-9]+)/ and $fd_available = $1; $line =~ /s+Number of file desc currently in use:s+([0-9]+)/ and $fd_used = $1; # Internal Data Structures: # 1027146 StoreEntries # 50047 StoreEntries with MemObjects # 50004 Hot Object Cache Items # 1027079 on-disk objects } # Tachtler -------------- # Tachtler - Memory - # Tachtler -------------- # squidclient -h localhost -p 8080 -U root -W FPSlsker mgr:mem @exec = ("-h", "Q$host", "-p", "Q$port", "-U", "Q$user", "-W", "Q$password", "mgr:mem"); @result = `$squidclient @exec`; for my $line (@result) { chomp($line); $line =~ /Totals+.s+([0-9]+)s+([0-9]+)s+([0-9]+)s+([0-9.]+)s+([0-9.]+)s+([0-9]+)s+([0-9]+)/ and $memory_available = $2 and $memory_used = $7; } # Tachtler -------------- # Tachtler - Memory - # Tachtler -------------- if($data =~ /Connections/i) # Connections Cache Resources Memory FileDescriptors { $np->add_perfdata( label => "HTTP requests", value => $connection_nbhttpreceived, uom => "c"); $np->add_perfdata( label => "sent ICP requests", value => $connection_nbicpsent, uom => "c"); $np->add_perfdata( label => "received ICP requests", value => $connection_nbicpreceived, uom => "c"); $np->nagios_exit('OK', "Squid have $connection_nbclient clients and $connection_nbicpqueued ICP requests queued"); } if($data =~ /Cache/i) { $np->add_perfdata( label => "Hits as % of all requests 5min", value => $cache_requesthitratio5, uom => "%"); $np->add_perfdata( label => "Hits as % of all requests 60min", value => $cache_requesthitratio60, uom => "%"); $np->add_perfdata( label => "Hits as % of bytes sent 5min", value => $cache_bytehitratio5, uom => "%"); $np->add_perfdata( label => "Hits as % of bytes sent 60min", value => $cache_bytehitratio60, uom => "%"); $np->nagios_exit('OK', "Hits as % of all requests 5min: $cache_requesthitratio5, Hits as % of all requests 60min: $cache_requesthitratio60, Hits as % of bytes sent 5min: $cache_bytehitratio5, Hits as % of bytes sent 60min: $cache_bytehitratio60"); } if($data =~ /Resources/i) { $np->add_perfdata( label => "CPU used 5s", value => $resource_cpu5s, uom => "%"); $np->add_perfdata( label => "CPU used 5m", value => $resource_cpu5m, uom => "%"); $np->add_perfdata( label => "CPU used 60m", value => $resource_cpu60m, uom => "%"); $np->nagios_exit('OK', "CPU used 5s: $resource_cpu5s, CPU used 5m: $resource_cpu5m, CPU used 60m: $resource_cpu60m"); } if($data =~ /Memory/i) { my $t = Nagios::Plugin::Threshold->set_thresholds(warning => $warning, critical => $critical); $np->add_perfdata( label => "Memory used", value => $memory_used, uom => "KB", threshold => $t); $np->add_perfdata( label => "Memory available", value => $memory_available, uom => "KB"); $np->nagios_exit($np->check_threshold($memory_used), "Squid use $memory_used KB of memory"); } if($data =~ /FileDescriptors/i) { my $t = Nagios::Plugin::Threshold->set_thresholds(warning => $warning, critical => $critical); $np->add_perfdata( label => "Max FD", value => $fd_available); $np->add_perfdata( label => "Cur FD", value => $fd_used, threshold => $t); $np->nagios_exit($np->check_threshold($fd_used), 'Squid work fine.'); } # $np->nagios_exit('OK', $output); # $np->nagios_exit('WARNING', $output); # $np->nagios_exit('CRITICAL', $output); # $np->nagios_exit('UNKNOWN', $output); # $np->nagios_exit('DEPENDENT', $output);

Reviewed 9 years ago

check_tftp.sh

Change some lines to work in newer OS/TFTP versions

Good but in newer versions you have to change following lines: ORIG: RESULT="$(echo get NaGiOs_ChEcK_FiLe | tftp $HOST 2>&1 | head -n 1)" TO RESULT="$(echo get NaGiOs_ChEcK_FiLe | tftp -v $HOST 2>&1 | grep Received)" ORIG: RESULT="$(echo get $FILENAME | tftp $HOST 2>&1 | head -n 1)" TO: RESULT="$(echo get $FILENAME | tftp $HOST 2>&1 | grep Received)" ORIG: *"Received "*" bytes in "*" seconds") TO: *"Received "*" bytes in "*" seconds"*) Than it will work fine again! Klaus Tachtler.

Reviewed 10 years ago

check_yum

patch for CentOS 7 - PHP 7.x

I had to add some fix to this scipt: in line 304 the is a "limit": if len(output) > number_total_updates + 25 / OR 25000: I had to change this value to 50000: because output from yum --security check-update has about 29000 lines.

Reviewed 8 years ago

No Favorites Found

Copyright © 2009-2025 Nagios Enterprises, LLC. All rights reserved.

Privacy PolicyTerms of UseTrademarks