From: Andy Witter Date: Fri, 3 May 2013 14:18:48 +0000 (-0400) Subject: add generation of config files for monitoring X-Git-Tag: GenaSYS-2.3.6~26 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=a2f324298b9f1e597b7a10db2d378d02891e1eec;p=contrib%2Fpines%2Fgenasys.git add generation of config files for monitoring --- diff --git a/GenaSYS.sh b/GenaSYS.sh index 84a60cf..b2e1385 100755 --- a/GenaSYS.sh +++ b/GenaSYS.sh @@ -54,6 +54,7 @@ done 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" @@ -1166,6 +1167,7 @@ MEMCACHE01_IP="${PRIVATENET}.151" 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 }')" @@ -2138,45 +2140,35 @@ if ! echo "${REPORTS_NFS_HOSTNAME}" | grep -q "reporter0\|db0" 2>/dev/null 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 @@ -2185,6 +2177,7 @@ printf "\tmembers ${3// /,}\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" @@ -2202,8 +2195,39 @@ do 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" @@ -2367,6 +2391,7 @@ do 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 @@ -2410,6 +2435,7 @@ printf " |\r";sleep 0.05; printf " /\r";sleep 0.05; printf -- ' - \r';sleep 0.05 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"