Blame contrib/create_webpage.sh

Packit d14fb6
#!/bin/bash
Packit d14fb6
#
Packit d14fb6
#  Copyright (c) 2003-2004 Fredrik Ohrn.  All Rights Reserved.
Packit d14fb6
#
Packit d14fb6
#  See the included COPYING file for license details.
Packit d14fb6
#
Packit d14fb6
Packit d14fb6
# Edit the variables
Packit d14fb6
Packit d14fb6
hostname=$HOSTNAME
Packit d14fb6
Packit d14fb6
ipmi_cmd="/usr/local/bin/ipmitool -I open"
Packit d14fb6
rrd_dir="/some/dir/rrd"
Packit d14fb6
Packit d14fb6
# Full path to the rrdcgi executable.
Packit d14fb6
rrdcgi=/usr/local/bin/rrdcgi
Packit d14fb6
Packit d14fb6
# Where should rrdcgi store the graphs? This path must be within the
Packit d14fb6
# document root and writable by the webserver user.
Packit d14fb6
img_dir=/usr/local/apache2/htdocs/images/graphs
Packit d14fb6
Packit d14fb6
# Where will the graphs show up on the webserver?
Packit d14fb6
web_dir=/images/graphs
Packit d14fb6
Packit d14fb6
# Size of graph area (excluding title, legends etc.)
Packit d14fb6
graph_width=500
Packit d14fb6
graph_height=150
Packit d14fb6
Packit d14fb6
# Graphs to include on page
Packit d14fb6
graph_daily=1
Packit d14fb6
graph_weekly=1
Packit d14fb6
graph_monthly=0
Packit d14fb6
Packit d14fb6
Packit d14fb6
# No need to edit below this point.
Packit d14fb6
Packit d14fb6
color[0]="2020FF"
Packit d14fb6
color[1]="20FF20"
Packit d14fb6
color[2]="FF2020"
Packit d14fb6
color[3]="FF21FF"
Packit d14fb6
color[4]="21FFFF"
Packit d14fb6
color[5]="FFFF21"
Packit d14fb6
color[6]="8F21FF"
Packit d14fb6
color[7]="21FF8F"
Packit d14fb6
color[8]="FF8F21"
Packit d14fb6
color[9]="FF2190"
Packit d14fb6
color[10]="2190FF"
Packit d14fb6
color[11]="90FF21"
Packit d14fb6
Packit d14fb6
cat << EOF
Packit d14fb6
#!$rrdcgi
Packit d14fb6
<html>
Packit d14fb6
<head>
Packit d14fb6
<title>$hostname</title>
Packit d14fb6
<RRD::GOODFOR 300>
Packit d14fb6
<body>
Packit d14fb6

$hostname

Packit d14fb6
EOF
Packit d14fb6
Packit d14fb6
Packit d14fb6
IFS="
Packit d14fb6
"
Packit d14fb6
Packit d14fb6
i=0
Packit d14fb6
groups=
Packit d14fb6
Packit d14fb6
for line in `eval $ipmi_cmd -c -v sdr list full` ; do
Packit d14fb6
Packit d14fb6
	IFS=,
Packit d14fb6
Packit d14fb6
	split=($line)
Packit d14fb6
Packit d14fb6
	file="$rrd_dir/$hostname-${split[0]}.rrd"
Packit d14fb6
	group=`echo "${split[2]} ${split[*]:10:6}" | tr ' .-' ___`
Packit d14fb6
Packit d14fb6
	group_color=${group}_color
Packit d14fb6
Packit d14fb6
	if [ -z "${!group}" ] ; then
Packit d14fb6
		groups="$groups $group"
Packit d14fb6
Packit d14fb6
		declare $group_color=0
Packit d14fb6
Packit d14fb6
		group_unit=${group}_unit
Packit d14fb6
		declare $group_unit="${split[2]}"
Packit d14fb6
Packit d14fb6
		group_title=${group}_title
Packit d14fb6
		declare $group_title="${split[5]} / ${split[6]}"
Packit d14fb6
Packit d14fb6
		group_thres=${group}_thres
Packit d14fb6
		declare $group_thres="${split[10]},${split[11]},${split[12]},${split[13]},${split[14]},${split[15]}"
Packit d14fb6
	fi
Packit d14fb6
Packit d14fb6
	declare $group="${!group}
Packit d14fb6
  DEF:var$i=\"$file\":var:AVERAGE LINE1:var$i#${color[${!group_color}]}:\"${split[0]}\""
Packit d14fb6
Packit d14fb6
	declare $group_color=$[ ${!group_color} + 1 ]
Packit d14fb6
Packit d14fb6
	c=$[ c + 1 ]
Packit d14fb6
	i=$[ i + 1 ]
Packit d14fb6
done
Packit d14fb6
Packit d14fb6
IFS=" "
Packit d14fb6
Packit d14fb6
for group in $groups ; do
Packit d14fb6
Packit d14fb6
	group_unit=${group}_unit
Packit d14fb6
	group_title=${group}_title
