RRD: Сбор информации с UPS через NUT: различия между версиями

Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Строка 1: Строка 1:
==Создание базы==
----
<source lang=bash>
rrdtool create power.mustek600.$HOSTNAME.rrd --step 5 DS:inputv:GAUGE:10:U:U DS:outputv:GAUGE:10:U:U DS:charge:GAUGE:10:U:U DS:load:GAUGE:10:U:U RRA:AVERAGE:0.5:1:1200 RRA:AVERAGE:0.5:8:3000 RRA:AVERAGE:0.5:64:10000 RRA:AVERAGE:0.5:512:16000
</source>
==Сбор информации==
Скрипт для сбора информации о текущем состоянии ЮПС через upsc, входящий в состав [[Network UPS Tools]] и занесении данных в RRD-базу. В качестве первого параметра передается имя базы, остальные параметры напрямую передаются '''upsc'''.
Скрипт для сбора информации о текущем состоянии ЮПС через upsc, входящий в состав [[Network UPS Tools]] и занесении данных в RRD-базу. В качестве первого параметра передается имя базы, остальные параметры напрямую передаются '''upsc'''.



Версия 23:50, 3 декабря 2008

Создание базы


rrdtool create power.mustek600.$HOSTNAME.rrd --step 5 DS:inputv:GAUGE:10:U:U DS:outputv:GAUGE:10:U:U DS:charge:GAUGE:10:U:U DS:load:GAUGE:10:U:U RRA:AVERAGE:0.5:1:1200 RRA:AVERAGE:0.5:8:3000 RRA:AVERAGE:0.5:64:10000 RRA:AVERAGE:0.5:512:16000

Сбор информации

Скрипт для сбора информации о текущем состоянии ЮПС через upsc, входящий в состав Network UPS Tools и занесении данных в RRD-базу. В качестве первого параметра передается имя базы, остальные параметры напрямую передаются upsc.


#!/bin/bash                                                                                                                                                     

dbfile="$1"
if [ -z "${1}" ]; then
        echo -e "
        \e[32mUsage: \e[31m$0 \e[33mRRDBFILE \e[36mUPSNAME

        \e[32mExample: \e[31m$0 \e[33m/home/$USER/myups.rrd \e[36mmyups1000va
        \e[0m"
        exit 2
fi
if [ ! -e "${dbfile}" ]; then
        echo -e "\e[31mError: Database \e[33m\"${dbfile}\" \e[31mnot exist\e[0m"
        exit 1
fi
if [ ! -e /bin/upsc ]; then
        echo -e "\e[31mError: \e[35m/bin/upsc:\e[31m no such file\e[0m"
        exit 3
fi

shift

if /bin/upsc "${@}" ; then
        rrdtool update "${dbfile}" $(/bin/upsc "${@}" | awk '
/battery.charge:/{charge=$2}
/input.voltage:/{inv=$2}
/output.voltage:/{outv=$2}
/ups.load:/{load=$2}
END {print systime()":"inv":"outv":"charge":"load}
')
else
        echo "\e[31mError: Can't get info about \e[36"${@}"\e[0m"
fi