Mit folgendem
Munin Plugin,
http_rescode, kann man auf localhost oder remote den HTTP
Statuscode (den Antwortcode, den response code) prüfen. Es macht schließlich einen großen Unterschied, ob serverseitig alles prima läuft (200 OK), oder ob ein fataler Fehler aufgetreten ist und der normale Inhalt gar nicht ausgeliefert werden kann (500).
Das Ziel der Anfrage kann angepasst werden (default: http://localhost/). Das Plugin benötigt
curl.
http_rescode
#!/bin/bash
# -*- sh -*-
: << =cut
=head1 NAME
http_rescode - Plugin to graph HTTP response code of a specific page
=head1 CONFIGURATION
The following environment variables are used by this plugin
target - URL to fetch (default: "http://localhost/")
=head1 AUTHOR
xela
=head1 LICENSE
public domain
=head1 MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf
=cut
target=${target:-"http://localhost/"}
target_short=$(echo $target|awk -F '/' '{print $3}')
curl_bin=$(which curl)
if [ "$1" = "autoconf" ]; then
result="yes"
[ "x$curl_bin" = "x" ] && result=1
if [ "$result" != "yes" ]; then
echo "no (need curl program)"
exit 0
fi
echo yes
exit 0
fi
if [ "$1" = "config" ]; then
echo "graph_title HTTP response code of $target_short"
echo "graph_args --base 1000 -l 0"
echo "graph_vlabel HTTP numeric response code"
echo "graph_category network"
echo "graph_info This graph shows numeric HTTP response code of $target"
echo "rescode.label response_code"
echo "rescode.info Response Code"
exit 0
fi
rescode=$($curl_bin -A MuninPlugin -I $target 2>&1 | awk '/^HTTP/ {print $2}')
if [ -z $rescode ]
then
rescode='0'
fi
echo "rescode.value $rescode"
Konfiguriert wird wie folgt in /etc/munin/plugin-conf.d/munin-node:
[http_rescode]
env.target http://some.other.host.tld/directory/
Soll Munin auch ein Warnmail schicken, kann folgendes in /etc/munin/munin.conf im Abschnitt zum Host ergänzt werden:
http_rescode.rescode.critical 1:399
Dann wird, wenn der Wert 0 ist (überhaupt keine Antwort vom Server) oder bei Werten ab 400 (es gibt ein Problem) ein Mail an die konfigurierten Kontakte geschickt.