Packit d14fb6
	group_thres=${group}_thres
Packit d14fb6
Packit d14fb6
	IFS=,
Packit d14fb6
Packit d14fb6
	split=(${!group_thres})
Packit d14fb6
Packit d14fb6
	thres=
Packit d14fb6
Packit d14fb6
	if [ -n "${split[0]}" ] ; then
Packit d14fb6
		if [ -n "${split[3]}" ] ; then
Packit d14fb6
			thres="
Packit d14fb6
  HRULE:${split[0]}#000000
Packit d14fb6
  HRULE:${split[3]}#000000:\"Upper & lower non-recoverable thresholds\""
Packit d14fb6
		else
Packit d14fb6
			thres="
Packit d14fb6
  HRULE:${split[0]}#000000:\"Upper non-recoverable threshold\""
Packit d14fb6
		fi
Packit d14fb6
	else
Packit d14fb6
		if [ -n "${split[3]}" ] ; then
Packit d14fb6
			thres="
Packit d14fb6
  HRULE:${split[3]}#000000:\"Lower non-recoverable threshold\""
Packit d14fb6
		fi
Packit d14fb6
	fi
Packit d14fb6
Packit d14fb6
	if [ -n "${split[1]}" ] ; then
Packit d14fb6
		if [ -n "${split[4]}" ] ; then
Packit d14fb6
			thres="$thres
Packit d14fb6
  HRULE:${split[1]}#FF0000
Packit d14fb6
  HRULE:${split[4]}#FF0000:\"Upper & lower critical thresholds\""
Packit d14fb6
		else
Packit d14fb6
			thres="$thres
Packit d14fb6
  HRULE:${split[1]}#FF0000:\"Upper critical threshold\""
Packit d14fb6
		fi
Packit d14fb6
	else
Packit d14fb6
		if [ -n "${split[4]}" ] ; then
Packit d14fb6
			thres="$thres
Packit d14fb6
  HRULE:${split[4]}#FF0000:\"Lower critical threshold\""
Packit d14fb6
		fi
Packit d14fb6
	fi
Packit d14fb6
Packit d14fb6
	if [ -n "${split[2]}" ] ; then
Packit d14fb6
		if [ -n "${split[5]}" ] ; then
Packit d14fb6
			thres="$thres
Packit d14fb6
  HRULE:${split[2]}#FFCC00
Packit d14fb6
  HRULE:${split[5]}#FFCC00:\"Upper & lower warning thresholds\""
Packit d14fb6
		else
Packit d14fb6
			thres="$thres
Packit d14fb6
  HRULE:${split[2]}#FFCC00:\"Upper warning threshold\""
Packit d14fb6
		fi
Packit d14fb6
	else
Packit d14fb6
		if [ -n "${split[5]}" ] ; then
Packit d14fb6
			thres="$thres
Packit d14fb6
  HRULE:${split[5]}#FFCC00:\"Lower warning threshold\""
Packit d14fb6
		fi
Packit d14fb6
	fi
Packit d14fb6
Packit d14fb6
	echo "

${!group_title}

"
Packit d14fb6
Packit d14fb6
	if [ "$graph_daily" -ne 0 ] ; then
Packit d14fb6
		cat << EOF
Packit d14fb6
Packit d14fb6
  --imginfo ""
Packit d14fb6
  --lazy
Packit d14fb6
  --vertical-label "${!group_unit}"
Packit d14fb6
  --title "Daily graph"
Packit d14fb6
  --height $graph_height
Packit d14fb6
  --width $graph_width ${!group} $thres
Packit d14fb6
>
Packit d14fb6
EOF
Packit d14fb6
	fi
Packit d14fb6
Packit d14fb6
	if [ "$graph_weekly" -ne 0 ] ; then
Packit d14fb6
		cat << EOF
Packit d14fb6
Packit d14fb6
  --imginfo ""
Packit d14fb6
  --lazy
Packit d14fb6
  --start -7d
Packit d14fb6
  --vertical-label "${!group_unit}"
Packit d14fb6
  --title "Weelky graph"
Packit d14fb6
  --height $graph_height
Packit d14fb6
  --width $graph_width ${!group} $thres
Packit d14fb6
>
Packit d14fb6
EOF
Packit d14fb6
	fi
Packit d14fb6
Packit d14fb6
	if [ "$graph_monthly" -ne 0 ] ; then
Packit d14fb6
		cat << EOF
Packit d14fb6
Packit d14fb6
  --imginfo ""
Packit d14fb6
  --lazy
Packit d14fb6
  --start -30d
Packit d14fb6
  --vertical-label "${!group_unit}"
Packit d14fb6
  --title "Monthly graph"
Packit d14fb6
  --height $graph_height
Packit d14fb6
  --width $graph_width ${!group} $thres
Packit d14fb6
>
Packit d14fb6
EOF
Packit d14fb6
	fi
Packit d14fb6
done
Packit d14fb6
Packit d14fb6
cat << EOF
Packit d14fb6
</body>
Packit d14fb6
</html>
Packit d14fb6
EOF