Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # graphs creator, version 1
- ###----CONFIG---###
- MyName="mon_graph"
- # DB connection
- MysqlPath=`which mysql`
- MysqlHost="10.90.0.6"
- MysqlDB="monbase"
- MysqlUser="monbase"
- MysqlPassword="qwertyqazwsx"
- # checking if script enabled
- Enabled=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword $MysqlDB -e "SELECT enabled FROM modules WHERE name = '$MyName'" 2>>mon_graph.error`
- if [ $Enabled = 0 ]; then exit 0; else
- # reading all settings from DB
- Settings=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword $MysqlDB -e "SELECT param, value FROM config WHERE module = '$MyName'" 2>>mon_graph.error`
- DebugLevel=`echo "$Settings" | grep -w "DebugLevel" | cut -f2`
- WorkDir=`echo "$Settings" | grep -w "WorkDir" | cut -f2`
- ConfigDir=`echo "$Settings" | grep -w "ConfigDir" | cut -f2`
- MRTGPath=`echo "$Settings" | grep -w "MRTGPath" | cut -f2`
- IPv6=`echo "$Settings" | grep -w "IPv6" | cut -f2`
- StatusBasedGraph=`echo "$Settings" | grep -w "StatusBasedGraph" | cut -f2`
- ###---GRAPH---###
- cd $WorkDir
- # getting all hosts from DB
- if [ $DebugLevel = 1 ]; then echo "mysql > hosts"; fi
- if [ $StatusBasedGraph = 1 ]; then
- AllHosts=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword lb_base -e "SELECT ip, id FROM my_device_list WHERE graph = '1' AND status = '1'" 2>>mon_graph.error`
- else
- AllHosts=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword lb_base -e "SELECT ip, id FROM my_device_list WHERE graph = '1'" 2>>mon_graph.error`
- fi
- for HostID in `echo "$AllHosts" | cut -f2 2>>mon_graph.error`
- do
- if [ $DebugLevel = 1 ]; then echo "processing $HostID..."; fi
- HostIP=`echo "$AllHosts" | grep -w "$HostID" | cut -f1 2>>mon_graph.error`
- # getting all graph settings for HostID
- GraphOptions=`$MysqlPath --disable-pager -B -N -h $MysqlHost -u$MysqlUser -p$MysqlPassword $MysqlDB -e "SELECT graphid, graphdir, target, options, type FROM graph WHERE id = '$HostID'" 2>>mon_graph.error`
- #echo "$GraphOptions"
- # check if there are settings
- if [ -z "$GraphOptions" ]; then
- if [ $DebugLevel = 1 ]; then echo "no graph options for $HostID"; fi
- else
- # clearing current config
- echo -n > $ConfigDir/$HostID.conf
- wdw=0
- for GraphID in `echo "$GraphOptions" | cut -f1 2>>mon_graph.error`
- do
- #echo $GraphID
- if [ $DebugLevel = 1 ]; then echo -n " -- processing $GraphID... "; fi
- # write config based on current settings
- GraphDir=`echo "$GraphOptions" | grep -w "$GraphID" | cut -f2 2>>mon_graph.error`
- GraphTarget=`echo "$GraphOptions" | grep -w "$GraphID" | cut -f3 2>>mon_graph.error`
- GraphOpt=`echo "$GraphOptions" | grep -w "$GraphID" | cut -f4 2>>mon_graph.error`
- GraphType=`echo "$GraphOptions" | grep -w "$GraphID" | cut -f5 2>>mon_graph.error`
- if [ $wdw = 0 ]; then
- echo "WorkDir: $GraphDir" >> $ConfigDir/$HostID.conf
- echo "EnableIPv6: $IPv6" >> $ConfigDir/$HostID.conf
- echo "" >> $ConfigDir/$HostID.conf
- wdw=1
- fi
- echo "Target[$HostID-$GraphID]: $GraphTarget" >> $ConfigDir/$HostID.conf
- echo "Options[$HostID-$GraphID]: $GraphOpt" >> $ConfigDir/$HostID.conf
- echo "Title[$HostID-$GraphID]: whatever" >> $ConfigDir/$HostID.conf
- case "$GraphType" in
- speed)
- echo "MaxBytes[$HostID-$GraphID]: 12500000" >> $ConfigDir/$HostID.conf
- echo "XSize[$HostID-$GraphID]: 600" >> $ConfigDir/$HostID.conf
- echo "YSize[$HostID-$GraphID]: 150" >> $ConfigDir/$HostID.conf
- ;;
- pinglat)
- echo "MaxBytes[$HostID-$GraphID]: 1000" >> $ConfigDir/$HostID.conf
- echo "AbsMax[$HostID-$GraphID]: 3000" >> $ConfigDir/$HostID.conf
- echo "YLegend[$HostID-$GraphID]: ping time (ms)" >> $ConfigDir/$HostID.conf
- echo "ShortLegend[$HostID-$GraphID]: ms" >> $ConfigDir/$HostID.conf
- echo "XSize[$HostID-$GraphID]: 600" >> $ConfigDir/$HostID.conf
- echo "YSize[$HostID-$GraphID]: 150" >> $ConfigDir/$HostID.conf
- ;;
- pinglos)
- echo "MaxBytes[$HostID-$GraphID]: 100" >> $ConfigDir/$HostID.conf
- echo "AbsMax[$HostID-$GraphID]: 101" >> $ConfigDir/$HostID.conf
- echo "YLegend[$HostID-$GraphID]: % packet loss" >> $ConfigDir/$HostID.conf
- echo "ShortLegend[$HostID-$GraphID]: %" >> $ConfigDir/$HostID.conf
- echo "WithPeak[$HostID-$GraphID]: ymwd" >> $ConfigDir/$HostID.conf
- echo "Unscaled[$HostID-$GraphID]: dwmy" >> $ConfigDir/$HostID.conf
- echo "Colours[$HostID-$GraphID]: Col1#EB233B,Col2#EB233B,Col3#EB233B,Col4#EB233B" >> $ConfigDir/$HostID.conf
- echo "XSize[$HostID-$GraphID]: 600" >> $ConfigDir/$HostID.conf
- echo "YSize[$HostID-$GraphID]: 700" >> $ConfigDir/$HostID.conf
- ;;
- *)
- echo "MaxBytes[$HostID-$GraphID]: 12500000" >> $ConfigDir/$HostID.conf
- echo "XSize[$HostID-$GraphID]: 600" >> $ConfigDir/$HostID.conf
- echo "YSize[$HostID-$GraphID]: 150" >> $ConfigDir/$HostID.conf
- ;;
- esac
- echo "" >> $ConfigDir/$HostID.conf
- # checking if GraphDir exists
- # if not - creating it
- if [ -d "$GraphDir" ]; then
- if [ $DebugLevel = 1 ]; then echo "okay"; fi
- else
- mkdir -p $GraphDir 2>>mon_graph.error
- if [ $DebugLevel = 1 ]; then echo "okay"; fi
- fi
- done
- # run mrtg
- env LANG=C $MRTGPath $ConfigDir/$HostID.conf 2>&1 >>mon_graph.error
- fi
- done
- if [ $DebugLevel = 1 ]; then echo "completed, check $WorkDir/mon_graph.error for errors..."; fi
- fi # if enabled
- #if [ $DebugLevel = 1 ]; then echo "module disabled"; fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement