|
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
|