summaryrefslogtreecommitdiff
path: root/contrib/create_webpage.sh
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/create_webpage.sh')
-rwxr-xr-xcontrib/create_webpage.sh211
1 files changed, 211 insertions, 0 deletions
diff --git a/contrib/create_webpage.sh b/contrib/create_webpage.sh
new file mode 100755
index 0000000..7152b3d
--- /dev/null
+++ b/contrib/create_webpage.sh
@@ -0,0 +1,211 @@
+#!/bin/bash
+#
+# Copyright (c) 2003-2004 Fredrik Ohrn. All Rights Reserved.
+#
+# See the included COPYING file for license details.
+#
+
+# Edit the variables
+
+hostname=$HOSTNAME
+
+ipmi_cmd="/usr/local/bin/ipmitool -I open"
+rrd_dir="/some/dir/rrd"
+
+# Full path to the rrdcgi executable.
+rrdcgi=/usr/local/bin/rrdcgi
+
+# Where should rrdcgi store the graphs? This path must be within the
+# document root and writable by the webserver user.
+img_dir=/usr/local/apache2/htdocs/images/graphs
+
+# Where will the graphs show up on the webserver?
+web_dir=/images/graphs
+
+# Size of graph area (excluding title, legends etc.)
+graph_width=500
+graph_height=150
+
+# Graphs to include on page
+graph_daily=1
+graph_weekly=1
+graph_monthly=0
+
+
+# No need to edit below this point.
+
+color[0]="2020FF"
+color[1]="20FF20"
+color[2]="FF2020"
+color[3]="FF21FF"
+color[4]="21FFFF"
+color[5]="FFFF21"
+color[6]="8F21FF"
+color[7]="21FF8F"
+color[8]="FF8F21"
+color[9]="FF2190"
+color[10]="2190FF"
+color[11]="90FF21"
+
+cat << EOF
+#!$rrdcgi
+<html>
+<head>
+<title>$hostname</title>
+<RRD::GOODFOR 300>
+<body>
+<h2>$hostname</h2>
+EOF
+
+
+IFS="
+"
+
+i=0
+groups=
+
+for line in `eval $ipmi_cmd -c -v sdr list full` ; do
+
+ IFS=,
+
+ split=($line)
+
+ file="$rrd_dir/$hostname-${split[0]}.rrd"
+ group=`echo "${split[2]} ${split[*]:10:6}" | tr ' .-' ___`
+
+ group_color=${group}_color
+
+ if [ -z "${!group}" ] ; then
+ groups="$groups $group"
+
+ declare $group_color=0
+
+ group_unit=${group}_unit
+ declare $group_unit="${split[2]}"
+
+ group_title=${group}_title
+ declare $group_title="${split[5]} / ${split[6]}"
+
+ group_thres=${group}_thres
+ declare $group_thres="${split[10]},${split[11]},${split[12]},${split[13]},${split[14]},${split[15]}"
+ fi
+
+ declare $group="${!group}
+ DEF:var$i=\"$file\":var:AVERAGE LINE1:var$i#${color[${!group_color}]}:\"${split[0]}\""
+
+ declare $group_color=$[ ${!group_color} + 1 ]
+
+ c=$[ c + 1 ]
+ i=$[ i + 1 ]
+done
+
+IFS=" "
+
+for group in $groups ; do
+
+ group_unit=${group}_unit
+ group_title=${group}_title
+ group_thres=${group}_thres
+
+ IFS=,
+
+ split=(${!group_thres})
+
+ thres=
+
+ if [ -n "${split[0]}" ] ; then
+ if [ -n "${split[3]}" ] ; then
+ thres="
+ HRULE:${split[0]}#000000
+ HRULE:${split[3]}#000000:\"Upper & lower non-recoverable thresholds\""
+ else
+ thres="
+ HRULE:${split[0]}#000000:\"Upper non-recoverable threshold\""
+ fi
+ else
+ if [ -n "${split[3]}" ] ; then
+ thres="
+ HRULE:${split[3]}#000000:\"Lower non-recoverable threshold\""
+ fi
+ fi
+
+ if [ -n "${split[1]}" ] ; then
+ if [ -n "${split[4]}" ] ; then
+ thres="$thres
+ HRULE:${split[1]}#FF0000
+ HRULE:${split[4]}#FF0000:\"Upper & lower critical thresholds\""
+ else
+ thres="$thres
+ HRULE:${split[1]}#FF0000:\"Upper critical threshold\""
+ fi
+ else
+ if [ -n "${split[4]}" ] ; then
+ thres="$thres
+ HRULE:${split[4]}#FF0000:\"Lower critical threshold\""
+ fi
+ fi
+
+ if [ -n "${split[2]}" ] ; then
+ if [ -n "${split[5]}" ] ; then
+ thres="$thres
+ HRULE:${split[2]}#FFCC00
+ HRULE:${split[5]}#FFCC00:\"Upper & lower warning thresholds\""
+ else
+ thres="$thres
+ HRULE:${split[2]}#FFCC00:\"Upper warning threshold\""
+ fi
+ else
+ if [ -n "${split[5]}" ] ; then
+ thres="$thres
+ HRULE:${split[5]}#FFCC00:\"Lower warning threshold\""
+ fi
+ fi
+
+ echo "<h3>${!group_title}</h3>"
+
+ if [ "$graph_daily" -ne 0 ] ; then
+ cat << EOF
+<RRD::GRAPH "$img_dir/$hostname-$group-daily.gif"
+ --imginfo "<img src="$web_dir/%s" width="%lu" height="%lu">"
+ --lazy
+ --vertical-label "${!group_unit}"
+ --title "Daily graph"
+ --height $graph_height
+ --width $graph_width ${!group} $thres
+>
+EOF
+ fi
+
+ if [ "$graph_weekly" -ne 0 ] ; then
+ cat << EOF
+<RRD::GRAPH "$img_dir/$hostname-$group-weekly.gif"
+ --imginfo "<img src="$web_dir/%s" width="%lu" height="%lu">"
+ --lazy
+ --start -7d
+ --vertical-label "${!group_unit}"
+ --title "Weelky graph"
+ --height $graph_height
+ --width $graph_width ${!group} $thres
+>
+EOF
+ fi
+
+ if [ "$graph_monthly" -ne 0 ] ; then
+ cat << EOF
+<RRD::GRAPH "$img_dir/$hostname-$group-monthly.gif"
+ --imginfo "<img src="$web_dir/%s" width="%lu" height="%lu">"
+ --lazy
+ --start -30d
+ --vertical-label "${!group_unit}"
+ --title "Monthly graph"
+ --height $graph_height
+ --width $graph_width ${!group} $thres
+>
+EOF
+ fi
+done
+
+cat << EOF
+</body>
+</html>
+EOF