Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Сори, но вопросик по rrdtools
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu Jul 28, 2005 9:17 am    Post subject: Сори, но вопросик по rrdtools Reply with quote

Тут, в соседнем треде сосватали очень мощную штуковину для мониторинга.
rrdtools

Совместно с mrtg, она по мощности ничем не отличается,
ее ИМХО имеет смысл юзать со скриптов.

Но тогда-же разумом тронишься :roll:, при их уровне документации и ее запутанности!

Вот, пример скрипта, для одного интерфейса (собрал, сохранил, нарисовал [причем, не совсем так, как хочется, но для теста номано]):

Code:

#!/bin/sh
export RRD_DEFAULT_FONT=/usr/share/fonts/WIN_TTF/tahoma.ttf
WWW_DATA="/var/www/localhost/htdocs/rrd/"
IF_1="127.0.0.1"


#rrdtool create ${WWW_DATA}/lo.rrd DS:input:COUNTER:600:U:U DS:output:COUNTER:600 :U:U RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:775 RRA:AVERAGE:0.5:288:797 RRA:MAX:0.5:1:600 RRA:MAX:0.5:6:700 RRA:MAX:0.5:24:775 RRA:MAX:0 .5:288:797
file="${WWW_DATA}lo.rrd"
lo=`snmpget -v 2c -c XXX -O qv ${IF_1} .1.3.6.1.2.1.2.2.1.10.1 .1.3.6.1.2.1.2.2.1.16.1`
rrdtool update ${file} N:`echo $lo | sed s/\ /:/`
rrdtool graph ${WWW_DATA}/lo-5min.png -s -86400 -i PNG -v "Octets" -t "lo Interface utilisation" -x MINUTE:1:MINUTE:5:MINUTE:1:0:%H:%M DEF:inoctets=${file}:input:AVERAGE DEF:outoctets=${file}:output:AVERAGE AREA:inoctets#00FF00:"In traffic"  LINE1:outoctets#0000FF:"Out traffic"


А их-то могут быть десятки, сотни! :?
Этак можно посвятить всю свою жизнь настройкам утилитки!
Может к ней какой аналог m4 или еще кто-то есть, чтоб автогенерить строчки?

фронтэнд не надо, сам напишу, уж, что-что, а ХТМЛ на таком уровне знаю :D, чтоб картинки всунуть.

Можно конечно и самому написать ОГРОМНУЮ серию скриптов с подскриптами и парсингом конфигов, но может и готовое есть, чтоб универсально (n-переменных, n-графиков, т.к. mrtg ограничивает 2-мя и нет "-" значений)?
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu Jul 28, 2005 1:27 pm    Post subject: Reply with quote

В общем попробовал, написал скрипт =>

mrtg на ПОРЯДОК легче!
Я его даже не замечал, а тут, после опроса всего 3-х:!:
интерфейсов на разных рутерах, GW и пр, машинка рачком повернулась!
На ней жизнь замирает!

=> Похоже, что юзать надо MRTG (Хотя, они оффициально в доках говорят, что его не будет),
а РЕДКИЕ (где больше 2-х графов) статистики снимать и строить уже под rrdtools!

:cry:

ВОТ-так!
Back to top
View user's profile Send private message
ManJak
Guru
Guru


Joined: 18 Dec 2004
Posts: 561
Location: St. Petersburg, Russia

PostPosted: Thu Jul 28, 2005 1:35 pm    Post subject: Reply with quote

$ cat /usr/local/sbin/monitoring/127.0.0.1
Code:

#!/bin/sh
export RRD_DEFAULT_FONT=/usr/share/fonts/WIN_TTF/times.ttf
WWW_DATA="/var/www/localhost/htdocs/rrd"
IF_1="127.0.0.1"
filename="lo"
SNMP_OIDS=".1.3.6.1.2.1.2.2.1.10.1 .1.3.6.1.2.1.2.2.1.16.1"
COMMUNITY="XXX"
SNMP_VERSION="2c"

##################################################
dbfile="${WWW_DATA}/${filename}.rrd"
png1="${WWW_DATA}/${filename}-5min.png"
png2="${WWW_DATA}/${filename}-30min.png"
png3="${WWW_DATA}/${filename}-2hour.png"
png4="${WWW_DATA}/${filename}-1day.png"
png5="${WWW_DATA}/${filename}-1month.png"
png6="${WWW_DATA}/${filename}-1year.png"
##################################################

# 300 sec = 5 min

if [[ ! -a ${dbfile} ]]; then
        rrdtool create -s 300 ${dbfile} \
        DS:input:COUNTER:600:U:U \
        DS:output:COUNTER:600:U:U \
        RRA:AVERAGE:0.5:1:600 \
        RRA:AVERAGE:0.5:6:700 \
        RRA:AVERAGE:0.5:24:775 \
        RRA:AVERAGE:0.5:288:797 \
        RRA:MAX:0.5:1:600 \
        RRA:MAX:0.5:6:700 \
        RRA:MAX:0.5:24:775 \
        RRA:MAX:0.5:288:797 \
        RRA:MIN:0.5:1:600 \
        RRA:MIN:0.5:6:700 \
        RRA:MIN:0.5:24:775 \
        RRA:MIN:0.5:288:797

fi

lo=`snmpget -v ${SNMP_VERSION} -c ${COMMUNITY} -O qv ${IF_1} ${SNMP_OIDS}`
rrdtool update ${dbfile} N:`echo $lo | sed s/\ /:/`
rrdtool graph ${png1} -s -600 -i -a PNG \
-v "Traffic" -t "${file} Interface utilisation" \
-x MINUTE:1:MINUTE:5:MINUTE:1:0:%H:%M \
DEF:inoctets=${dbfile}:input:AVERAGE \
DEF:outoctets=${dbfile}:output:AVERAGE \
AREA:inoctets#00FF00:"In traff" LINE1:outoctets#0000FF:"Out traff" \
COMMENT:"\n" \
GPRINT:inoctets:MIN:%.2lf \
GPRINT:outoctets:MIN:%.2lf \
GPRINT:inoctets:AVERAGE:%.2lf \
GPRINT:outoctets:AVERAGE:%.2lf \
GPRINT:inoctets:MAX:%.2lf \
GPRINT:outoctets:MAX:%.2lf \

rrdtool graph ${png2} -s -1800 -i -a PNG \
-v "Traffic" -t "${file} Interface utilisation" \
-x MINUTE:1:MINUTE:30:MINUTE:5:0:%H:%M \
DEF:inoctets=${dbfile}:input:AVERAGE \
DEF:outoctets=${dbfile}:output:AVERAGE \
AREA:inoctets#00FF00:"In traff" LINE1:outoctets#0000FF:"Out traff" \
COMMENT:"\n" \
GPRINT:inoctets:MIN:%.2lf \
GPRINT:outoctets:MIN:%.2lf \
GPRINT:inoctets:AVERAGE:%.2lf \
GPRINT:outoctets:AVERAGE:%.2lf \
GPRINT:inoctets:MAX:%.2lf \
GPRINT:outoctets:MAX:%.2lf \

rrdtool graph ${png3} -s -7200 -i -a PNG \
-v "Traffic" -t "${file} Interface utilisation" \
-x MINUTE:5:MINUTE:60:MINUTE:20:0:%H:%M \
DEF:inoctets=${dbfile}:input:AVERAGE \
DEF:outoctets=${dbfile}:output:AVERAGE \
AREA:inoctets#00FF00:"In traff" LINE1:outoctets#0000FF:"Out traff" \
COMMENT:"\n" \
GPRINT:inoctets:MIN:%.2lf \
GPRINT:outoctets:MIN:%.2lf \
GPRINT:inoctets:AVERAGE:%.2lf \
GPRINT:outoctets:AVERAGE:%.2lf \
GPRINT:inoctets:MAX:%.2lf \
GPRINT:outoctets:MAX:%.2lf \

rrdtool graph ${png4} -s -86400 -i -a PNG \
-v "Traffic" -t "${file} Interface utilisation" \
-x HOUR:1:DAY:1:HOUR:6:0:%d\ %b\ %H:%M \
DEF:inoctets=${dbfile}:input:AVERAGE \
DEF:outoctets=${dbfile}:output:AVERAGE \
AREA:inoctets#00FF00:"In traff" LINE1:outoctets#0000FF:"Out traff" \
COMMENT:"\n" \
GPRINT:inoctets:MIN:%.2lf \
GPRINT:outoctets:MIN:%.2lf \
GPRINT:inoctets:AVERAGE:%.2lf \
GPRINT:outoctets:AVERAGE:%.2lf \
GPRINT:inoctets:MAX:%.2lf \
GPRINT:outoctets:MAX:%.2lf \

rrdtool graph ${png5} -s -2592000 -i -a PNG \
-v "Traffic" -t "${file} Interface utilisation" \
-x DAY:1:WEEK:1:WEEK:1:0:%d\ %b \
DEF:inoctets=${dbfile}:input:AVERAGE \
DEF:outoctets=${dbfile}:output:AVERAGE \
AREA:inoctets#00FF00:"In traff" LINE1:outoctets#0000FF:"Out traff" \
COMMENT:"\n" \
GPRINT:inoctets:MIN:%.2lf \
GPRINT:outoctets:MIN:%.2lf \
GPRINT:inoctets:AVERAGE:%.2lf \
GPRINT:outoctets:AVERAGE:%.2lf \
GPRINT:inoctets:MAX:%.2lf \
GPRINT:outoctets:MAX:%.2lf \

rrdtool graph ${png6} -s -31536000 -i -a PNG \
-v "Traffic" -t "${file} Interface utilisation" \
-x WEEK:1:MONTH:1:MONTH:3:0:%b\ %Y \
DEF:inoctets=${dbfile}:input:AVERAGE \
DEF:outoctets=${dbfile}:output:AVERAGE \
AREA:inoctets#00FF00:"In traff" LINE1:outoctets#0000FF:"Out traff" \
COMMENT:"\n" \
GPRINT:inoctets:MIN:%.2lf \
GPRINT:outoctets:MIN:%.2lf \
GPRINT:inoctets:AVERAGE:%.2lf \
GPRINT:outoctets:AVERAGE:%.2lf \
GPRINT:inoctets:MAX:%.2lf \
GPRINT:outoctets:MAX:%.2lf \



Т.е., изменить:
SNMP_OIDS
IF_1
filename
WWW_DATA
COMMUNITY
SNMP_VERSION

И, можно генерить картинки.
Несложно доработать до своих задач!

Недостатки:
1) на мощной машине не пробовал, но на p200mmx/192 RAM Система вставала раком при опросах и сохранениях картинок!
2) Несколько сложновато в понимании!

MRTG никто не замечал =)
Ща, пришлось вернуть его =)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum