11.28
For a while I wanted to graph the HTTP response time of my server(s). I already had Nagios monitor it but now I wanted a nice Cacti image. Based on the check_http script I created (thanks to guy2006) a Perl wrapper to return the response time part:
# /usr/lib/nagios/plugins/check_http -H foo.bar.com -f follow -t 60 HTTP OK: HTTP/1.1 200 OK - 17235 bytes in 0.135 second response time |time=0.134897s;;;0.000000 size=17235B;;;0
The response time part is used as a “Data Input Method” for Cacti.
Implementation:
Create the file check_http.pl in /usr/share/cacti/site/scripts/.
#!/usr/bin/env perl $response = `/usr/lib/nagios/plugins/check_http -H $ARGV[0] -f follow -t 60`; chomp $response; ($load) = ($response =~ /time=(\d+\.\d+|\d+\.|\.\d+|\d+)/); print "$load\n";
Make sure you have the file check_http (it’s in the nagios-plugins-basic package) and it’s located in /usr/lib/nagios/plugins/.
# apt-file search check_http kannel-extras: /usr/lib/kannel/checks/check_http.sh kannel-extras: /usr/lib/kannel/checks/check_httpsmsc_kannel.sh nagios-plugins-basic: /usr/lib/nagios/plugins/check_http nagiosgrapher: /usr/share/nagiosgrapher/debian/cfg/ngraph.d/standard/check_http.ncfg
# locate check_http /usr/lib/nagios/plugins/check_http
Test the Perl wrapper, preferably as user cacti:
# perl check_http.pl foo.bar.com 0.425045
Import the XML Template into Cacti (it’s under Import/Export).
Make sure to change the “Consolidation Function” (of Item # 1) from LAST to Average (it’s under Templates -> Graph Templates). Also make sure to fill in an ip address or hostname. Otherwise your graph will be blank.
Your graph will look something like this:
References:
“Also make sure to fill in an ip address or hostname”
Where exactly?
In the IP Address field under Data Sources -> – HTTP Reponse Time (nrpe) -> Supplemental Data Template Data -> Custom Data
NRPE is required on the supervised machine?
No, it just makes HTTP Requests.
See http://nagiosplugins.org/man/check_http for more information.
I tested the Perl wrapper. It works but the result contains only an integer.
ex:
perl check_http.pl myHost
0
I create a graph ton the corresponding host in Cacti but only got an empty graph.
Do you have any idea?
(I filled an hostname)
I have no idea. I just checked my version.
# perl check_http.pl http://www.google.nl
0.088465
What is the output of the check_http binary?
# /usr/lib/nagios/plugins/check_http -H http://www.google.nl -f follow -t 60
HTTP OK: HTTP/1.1 200 OK – 15150 bytes in 0.089 second response time |time=0.088995s;;;0.000000 size=15150B;;;0
/usr/lib/nagios/plugins/check_http -I 127.0.0.1 -p 5865 -u http://www.google.com HTTP OK: HTTP/1.1 302 Found – 2118 bytes in 2,456 second response time |time=2,456238s;;;0,000000 size=2118B;;;0
I use a Microsoft ISA proxy whith. The port 5865 is the port of ntlmaps.
Hey Marco,
I think I know what the problem is. Your output contains comma decimal separators (non en_US locale?). The perl wrapper probably matches points.
I have no graph andI filled an IP
and if i execute the script it’s ok
Hey Flo,
Can you post the output?