diff options
| author | Petter Reinholdtsen <pere@hungry.com> | 2010-01-06 19:22:24 +0000 | 
|---|---|---|
| committer | Petter Reinholdtsen <pere@hungry.com> | 2010-01-06 19:22:24 +0000 | 
| commit | 2663b94bc3c1d86839d8d71fcb98b9b9e01c782a (patch) | |
| tree | ae0ef4787a3bdbcbdc6b117024bec768405bfce4 | |
| parent | be7fafe44ab8ef50f4bcd2bdd3ff339796d223e0 (diff) | |
| download | sitesummary-2663b94bc3c1d86839d8d71fcb98b9b9e01c782a.tar.gz sitesummary-2663b94bc3c1d86839d8d71fcb98b9b9e01c782a.tar.bz2 sitesummary-2663b94bc3c1d86839d8d71fcb98b9b9e01c782a.tar.xz | |
Implement draft Nagios autoconfiguration.
| -rw-r--r-- | Makefile | 6 | ||||
| -rw-r--r-- | debian/changelog | 1 | ||||
| -rwxr-xr-x | debian/sitesummary.cron.daily | 30 | ||||
| -rw-r--r-- | debian/sitesummary.install | 1 | ||||
| -rw-r--r-- | nagios-templates.cfg | 123 | ||||
| -rw-r--r-- | nagios.cfg | 59 | 
6 files changed, 219 insertions, 1 deletions
| @@ -55,6 +55,12 @@ install-server:  	$(INSTALL) -d $(DESTDIR)/usr/share/munin/plugins/.  	$(INSTALL) munin-plugin $(DESTDIR)/usr/share/munin/plugins/sitesummary_sites +	$(INSTALL) -d $(DESTDIR)/etc/nagios3 +	$(INSTALL) nagios.cfg \ +		$(DESTDIR)/etc/nagios3/sitesummary.cfg +	$(INSTALL) nagios-templates.cfg \ +		$(DESTDIR)/etc/nagios3/sitesummary-templates.cfg +  install-client:  	$(INSTALL) -d $(DESTDIR)$(sbindir)  	$(INSTALL) sitesummary-client sitesummary-upload $(DESTDIR)$(sbindir) diff --git a/debian/changelog b/debian/changelog index bdadf3f..b3aa29d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,7 @@ sitesummary (0.0.51) UNRELASED; urgency=low    * Make sure the generated Nagios host entries uses a template.    * Make sure cron job exit imediately and without an error code if      the sitesummary package is removed but not purged (Closes: #563066). +  * Implement draft Nagios autoconfiguration.   -- Finn-Arne Johansen <finnarne@debian>  Wed, 18 Nov 2009 08:21:12 +0100 diff --git a/debian/sitesummary.cron.daily b/debian/sitesummary.cron.daily index 9f0c5b6..777ef03 100755 --- a/debian/sitesummary.cron.daily +++ b/debian/sitesummary.cron.daily @@ -12,6 +12,12 @@ nodes=/usr/sbin/sitesummary-nodes  # the default munin configuration.  MUNINDIR=/var/lib/sitesummary +# Specifies where to save the automatically generated nagios +# configuration.  Add NAGIOSCFG="/etc/nagios3/sitesummary.cfg" to +# /etc/default/nagios3 toget Nagios to use this automatically +# generated configuration +NAGIOSDIR=/var/lib/sitesummary +  [ -f /etc/sitesummary/collector.cfg ] && . /etc/sitesummary/collector.cfg  # Exit imediately if the package is removed but nor purged @@ -66,11 +72,33 @@ EOF  	mv $MUNINDIR/munin.conf.new $MUNINDIR/munin.conf  } -# Only enable if munin is installed. +generate_nagios_config() { +    ( +	printf "# Generated "; date + +	sitesummary-nodes -n + +	if [ -f $NAGIOSDIR/nagios-generated.cfg.post ] ; then +	    cat $NAGIOSDIR/nagios-generated.cfg.post +	fi + +	true +    ) > $NAGIOSDIR/nagios-generated.cfg.new && \ +        chmod a+r $NAGIOSDIR/nagios-generated.cfg.new && \ +        mv $NAGIOSDIR/nagios-generated.cfg.new $NAGIOSDIR/nagios-generated.cfg +} + +# Only enable if munin and sitesummary is installed.  if [ -f /etc/munin/munin.conf ] && [ -x /usr/sbin/sitesummary-nodes ]; then      generate_munin_config  fi +# Only enable if nagios v3 and sitesummary is installed. +if [ -f /etc/init.d/nagios3 ] && [ -x /usr/sbin/sitesummary-nodes ]; then +    generate_nagios_config +    invoke-rc.d nagios3 reload +fi +  [ -d $entriesdir ] && remove_old_entries  # Update the web report once a day diff --git a/debian/sitesummary.install b/debian/sitesummary.install index 60673d2..1d9d629 100644 --- a/debian/sitesummary.install +++ b/debian/sitesummary.install @@ -1,4 +1,5 @@  debian/tmp/etc/apache2 +debian/tmp/etc/nagios3  debian/tmp/usr/lib/cgi-bin  debian/tmp/usr/lib/sitesummary/*-summary  debian/tmp/usr/sbin/sitesummary-makewebreport diff --git a/nagios-templates.cfg b/nagios-templates.cfg new file mode 100644 index 0000000..eafcd74 --- /dev/null +++ b/nagios-templates.cfg @@ -0,0 +1,123 @@ +define timeperiod { +    timeperiod_name 24x7 +    alias           24 Hours A Day, 7 Days A Week +    sunday          00:00-24:00 +    monday          00:00-24:00 +    tuesday         00:00-24:00 +    wednesday       00:00-24:00 +    thursday        00:00-24:00 +    friday          00:00-24:00 +    saturday        00:00-24:00 +} + +define command { +    command_name    notify-by-nothing +    command_line    /bin/true +} + +define command{ +    command_name    notify-by-email +    command_line    /usr/bin/printf "%b" "***** Nagios  *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nState: $SERVICESTATE$ for $SERVICEDURATION$\nAddress: $HOSTADDRESS$\n\nInfo:\n\n$SERVICEOUTPUT$\n\nDate/Time: $LONGDATETIME$\n\nACK by: $SERVICEACKAUTHOR$\nComment: $SERVICEACKCOMMENT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ alert $NOTIFICATIONNUMBER$ - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ +} + +define contact { +    contact_name                   root +    alias                          Root +    host_notification_period       24x7 +    service_notification_period    24x7 +    host_notification_options      d,r +    service_notification_options   w,u,c,r +    host_notification_commands     notify-by-nothing +    service_notification_commands  notify-by-nothing +    email                          root@postoffice +} + +define contactgroup{ +    contactgroup_name              admins +    alias                          Nagios Administrators +    members                        root +} + +define host { +    name server-host +    check_command check-host-alive +    max_check_attempts 10 +    event_handler_enabled 1 +    flap_detection_enabled 1 +    process_perf_data 1 +    retain_status_information 1 +    retain_nonstatus_information 1 +    notification_interval 0 +    notification_period 24x7 +    notifications_enabled 1 +    failure_prediction_enabled 1 +    register 0 +    notification_options d,u,r +    contact_groups admins +} + +define service { +    name server-service +    is_volatile 0 +    max_check_attempts 4 +    normal_check_interval 5 +    retry_check_interval 1 +    active_checks_enabled 1 +    passive_checks_enabled 1 +    check_period 24x7 +    parallelize_check 1 +    obsess_over_service 1 +    check_freshness 0 +    event_handler_enabled 1 +    flap_detection_enabled 1 +    process_perf_data 1 +    retain_status_information 1 +    retain_nonstatus_information 1 +    notification_interval 0 +    notification_period 24x7 +    notifications_enabled 1 +    failure_prediction_enabled 1 +    register 0 +    notification_options w,u,c,r +    contact_groups admins +} + +define command{ +    command_name	check_disk +    command_line	/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ +} + +define command{ +    command_name	check_http +    command_line	/usr/lib/nagios/plugins/check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ +} + +define command{ +    command_name	check_load +    command_line	/usr/lib/nagios/plugins/check_load --warning=$ARG2$ --critical=$ARG2$ +} + +define command{ +    command_name	check_ping +    command_line	/usr/lib/nagios/plugins/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ +} + +define command{ +    command_name	check_ssh +    command_line	/usr/lib/nagios/plugins/check_ssh $HOSTADDRESS$ +} + +define command{ +    command_name	check_ntp +    command_line	/usr/lib/nagios/plugins/check_ntp -H $HOSTADDRESS$ +} + +define command{ +    command_name	check_tcp +    command_line	/usr/lib/nagios/plugins/check_tcp -H $HOSTADDRESS$ -p $ARG1$ +} + +define command{ +    command_name	check-host-alive +    command_line	/usr/lib/nagios/plugins/check_ping -H $HOSTADDRESS$ -w 5000,100% -c 5000,100% -p 1 +} diff --git a/nagios.cfg b/nagios.cfg new file mode 100644 index 0000000..1038c99 --- /dev/null +++ b/nagios.cfg @@ -0,0 +1,59 @@ +# Nagios configuration file for use with the sitesummary generated +# host and service list. + +cfg_file=/etc/nagios3/sitesummary-templates.cfg +cfg_file=/var/lib/sitesummary/nagios-generated.cfg +log_file=/var/log/nagios3/nagios.log +temp_file=/var/cache/nagios3/nagios.tmp +status_file=/var/cache/nagios3/status.dat +status_update_interval=15 +nagios_user=nagios +nagios_group=nagios + +log_archive_path=/var/log/nagios3/archives +command_check_interval=-1 + +command_file=/var/lib/nagios3/rw/nagios.cmd +lock_file=/var/run/nagios3/nagios3.pid +p1_file=/usr/lib/nagios3/p1.pl +state_retention_file=/var/lib/nagios3/retention.dat +retention_update_interval=60 +sleep_time=0.25 +max_concurrent_checks=0 +service_reaper_frequency=10 +interval_length=60 +low_service_flap_threshold=5 +high_service_flap_threshold=20 +low_host_flap_threshold=5 +high_host_flap_threshold=20 +service_check_timeout=60 +host_check_timeout=30 +event_handler_timeout=30 +notification_timeout=30 +ocsp_timeout=5 +perfdata_timeout=5 +illegal_object_name_chars=`~!$%^&*|'"<>?,()= + +illegal_macro_output_chars=`~$&|'"<> + +admin_email=root + +admin_pager=pageroot + +object_cache_file=/var/cache/nagios3/objects.cache +service_inter_check_delay_method=s + +max_service_check_spread=30 +host_inter_check_delay_method=s + +max_host_check_spread=30 +auto_rescheduling_interval=30 +auto_rescheduling_window=180 +host_freshness_check_interval=60 +service_freshness_check_interval=60 +event_broker_options=-1 + +host_perfdata_file_mode=a +service_perfdata_file_mode=a +host_perfdata_file_processing_interval=0 +service_perfdata_file_processing_interval=0 | 
