WD=$(dirname $(readlink -f $0))
CUSTOMDIR="$WD/custom"
EG_VERSION="2.3.6"
+UBUNTU_CODENAME="precise"
LICENSE="$WD/License.txt"
TEMPLATEDIR="$WD/templates"
DEFAULT_PRIVATE_NET="10.0.1"
MEMCACHE02_IP="${PRIVATENET}.152"
BACKUP01_IP="${PRIVATENET}.171"
MONITOR01_IP="${PRIVATENET}.201"
+MONITOR02_IP="${PRIVATENET}.202"
ADMIN01_IP="${PRIVATENET}.211"
MASTER_DB="$(echo $MACHINES_DB_ONLY | awk '{ print $1 }')"
Reports_NFS_Host
fi
-### Configure basic monitoring for non brick nodes.
-for NAGINODE in $HOSTNAMES_NO_BRICKS
+##### Configure basic monitoring for non brick nodes.
+for NAGINODE in ${MACHINES_NO_BRICKS}
do
- ### hosts.cfg
+ ### Generate the hosts.cfg file
MONITOR_HOST=$( echo "${NAGINODE}" | tr '[:lower:]' '[:upper:]' )
- if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ]
- then
- printf 'define host {\n' >>$TMPNAGIHOSTS;printf "\thost_name\t${PRFX}-${NAGINODE}\n" >>$TMPNAGIHOSTS
- printf "\talias\t\t${PRFX}-$NAGINODE\n" >>$TMPNAGIHOSTS
- MACHINES_LIST="$MACHINES_LIST$(printf "${PRFX}-$NAGINODE ")"
- else
- printf 'define host {\n' >>$TMPNAGIHOSTS;printf "\thost_name\t${NAGINODE}\n" >>$TMPNAGIHOSTS
- printf "\talias\t\t$NAGINODE\n" >>$TMPNAGIHOSTS
- MACHINES_LIST="$MACHINES_LIST$(printf "$NAGINODE ")"
- fi
+ printf 'define host {\n' >>$TMPNAGIHOSTS;printf "\thost_name\t${NAGINODE}\n" >>$TMPNAGIHOSTS
+ printf "\talias\t\t$NAGINODE\n" >>$TMPNAGIHOSTS
+ MACHINES_LIST="$MACHINES_LIST$(printf "$NAGINODE ")"
if echo $NAGINODE | grep lvs0
then
- eval printf "\\\taddress\\\t\\\t\$${MONITOR_HOST}_PRIVATE_IP\\\n" >>$TMPNAGIHOSTS
+ eval printf "\\\taddress\\\t\\\t\$${MONITOR_HOST#*-}_PRIVATE_IP\\\n" >>$TMPNAGIHOSTS
else
- eval printf "\\\taddress\\\t\\\t\$${MONITOR_HOST}_IP\\\n" >>$TMPNAGIHOSTS
+ eval printf "\\\taddress\\\t\\\t\$${MONITOR_HOST#*-}_IP\\\n" >>$TMPNAGIHOSTS
fi
printf '\tuse\t\tgeneric-host\n}\n' >>$TMPNAGIHOSTS
+
done
-### Build lists to generate hostgroups for Icinga/Nagios
+### Build lists to generate hostgroups for Icinga/Nagios monitoring server
OSRF_MACHINES_LIST="$BRICKDRONELIST $MACHINES_UTILITY $MACHINES_SIP_ONLY $MACHINES_REPORTER"
ALL_MACHINES_LIST="$BRICKDRONELIST $MACHINES_LIST ${REPORTS_NFS_HOSTNAME}"
echo $OSRF_MACHINES_LIST
-### Generate hostgroups file
+
+### Define the temp hostgroups.cfg file
TMPNAGHOSTGROUPS="$TMPFOLDER/hostgroups.cfg"
-#printf 'define hostgroup {\n' >>$TMPNAGHOSTGROUPS
-#printf "\thostgroup_name all\n" >>$TMPNAGHOSTGROUPS
-#printf "\talias All Servers\n" >>$TMPNAGHOSTGROUPS
-#printf "\tmembers *\n" >>$TMPNAGHOSTGROUPS
-#printf '}\n' >>$TMPNAGHOSTGROUPS
-### Generate block for hostgroups.cfg for Icinga/Nagios monitoring
+### Generate block for hostgroups.cfg for Icinga/Nagios monitoring server.
GenHostGroup () { ### Usage: $0 "hostgroup_name" "alias" "members"
printf 'define hostgroup {\n' >>$TMPNAGHOSTGROUPS
printf "\thostgroup_name ${1}\n" >>$TMPNAGHOSTGROUPS
printf '}\n' >>$TMPNAGHOSTGROUPS
}
+### Generate hostgroups.cfg file
GenHostGroup "evergreen-heads" "Evergreen Head Servers" "$BRICKHEADLIST"
GenHostGroup "opensrf-nodes" "Opensrf Nodes" "$OSRF_MACHINES_LIST"
GenHostGroup "sip-servers" "SIP Servers" "$MACHINES_SIP_ONLY"
cp -f "$TMPFOLDER/hosts.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects"
cp -f "$TMPFOLDER/hostgroups.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects"
cp -f "$TEMPLATEDIR/monitor/services.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects"
+ cp -f "$TEMPLATEDIR/monitor/commands.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects"
+
+ ### Generate sources.list for apt to install icinga
+ mkdir -p "${OUTDIR}/${MONITOR}/etc/apt/sources.list.d/"
+ echo "#PPA for Icinga monitoring for Evergreen" >> "${OUTDIR}/${MONITOR}/etc/apt/sources.list.d/icinga_ppa.list"
+ echo "deb http://ppa.launchpad.net/formorer/icinga/ubuntu $UBUNTU_CODENAME main" >> "${OUTDIR}/${MONITOR}/etc/apt/sources.list.d/icinga_ppa.list"
+ echo "deb-src http://ppa.launchpad.net/formorer/icinga/ubuntu $UBUNTU_CODENAME main" >> "${OUTDIR}/${MONITOR}/etc/apt/sources.list.d/icinga_ppa.list"
done
+### Generate npre setup script for all monitored hosts.
+TMPSETUPMONITOR="/$TMPFOLDER/.setup_monitoring.sh"
+echo sed -i \'s^allowed_hosts=127.0.0.1^#allowed_hosts=127.0.0.1^g\' "/etc/nagios/nrpe.cfg" >>$TMPSETUPMONITOR
+for NAGINODE in ${MACHINES_MONITOR} ## strip prefix
+do
+ MONITOR_SERVER=$( echo "${NAGINODE}" | tr '[:lower:]' '[:upper:]' )
+ ### remove prefix ${MONITOR_SERVER#*-}
+ echo ${MACHINES_MONITOR#*-}
+ THIS_MONITOR_SERVER_IP=$(eval echo \$${MONITOR_SERVER#*-}_IP)
+ if [ -z "$MONITOR_SERVER_IP_LIST" ]
+ then
+ MONITOR_SERVER_IP_LIST="$THIS_MONITOR_SERVER_IP"
+ else
+ MONITOR_SERVER_IP_LIST="$MONITOR_SERVER_IP_LIST $THIS_MONITOR_SERVER_IP"
+ fi
+done
+echo MONITOR_SERVER_IP_LIST is: $MONITOR_SERVER_IP_LIST
+printf "echo \"allowed_hosts=${MONITOR_SERVER_IP_LIST// /,}\" >> /etc/nagios/nrpe.cfg\n" >>$TMPSETUPMONITOR
+echo sed -i \'s^dont_blame_nrpe=0^dont_blame_nrpe=1^g\' "/etc/nagios/nrpe.cfg" >>$TMPSETUPMONITOR
+chmod 755 $TMPSETUPMONITOR
+
+
+
+
### Write config info file.
echo >> "$NETCFGFILE"
echo "Cluster Public (shared) IP Address set to : $CLUSTERIPADDRESS" >> "$NETCFGFILE"
mkdir ../setup_${SUBFOLDER}
mv ${SUBFOLDER}_apt.list ../setup_${SUBFOLDER}
cp $TMPFOLDER/debconf-settings ../setup_${SUBFOLDER}
+ cp $TMPSETUPMONITOR ../setup_${SUBFOLDER}
touch ../setup_${SUBFOLDER}/.osrf_node
sed -i "s^HOSTNAME^${SUBFOLDER}^g" ../setup_${SUBFOLDER}/debconf-settings
cd $NODE_FOLDER
mkdir "setup_${NODE_FOLDER}"
cp "$TEMPLATEDIR/setup.sh" "setup_${NODE_FOLDER}/setup_$NODE_FOLDER.sh"
+cp "$TMPSETUPMONITOR" "setup_${NODE_FOLDER}"
chmod 755 "setup_${NODE_FOLDER}/setup_$NODE_FOLDER.sh"
cp "$TEMPLATEDIR/setup-vars" "setup_${NODE_FOLDER}/setup-vars"
cp "$TEMPLATEDIR/setup-functions" "setup_${NODE_FOLDER}/setup-functions"