Automasi konversi MRTG tradisional ke RRD tool

Ide graffiti ini muncul dari artikel D. N. Indra Haryawan di http://www.infofreebsd.org dan merupakan lanjutan graffiti saya sebelumnya.
Pemanfaatan rrdtool juga terilhami oleh tulisan pada site yang sama. (Maaf,.. saya lupa penulisnya)

Brief :
Bayangkan seandainya kita memiliki banyak host yang akan dimonitor via mrtg. Dan suatu saat kita harus mengupgrade-nya ke mode rrd yang di daemonized ?
Tentunya akan cukup merepotnya bila menanganinya satu persatu…
Nah loo… gimana donk ?
So… akan lebih baik kalo prosesnya di automatisasi… ya Gak ?

Step:
1. Download file 14all.cgi di http://my14all.sourceforge.net/
2. Letakkan file tersebut pada path yang sama dengan file *.cfg lainnya , misal di /etc/mrtg (terserah sih,.. tapi ini favorit saya)
3. Ganti nama file hasil download tersebut menjadi 14all.cgi (or whatever), dan edit setelah baris :
# (14all.cgi -> 14all.cfg)
diberikan :
$cfgfile = ‘/etc/mrtg/template-mrtg.cfg’;
baris tersebut akan di parsing dan direplace oleh script
4. BUat script back up dulu


#—————–start script———————

#!/bin/sh

echo -n “Enter Path to Back Up : ”

read THEPATH

echo “”

echo -n “Enter Name Of Archive : ”

read ARCNAME



tar -cf $ARCNAME.tar $THEPATH

gzip $ARCNAME.tar



echo “Done backup $THEPATH into $ARCNAME ….”



#—————–end script———————


5. Run script di atas untuk membackup
6. Buat script conversi ini (jangan lupa edit seperlunya)

#—————–start script———————

#!/bin/sh

# This is my script to automatically convert convention mrtg .cfg files into rrd – daemonized mode

# I usually use /etc/mrtg as my mrtg-path config



DIR=$1



######################################################

# Use your own custom configuration by editing these



ENABLERRD1=”LogFormat: rrdtool”

ENABLERRD2=”PathAdd: /usr/local/mrtg-2/rrdtool/bin/”

ENABLERRD3=”LibAdd: /usr/local/mrtg-2/rrdtool/lib/perl/”

ENABLEDAEMONIZED=”RunAsDaemon: yes”

RRDYES=”RRD ENABLE”

RRDNO=”RRD DISABLE”

ENABLEDAEMONOK=”DAEMONIZED YES”

ENABLEDAEMONNO=”DAEMONIZED NO”

MRTGDIR=/var/www/htdocs/mrtg

CGIDIR=/var/www/cgi-bin

TEMPLATECGI=/etc/mrtg/14all.cgi

CFG=/etc/mrtg

KEYCGI=”14all”

MRTGBINPATH=”/usr/local/mrtg-2/bin/”

STRINGINDEX=”PES@Tnet POP Surabaya – MRTG ”

MKINDEXRRD=”/etc/mrtg/make-index-rrd”



####################################################

# Go To $CFG



echo “Change dir to” $(pwd)

cd $CFG





####################################################

# Back Up Or No



echo -n “Back Up old config ? [Y]” :

read ANSWER1

echo “”

if [ “$ANSWER1” = “” ]; then

$ANSWER1 = “Y”

fi

echo $ANSWER1

if [ “$ANSWER1” = “Y” ]; then

mkdir $CFG/backup

cp *.cfg $CFG/backup

fi





####################################################

# Daemonizing-ing all .cfg



for a in $(ls $DIR *.cfg | grep cfg)

do

DAEMONFILE=$(cat $a | grep RunAsDaemon)

if [ “$DAEMONFILE” = “” ]; then

echo -n $a ” ”

sleep 1

echo $ENABLEDAEMONNO “and now trying to enabled daemon mode in $a”

echo $ENABLEDAEMONIZED >> $a

sleep 1

fi

if [ ! “$DAEMONFILE” = “” ]; then

echo -n $a ” ”

echo $ENABLEDAEMONOK

fi

done







####################################################

# RRD-ing all .cfg



for a in $(ls $DIR *.cfg | grep cfg)

do

THISFILE=$(cat $a | grep LogFormat)

if [ “$THISFILE” = “” ]; then

echo -n $a ” ”

echo $RRDNO “and now trying to enabled rrd tool on $a”

echo $ENABLERRD1 >> $a

echo $ENABLERRD2 >> $a

echo $ENABLERRD3 >> $a

sleep 1

fi

if [ ! “$THISFILE” = “” ]; then

echo -n $a ” ”

echo $RRDYES

fi

sed ‘s/workDir/WorkDir/g’ $a > tmp

mv tmp $a

done



echo “” > $MKINDEXRRD

echo “#!/bin/sh” > $MKINDEXRRD

chmod +x $MKINDEXRRD

for a in $(ls $DIR *.cfg | grep cfg)

do

echo “”

echo “Processing rrd cgi in $a”

sed ‘s/template-mrtg.cfg/’$a’/g’ $TEMPLATECGI > $CGIDIR/$a.cgi

chmod +x $CGIDIR/$a.cgi

chown www.www $CGIDIR/$a.cgi

OUTPUTDIR=$(cat $a | grep WorkDir | tail -1 | cut -c10-)

echo “WorkDir : ” $OUTPUTDIR

sleep 1

echo “#$MRTGBINPATH/indexmaker –rrdviewer=/cgi-bin/$a.cgi $CFG/$a –enumerate –columns=2 –title=’$STRINGINDEX’ –output=$OUTPUTDIR/index.html” >> $MKINDEXRRD

echo “#$MRTGBINPATH/indexmaker –rrdviewer=/cgi-bin/$a.cgi $a –enumerate –columns=2 –title=’$STRINGINDEX’ –output=$OUTPUTDIR/index.html”

echo “”

done

echo “###################################################”

echo “There is file $MKINDEXRRD on your $CFG path. Edit this, and run to make rrd indexed automatically”

echo “###################################################”

exit 0







#—————–end script———————





7. Chmod file diatas,… misal nama filenya converter,.. chmod +x converter
8. Edit file /etc/mrtg/make-index-rrd, seperlunya
9. Run /etc/mrtg/make-index-rrd
10. Hapus semua rekaman mrtg di crond
11. Buat customized startup, (seperti pada tulisan terhadulu)


# ———- start of script ———-

#!/bin/sh

DIR=”/etc/mrtg”

STRING1=”/usr/local/mrtg-2/bin/mrtg /etc/mrtg”





case “$1” in



stop)

for c in $(ps ax | grep mrtg | cut -c0-5)

do

PID=$(echo $c)

kill -9 $PID

echo “Daemonized $PID Stopped”

done

rm -f $DIR/*.pid

rm -f $DIR/*_l*

exit 0

;;



start)

for a in $(ls $DIR | grep .cfg)

do

TORUN=$(echo $a)

echo -n “MRTG $TORUN ”

$STRING1/$TORUN &

echo “”

done

exit 0

;;

restart)

$0 stop

$0 start

exit $?

;;

*)

echo “Usage: `basename $0` { start | stop | restart}”

;;

esac

# ———- end of script ———-





12. Chmod agar executable, dan sesuiakan dengan distro anda
13. Run script terakhir ini, dan… voila….


Note: Terima kasih xenogears atas tulisan yang sangat menarik ini. Sering-sering nulis yah 🙂

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *