Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # MySql Definitions
- MYSQL="/usr/bin/mysql -fN --user=XXX --password=************* --host=xx.xxxxx.xx NMS"
- # Nagios-Path (where to put the output)
- NAGIOSINCLUDE=/usr/local/nagios/etc/dinao.conf
- echo "# File written on `date`" >$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "# # # # # # # # # # # # HOSTS" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- TABLENAME="HOSTS"
- LASTID=`echo "SELECT ID FROM $TABLENAME ORDER BY ID DESC LIMIT 1;" | $MYSQL`
- ID=1
- while [ $ID -le $LASTID ]; do
- ACTIVE=`echo "SELECT ACTIVE FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- LINEPREFIX=""
- if [ $ACTIVE != "YES" ]; then
- LINEPREFIX="# "
- fi
- NAME=`echo "SELECT NAME FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- ALIAS=`echo "SELECT ALIAS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- ADDRESS=`echo "SELECT ADDRESS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- CONTACT_GROUP_LIST=`echo "SELECT CONTACT_GROUPS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- COMMENT=`echo "SELECT COMMENT FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- CHECK_COMMAND=`echo "SELECT CHECK_COMMAND FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- MAX_CHECK_ATTEMPTS=`echo "SELECT MAX_CHECK_ATTEMPTS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- NOTIFICATION_INTERVAL=`echo "SELECT NOTIFICATION_INTERVAL FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- NOTIFICATION_PERIOD=`echo "SELECT NOTIFICATION_PERIOD FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- NOTIFICATION_OPTIONS=`echo "SELECT NOTIFICATION_OPTIONS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- SERVICE_CHECK_LIST=`echo "SELECT SERVICE_CHECKS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- NUMCONTACT_GROUPS=`echo $CONTACT_GROUP_LIST | tr ',' ' ' | wc -w`
- CONTACTNUM=1
- CONTACT_GROUPS=""
- while [ $CONTACTNUM -le $NUMCONTACT_GROUPS ]; do
- CONTACTID=`echo $CONTACT_GROUP_LIST | awk -F , '{print $'$CONTACTNUM'}'`
- if [ $CONTACTNUM -ne 1 ]; then CONTACT_GROUPS=$CONTACT_GROUPS","; fi
- NEXTCONTACT=`echo "SELECT CONTACTGROUP_NAME FROM CONTACTGROUPS WHERE ID = $CONTACTID;" | $MYSQL`
- CONTACT_GROUPS="$CONTACT_GROUPS$NEXTCONTACT"
- CONTACTNUM=$[$CONTACTNUM+1]
- done
- echo "$LINEPREFIX#" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX# Host: $NAME" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX# $COMMENT" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX################################" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX define host {" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX host_name $NAME" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX alias $ALIAS" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX address $ADDRESS" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX check_command $CHECK_COMMAND" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX max_check_attempts $MAX_CHECK_ATTEMPTS" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX notification_interval $NOTIFICATION_INTERVAL" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX notification_period $NOTIFICATION_PERIOD" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX notification_options $NOTIFICATION_OPTIONS" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX contact_groups $CONTACT_GROUPS" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX }" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "# SERVICES for Host: $NAME" >>$NAGIOSINCLUDE
- TABLENAME2="SERVICES"
- if [ $SERVICE_CHECK_LIST = "" ]; then echo "# No Service-Checks for Host: $NAME" >>$NAGIOSINCLUDE; fi
- NUMSERVICE_CHECKS=`echo $SERVICE_CHECK_LIST | tr ',' ' ' | wc -w`
- SERVICE_CHECKNUM=1
- SERVICE_CHECKS=""
- while [ $SERVICE_CHECKNUM -le $NUMSERVICE_CHECKS ]; do
- SERVICEID=`echo $SERVICE_CHECK_LIST | awk -F , '{print $'$SERVICE_CHECKNUM'}'`
- SERVICENAME=`echo "SELECT NAME FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- ACTIVE_CHECKS_ENABLED=`echo "SELECT ACTIVE_CHECKS_ENABLED FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- PASSIVE_CHECKS_ENABLED=`echo "SELECT PASSIVE_CHECKS_ENABLED FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- OBSESS_OVER_SERVICE=`echo "SELECT OBSESS_OVER_SERVICE FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- NOTIFICATIONS_ENABLED=`echo "SELECT NOTIFICATIONS_ENABLED FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- EVENT_HANDLER_ENABLED=`echo "SELECT EVENT_HANDLER_ENABLED FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- FLAP_DETECTION_ENABLED=`echo "SELECT FLAP_DETECTION_ENABLED FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- PROCESS_PERF_DATA=`echo "SELECT PROCESS_PERF_DATA FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- RETAIN_STATUS_INFORMATION=`echo "SELECT RETAIN_STATUS_INFORMATION FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- RETAIN_NONSTATUS_INFORMATION=`echo "SELECT RETAIN_NONSTATUS_INFORMATION FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- REGISTER=`echo "SELECT REGISTER FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- PARALLELIZE_CHECK=`echo "SELECT PARALLELIZE_CHECK FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- IS_VOLATILE=`echo "SELECT IS_VOLATILE FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- CHECK_FRESHNESS=`echo "SELECT CHECK_FRESHNESS FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- FRESHNESS_THRESHOLD=`echo "SELECT FRESHNESS_THRESHOLD FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- CHECK_PERIOD=`echo "SELECT CHECK_PERIOD FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- MAX_CHECK_ATTEMPTS=`echo "SELECT MAX_CHECK_ATTEMPTS FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- NORMAL_CHECK_INTERVAL=`echo "SELECT NORMAL_CHECK_INTERVAL FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- RETRY_CHECK_INTERVAL=`echo "SELECT RETRY_CHECK_INTERVAL FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- NOTIFICATION_INTERVAL=`echo "SELECT NOTIFICATION_INTERVAL FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- NOTIFICATION_PERIOD=`echo "SELECT NOTIFICATION_PERIOD FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- NOTIFICATION_OPTIONS=`echo "SELECT NOTIFICATION_OPTIONS FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- SERVICE_DESCRIPTION=`echo "SELECT SERVICE_DESCRIPTION FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- CHECK_COMMAND=`echo "SELECT CHECK_COMMAND FROM $TABLENAME2 WHERE ID =$SERVICEID;" | $MYSQL`
- echo "" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX# ServiceCheck: $SERVICENAME for Host: $NAME" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX# $SERVICE_DESCRIPTION" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX################################" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX define service{" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX host_name $NAME" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX service_description $SERVICENAME" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX contact_groups $CONTACT_GROUPS" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX active_checks_enabled $ACTIVE_CHECKS_ENABLED" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX passive_checks_enabled $PASSIVE_CHECKS_ENABLED" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX parallelize_check $PARALLELIZE_CHECK" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX obsess_over_service $OBSESS_OVER_SERVICE" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX check_freshness $CHECK_FRESHNESS" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX freshness_threshold $FRESHNESS_THRESHOLD" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX notifications_enabled $NOTIFICATIONS_ENABLED" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX event_handler_enabled $EVENT_HANDLER_ENABLED" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX flap_detection_enabled $FLAP_DETECTION_ENABLED" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX process_perf_data $PROCESS_PERF_DATA" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX retain_status_information $RETAIN_STATUS_INFORMATION" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX retain_nonstatus_information $RETAIN_NONSTATUS_INFORMATION" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX register $REGISTER" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX is_volatile $IS_VOLATILE" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX check_period $CHECK_PERIOD" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX max_check_attempts $MAX_CHECK_ATTEMPTS" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX normal_check_interval $NORMAL_CHECK_INTERVAL" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX retry_check_interval $RETRY_CHECK_INTERVAL" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX notification_interval $NOTIFICATION_INTERVAL" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX notification_period $NOTIFICATION_PERIOD" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX notification_options $NOTIFICATION_OPTIONS" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX check_command $CHECK_COMMAND" >>$NAGIOSINCLUDE
- echo "$LINEPREFIX}" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- SERVICE_CHECKNUM=$[$SERVICE_CHECKNUM+1]
- done
- echo "" >>$NAGIOSINCLUDE
- echo "$ID / $LASTID => $NAME"
- ID=$[$ID+1]
- # echo -n "."
- done
- echo "" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "# # # # # # # # # # # # CONTACTS" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- TABLENAME="CONTACTS"
- LASTID=`echo "SELECT ID FROM $TABLENAME ORDER BY ID DESC LIMIT 1;" | $MYSQL`
- ID=1
- while [ $ID -le $LASTID ]; do
- CONTACT_NAME=`echo "SELECT CONTACT_NAME FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- ALIAS=`echo "SELECT ALIAS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- SERVICE_NOTIFICATION_PERIOD=`echo "SELECT SERVICE_NOTIFICATION_PERIOD FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- HOST_NOTIFICATION_PERIOD=`echo "SELECT HOST_NOTIFICATION_PERIOD FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- SERVICE_NOTIFICATION_OPTIONS=`echo "SELECT SERVICE_NOTIFICATION_OPTIONS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- HOST_NOTIFICATION_OPTIONS=`echo "SELECT HOST_NOTIFICATION_OPTIONS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- SERVICE_NOTIFICATION_COMMANDS=`echo "SELECT SERVICE_NOTIFICATION_COMMANDS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- HOST_NOTIFICATION_COMMANDS=`echo "SELECT HOST_NOTIFICATION_COMMANDS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- EMAIL=`echo "SELECT EMAIL FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- PAGER=`echo "SELECT PAGER FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- COMMENT=`echo "SELECT COMMENT FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- echo "#" >>$NAGIOSINCLUDE
- echo "# $CONTACT_NAME" >>$NAGIOSINCLUDE
- echo "# $COMMENT" >>$NAGIOSINCLUDE
- echo "################################" >>$NAGIOSINCLUDE
- echo "define contact{" >>$NAGIOSINCLUDE
- echo " contact_name $CONTACT_NAME" >>$NAGIOSINCLUDE
- echo " alias $ALIAS" >>$NAGIOSINCLUDE
- echo " service_notification_period $SERVICE_NOTIFICATION_PERIOD" >>$NAGIOSINCLUDE
- echo " host_notification_period $HOST_NOTIFICATION_PERIOD" >>$NAGIOSINCLUDE
- echo " service_notification_options $SERVICE_NOTIFICATION_OPTIONS" >>$NAGIOSINCLUDE
- echo " host_notification_options $HOST_NOTIFICATION_OPTIONS" >>$NAGIOSINCLUDE
- echo " service_notification_commands $SERVICE_NOTIFICATION_COMMANDS" >>$NAGIOSINCLUDE
- echo " host_notification_commands $HOST_NOTIFICATION_COMMANDS" >>$NAGIOSINCLUDE
- echo " email $EMAIL" >>$NAGIOSINCLUDE
- echo " pager $PAGER" >>$NAGIOSINCLUDE
- echo " }" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- ID=$[$ID+1]
- done
- echo "" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "# # # # # # # # # # # # CONTACTGROUPS" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- TABLENAME="CONTACTGROUPS"
- LASTID=`echo "SELECT ID FROM $TABLENAME ORDER BY ID DESC LIMIT 1;" | $MYSQL`
- ID=1
- while [ $ID -le $LASTID ]; do
- CONTACTGROUP_NAME=`echo "SELECT CONTACTGROUP_NAME FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- ALIAS=`echo "SELECT ALIAS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- COMMENT=`echo "SELECT COMMENT FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- MEMBERLIST=`echo "SELECT MEMBERS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- NUMMEMBERS=`echo $MEMBERLIST | tr ',' ' ' | wc -w`
- MEMBERNUM=1
- MEMBERS=""
- while [ $MEMBERNUM -le $NUMMEMBERS ]; do
- MEMBERID=`echo $MEMBERLIST | awk -F , '{print $'$MEMBERNUM'}'`
- if [ $MEMBERNUM -ne 1 ]; then MEMBERS=$MEMBERS","; fi
- NEXTMEMBER=`echo "SELECT CONTACT_NAME FROM CONTACTS WHERE ID = $MEMBERID;" | $MYSQL`
- MEMBERS="$MEMBERS$NEXTMEMBER"
- MEMBERNUM=$[$MEMBERNUM+1]
- done
- echo "#" >>$NAGIOSINCLUDE
- echo "# $CONTACTGROUP_NAME" >>$NAGIOSINCLUDE
- echo "# $COMMENT" >>$NAGIOSINCLUDE
- echo "################################" >>$NAGIOSINCLUDE
- echo "define contactgroup{" >>$NAGIOSINCLUDE
- echo " contactgroup_name $CONTACTGROUP_NAME" >>$NAGIOSINCLUDE
- echo " alias $ALIAS" >>$NAGIOSINCLUDE
- echo " members $MEMBERS" >>$NAGIOSINCLUDE
- echo " }" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- ID=$[$ID+1]
- done
- echo "" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- echo "# # # # # # # # # # # # HOSTGROUPS" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- TABLENAME="HOSTGROUPS"
- LASTID=`echo "SELECT ID FROM $TABLENAME ORDER BY ID DESC LIMIT 1;" | $MYSQL`
- ID=1
- while [ $ID -le $LASTID ]; do
- HOSTGROUP_NAME=`echo "SELECT HOSTGROUP_NAME FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- ALIAS=`echo "SELECT ALIAS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- CONTACTLIST=`echo "SELECT CONTACT_GROUPS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- NUMCONTACTS=`echo $CONTACTLIST | tr ',' ' ' | wc -w`
- CONTACTNUM=1
- CONTACT_GROUPS=""
- while [ $CONTACTNUM -le $NUMCONTACTS ]; do
- CONTACTID=`echo $CONTACTLIST | awk -F , '{print $'$CONTACTNUM'}'`
- if [ $CONTACTNUM -ne 1 ]; then CONTACT_GROUPS=$CONTACT_GROUPS","; fi
- NEXTCONTACT=`echo "SELECT CONTACTGROUP_NAME FROM CONTACTGROUPS WHERE ID = $CONTACTID;" | $MYSQL`
- CONTACT_GROUPS="$CONTACT_GROUPS$NEXTCONTACT"
- CONTACTNUM=$[$CONTACTNUM+1]
- done
- MEMBERLIST=`echo "SELECT MEMBERS FROM $TABLENAME WHERE ID =$ID;" | $MYSQL`
- NUMMEMBERS=`echo $MEMBERLIST | tr ',' ' ' | wc -w`
- MEMBERNUM=1
- MEMBERS=""
- while [ $MEMBERNUM -le $NUMMEMBERS ]; do
- MEMBERID=`echo $MEMBERLIST | awk -F , '{print $'$MEMBERNUM'}'`
- if [ $MEMBERNUM -ne 1 ]; then MEMBERS=$MEMBERS","; fi
- NEXTMEMBER=`echo "SELECT NAME FROM HOSTS WHERE ID = $MEMBERID;" | $MYSQL`
- MEMBERS="$MEMBERS$NEXTMEMBER"
- MEMBERNUM=$[$MEMBERNUM+1]
- done
- echo "#" >>$NAGIOSINCLUDE
- echo "# $HOSTGROUP_NAME" >>$NAGIOSINCLUDE
- echo "################################" >>$NAGIOSINCLUDE
- echo "define hostgroup{" >>$NAGIOSINCLUDE
- echo " hostgroup_name $HOSTGROUP_NAME" >>$NAGIOSINCLUDE
- echo " alias $ALIAS" >>$NAGIOSINCLUDE
- # echo " contact_groups $CONTACT_GROUPS" >>$NAGIOSINCLUDE
- echo " members $MEMBERS" >>$NAGIOSINCLUDE
- echo " }" >>$NAGIOSINCLUDE
- echo "" >>$NAGIOSINCLUDE
- ID=$[$ID+1]
- done
- echo""
- # FIN
Add Comment
Please, Sign In to add comment