Skip to content

Instantly share code, notes, and snippets.

@halmartin
Last active January 22, 2018 11:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save halmartin/d975cac355f7416bb8e2750913665c39 to your computer and use it in GitHub Desktop.
Save halmartin/d975cac355f7416bb8e2750913665c39 to your computer and use it in GitHub Desktop.
FreeBSD: collectd metrics for Intel S1200BTL CPU, BMC, and PSU
#!/bin/sh
HOSTNAME="${COLLECTD_HOSTNAME:-`hostname -f`}"
INTERVAL="${COLLECTD_INTERVAL:-30}"
while sleep "$INTERVAL"; do
/sbin/sysctl -a | awk -F'[. ]' '/dev\.cpu\.[0-9]\.temperature/ {printf "%s %s\n",$3,$5}'|while read c t
do
echo "PUTVAL \"$HOSTNAME/temperature/temperature-cpu${c}\" interval=$INTERVAL N:${t%%.*}"
done
ipmi_output=$(/usr/local/bin/ipmitool sensor)
echo "$ipmi_output" | awk -F"|" '/Front Panel Temp/ {printf "%d\n",$2}'|while read c
do
echo "PUTVAL \"$HOSTNAME/temperature/temperature-ambient\" interval=$INTERVAL N:${c%%.*}"
done
echo "$ipmi_output" | awk -F"|" '/Board Inlet TEMP/ {printf "%d\n",$2}'|while read c
do
echo "PUTVAL \"$HOSTNAME/temperature/temperature-mb\" interval=$INTERVAL N:${c%%.*}"
done
echo "$ipmi_output" | awk -F"|" '/HSBP Temp/ {printf "%d\n",$2}'|while read c
do
echo "PUTVAL \"$HOSTNAME/temperature/temperature-bp\" interval=$INTERVAL N:${c%%.*}"
done
echo "$ipmi_output" | awk -F"|" '/PS1 Temperature/ {printf "%d\n",$2}'|while read c
do
echo "PUTVAL \"$HOSTNAME/temperature/temperature-psu\" interval=$INTERVAL N:${c%%.*}"
done
echo "$ipmi_output" | awk -F"|" '/BMC Board TEMP/ {printf "%d\n",$2}'|while read c
do
echo "PUTVAL \"$HOSTNAME/temperature/temperature-bmc\" interval=$INTERVAL N:${c%%.*}"
done
echo "$ipmi_output" | awk -F"[| ]" '/Sys Fan [1-3]/ {printf "%s %d\n",$3,$13}'|while read c t
do
echo "PUTVAL \"$HOSTNAME/rpm/count-fan${c}\" interval=$INTERVAL N:${t%%.*}"
done
echo "$ipmi_output" | awk -F"|" '/PS1 Power In/ {printf "%d\n",$2}'|while read c
do
echo "PUTVAL \"$HOSTNAME/power/power-ps1\" interval=$INTERVAL N:${c%%.*}"
done
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment