Premier commit
This commit is contained in:
		
							
								
								
									
										59
									
								
								roles/icinga-kb/files/cfg/contacts_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								roles/icinga-kb/files/cfg/contacts_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| ############################################################################### | ||||
| # contacts.cfg | ||||
| ############################################################################### | ||||
|  | ||||
|  | ||||
|  | ||||
| ############################################################################### | ||||
| ############################################################################### | ||||
| # | ||||
| # CONTACTS | ||||
| # | ||||
| ############################################################################### | ||||
| ############################################################################### | ||||
|  | ||||
| # In this simple config file, a single contact will receive all alerts. | ||||
|  | ||||
| #define contact{ | ||||
| #	contact_name			root | ||||
| #	alias				Root | ||||
| #	service_notification_period	24x7 | ||||
| #	host_notification_period	24x7 | ||||
| #	service_notification_options	w,u,c,r | ||||
| #	host_notification_options	d,r | ||||
| #	service_notification_commands	notify-service-by-email | ||||
| #	host_notification_commands	notify-host-by-email | ||||
| #	email				root@localhost | ||||
| #	} | ||||
|  | ||||
|  | ||||
| define contact{ | ||||
|         contact_name                    admin | ||||
|         alias                           Administrateur | ||||
|         service_notification_period     24x7 | ||||
|         host_notification_period        24x7 | ||||
|         service_notification_options    w,u,c,r | ||||
|         host_notification_options       d,r | ||||
|         service_notification_commands   notify-service-by-email | ||||
|         host_notification_commands      notify-host-by-email | ||||
|         email                           kylian.barassin@gmail.com | ||||
|         } | ||||
|  | ||||
|  | ||||
|  | ||||
| ############################################################################### | ||||
| ############################################################################### | ||||
| # | ||||
| # CONTACT GROUPS | ||||
| # | ||||
| ############################################################################### | ||||
| ############################################################################### | ||||
|  | ||||
| # We only have one contact in this simple configuration file, so there is | ||||
| # no need to create more than one contact group. | ||||
|  | ||||
| define contactgroup{ | ||||
|         contactgroup_name       admins | ||||
|         alias                   Nagios Administrators | ||||
|         members                 admin | ||||
|         } | ||||
							
								
								
									
										13
									
								
								roles/icinga-kb/files/cfg/extinfo_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								roles/icinga-kb/files/cfg/extinfo_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| ## | ||||
| ## Extended Host and Service Information | ||||
| ## | ||||
|  | ||||
| define hostextinfo{ | ||||
|         hostgroup_name   debian-servers | ||||
|         notes            Debian GNU/Linux servers | ||||
| #       notes_url        http://webserver.localhost.localdomain/hostinfo.pl?host=netware1 | ||||
|         icon_image       base/debian.png | ||||
|         icon_image_alt   Debian GNU/Linux | ||||
|         vrml_image       debian.png | ||||
|         statusmap_image  base/debian.gd2 | ||||
|         } | ||||
							
								
								
									
										19
									
								
								roles/icinga-kb/files/cfg/generic-host_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								roles/icinga-kb/files/cfg/generic-host_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| # Generic host definition template - This is NOT a real host, just a template! | ||||
|  | ||||
| define host{ | ||||
|         name                            generic-host    ; The name of this host template | ||||
|         notifications_enabled           1       ; Host notifications are enabled | ||||
|         event_handler_enabled           1       ; Host event handler is enabled | ||||
|         flap_detection_enabled          1       ; Flap detection is enabled | ||||
|         failure_prediction_enabled      1       ; Failure prediction is enabled | ||||
|         process_perf_data               1       ; Process performance data | ||||
|         retain_status_information       1       ; Retain status information across program restarts | ||||
|         retain_nonstatus_information    1       ; Retain non-status information across program restarts | ||||
| 		check_command                   check-host-alive | ||||
| 		max_check_attempts              10 | ||||
| 		notification_interval           0 | ||||
| 		notification_period             24x7 | ||||
| 		notification_options            d,u,r | ||||
| 		contact_groups                  admins | ||||
|         register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! | ||||
|         } | ||||
							
								
								
									
										26
									
								
								roles/icinga-kb/files/cfg/generic-service_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								roles/icinga-kb/files/cfg/generic-service_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| # generic service template definition | ||||
| define service{ | ||||
|         name                            generic-service ; The 'name' of this service template | ||||
|         active_checks_enabled           1       ; Active service checks are enabled | ||||
|         passive_checks_enabled          1       ; Passive service checks are enabled/accepted | ||||
|         parallelize_check               1       ; Active service checks should be parallelized (disabling this can lead to major performance problems) | ||||
|         obsess_over_service             1       ; We should obsess over this service (if necessary) | ||||
|         check_freshness                 0       ; Default is to NOT check service 'freshness' | ||||
|         notifications_enabled           1       ; Service notifications are enabled | ||||
|         event_handler_enabled           1       ; Service event handler is enabled | ||||
|         flap_detection_enabled          1       ; Flap detection is enabled | ||||
|         failure_prediction_enabled      1       ; Failure prediction is enabled | ||||
|         process_perf_data               1       ; Process performance data | ||||
|         retain_status_information       1       ; Retain status information across program restarts | ||||
|         retain_nonstatus_information    1       ; Retain non-status information across program restarts | ||||
| 		notification_interval           0		; Only send notifications on status change by default. | ||||
| 		is_volatile                     0 | ||||
| 		check_period                    24x7 | ||||
| 		normal_check_interval           5 | ||||
| 		retry_check_interval            1 | ||||
| 		max_check_attempts              4 | ||||
| 		notification_period             24x7 | ||||
| 		notification_options            w,u,c,r | ||||
| 		contact_groups                  admins | ||||
|         register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! | ||||
|         } | ||||
							
								
								
									
										59
									
								
								roles/icinga-kb/files/cfg/hostgroups_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								roles/icinga-kb/files/cfg/hostgroups_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| # Some generic hostgroup definitions | ||||
|  | ||||
| define hostgroup { | ||||
|         hostgroup_name  all | ||||
| 		alias           All Servers | ||||
| 		members         * | ||||
|         } | ||||
|  | ||||
| define hostgroup { | ||||
|         hostgroup_name 	       localhost | ||||
| 		alias          Debian GNU/Linux Servers | ||||
| 		members        localhost   | ||||
|         } | ||||
|  | ||||
| define hostgroup {  | ||||
| 	hostgroup_name 	debian-servers  | ||||
| 	alias		Serveurs distant | ||||
| 	members        	s-infra, r-int, r-ext, s-adm, s-lb | ||||
| }  | ||||
|  | ||||
| define hostgroup {  | ||||
| 	hostgroup_name 	ssh-servers  | ||||
| 	alias 		acces SSH  | ||||
| 	members		s-adm, r-int, r-ext, localhost, s-lb-adm, s-infra-adm | ||||
| } | ||||
|  | ||||
| define hostgroup {  | ||||
| 	hostgroup_name dns-servers | ||||
| 	alias serveurs-dns  | ||||
| 	members s-infra | ||||
|  | ||||
| }   | ||||
|  | ||||
| define hostgroup {  | ||||
| 	hostgroup_name dhcp-servers | ||||
| 	alias serveurs-dhcp  | ||||
| 	members r-int, s-win  | ||||
| }  | ||||
|  | ||||
| define hostgroup { | ||||
|         hostgroup_name  http-servers | ||||
| 	alias           serveurs-web | ||||
| 	members         localhost | ||||
|         } | ||||
|  | ||||
|  | ||||
| define hostgroup{ | ||||
| 	hostgroup_name	windows-servers | ||||
| 	alias		windows-servers | ||||
| 	members		s-win | ||||
| } | ||||
|  | ||||
|  | ||||
| define hostgroup{ | ||||
| 	hostgroup_name	uptimegrp | ||||
| 	alias		uptimegrp | ||||
| 	members		r-int, r-ext, s-adm, s-win, s-lb | ||||
| } | ||||
|  | ||||
							
								
								
									
										13
									
								
								roles/icinga-kb/files/cfg/localhost.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								roles/icinga-kb/files/cfg/localhost.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in nagios2-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host     | ||||
|         host_name               localhost | ||||
|         alias                   Serveur monitoring | ||||
|         address                 localhost | ||||
|         } | ||||
|  | ||||
							
								
								
									
										59
									
								
								roles/icinga-kb/files/cfg/localhost_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								roles/icinga-kb/files/cfg/localhost_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in icinga-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host            ; Name of host template to use | ||||
|         host_name               localhost | ||||
|         alias                   localhost | ||||
|         address                 127.0.0.1 | ||||
|         } | ||||
|  | ||||
| # Define a service to check the disk space of the root partition | ||||
| # on the local machine.  Warning if < 20% free, critical if | ||||
| # < 10% free space on partition. | ||||
|  | ||||
| define service{ | ||||
|         use                             generic-service         ; Name of service template to use | ||||
|         host_name                       localhost | ||||
|         service_description             Disk Space | ||||
|         check_command                   check_all_disks!20%!10% | ||||
|         } | ||||
|  | ||||
|  | ||||
|  | ||||
| # Define a service to check the number of currently logged in | ||||
| # users on the local machine.  Warning if > 20 users, critical | ||||
| # if > 50 users. | ||||
|  | ||||
| define service{ | ||||
|         use                             generic-service         ; Name of service template to use | ||||
|         host_name                       localhost | ||||
|         service_description             Current Users | ||||
|         check_command                   check_users!20!50 | ||||
|         } | ||||
|  | ||||
|  | ||||
| # Define a service to check the number of currently running procs | ||||
| # on the local machine.  Warning if > 250 processes, critical if | ||||
| # > 400 processes. | ||||
|  | ||||
| define service{ | ||||
|         use                             generic-service         ; Name of service template to use | ||||
|         host_name                       localhost | ||||
|         service_description             Total Processes | ||||
| 		check_command                   check_procs!250!400 | ||||
|         } | ||||
|  | ||||
|  | ||||
|  | ||||
| # Define a service to check the load on the local machine.  | ||||
|  | ||||
| define service{ | ||||
|         use                             generic-service         ; Name of service template to use | ||||
|         host_name                       localhost | ||||
|         service_description             Current Load | ||||
| 		check_command                   check_load!5.0!4.0!3.0!10.0!6.0!4.0 | ||||
|         } | ||||
							
								
								
									
										13
									
								
								roles/icinga-kb/files/cfg/r-ext.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								roles/icinga-kb/files/cfg/r-ext.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in nagios2-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host            ; Name of host template to use | ||||
|         host_name               r-ext | ||||
|         alias                   Routeur externe | ||||
|         address                 192.168.200.253 | ||||
| 	parents			r-int | ||||
|         } | ||||
							
								
								
									
										13
									
								
								roles/icinga-kb/files/cfg/r-int.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								roles/icinga-kb/files/cfg/r-int.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in nagios2-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host            ; Name of host template to use | ||||
|         host_name               r-int | ||||
|         alias                   Routeur interne | ||||
|         address                 172.16.0.254 | ||||
| 	parents			localhost | ||||
|         } | ||||
							
								
								
									
										14
									
								
								roles/icinga-kb/files/cfg/s-adm.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								roles/icinga-kb/files/cfg/s-adm.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in nagios2-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host            ; Name of host template to use | ||||
|         host_name               s-adm | ||||
|         alias                   debian-servers | ||||
|         address                 192.168.99.99 | ||||
| 	parents			r-int | ||||
|         } | ||||
|  | ||||
							
								
								
									
										14
									
								
								roles/icinga-kb/files/cfg/s-infra-adm.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								roles/icinga-kb/files/cfg/s-infra-adm.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in nagios2-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host            ; Name of host template to use | ||||
|         host_name               s-infra-adm | ||||
|         alias                   debian-servers | ||||
|         address                 192.168.99.1 | ||||
| 	parents			s-adm | ||||
|         } | ||||
|  | ||||
							
								
								
									
										14
									
								
								roles/icinga-kb/files/cfg/s-infra.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								roles/icinga-kb/files/cfg/s-infra.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in nagios2-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host            ; Name of host template to use | ||||
|         host_name               s-infra | ||||
|         alias                   debian-servers | ||||
|         address                 172.16.0.1 | ||||
| 	parents			r-int | ||||
|         } | ||||
|  | ||||
							
								
								
									
										14
									
								
								roles/icinga-kb/files/cfg/s-lb-adm.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								roles/icinga-kb/files/cfg/s-lb-adm.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in nagios2-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host            ; Name of host template to use | ||||
|         host_name               s-lb-adm | ||||
|         alias                   debian-servers | ||||
|         address                 192.168.99.100 | ||||
| 	parents			s-adm | ||||
|         } | ||||
|  | ||||
							
								
								
									
										14
									
								
								roles/icinga-kb/files/cfg/s-lb.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								roles/icinga-kb/files/cfg/s-lb.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in nagios2-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host            ; Name of host template to use | ||||
|         host_name               s-lb | ||||
|         alias                   debian-servers | ||||
|         address                 192.168.100.10 | ||||
| 	parents			r-ext | ||||
|         } | ||||
|  | ||||
							
								
								
									
										16
									
								
								roles/icinga-kb/files/cfg/s-win.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								roles/icinga-kb/files/cfg/s-win.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| # A simple configuration file for monitoring the local host | ||||
| # This can serve as an example for configuring other servers; | ||||
| # Custom services specific to this host are added here, but services | ||||
| # defined in nagios2-common_services.cfg may also apply. | ||||
| #  | ||||
|  | ||||
| define host{ | ||||
|         use                     generic-host            ; Name of host template to use | ||||
|         host_name               s-win | ||||
|         alias                   windows-servers | ||||
|         address                 172.16.0.6 | ||||
| 	parents			r-int | ||||
| 	icon_image		base/win40.gif | ||||
| 	statusmap_image		base/win40.gd2 | ||||
|         } | ||||
|  | ||||
							
								
								
									
										106
									
								
								roles/icinga-kb/files/cfg/services_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								roles/icinga-kb/files/cfg/services_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,106 @@ | ||||
| define service { | ||||
|         hostgroup_name                  http-servers | ||||
|         service_description             HTTP | ||||
|  	check_command                   check_http | ||||
|         use                             generic-service | ||||
| 	notification_interval           0 ; set > 0 if you want to be renotified | ||||
| } | ||||
|  | ||||
| define service { | ||||
|         hostgroup_name                  ssh-servers | ||||
|         service_description             SSH | ||||
| 	check_command                   check_ssh | ||||
|         use                             generic-service | ||||
| 	notification_interval           0 ; set > 0 if you want to be renotified | ||||
| } | ||||
|  | ||||
| define service{ | ||||
|         use                             generic-service         | ||||
|         hostgroup_name                  debian-servers | ||||
|         service_description             Espace disque  | ||||
|         check_command                   check_snmp_storage!public!--v2c!"^/$|tmp|usr|var"!90!95 | ||||
|         } | ||||
|  | ||||
| define service{ | ||||
|         use                             generic-service                | ||||
|         hostgroup_name                  debian-servers | ||||
|         service_description             Charge machine   | ||||
| 	check_command                   check_snmp_load!public!--v2c!netsl!2,1,1!3,2,2 | ||||
|         } | ||||
|  | ||||
| define service{ | ||||
|         use                             generic-service      | ||||
|         hostgroup_name                  localhost | ||||
|         service_description             Charge machine   | ||||
| 	check_command                   check_load!5.0!4.0!3.0!10.0!6.0!4.0 | ||||
|         } | ||||
|  | ||||
| define service{ | ||||
| 	use				generic-service | ||||
| 	hostgroup_name			debian-servers | ||||
| 	service_description		RAM | ||||
| 	check_command			check_snmp_mem!public!--v2c!-N!95,60!99,90 | ||||
| } | ||||
|  | ||||
| define service{ | ||||
| 	use				generic-service | ||||
| 	hostgroup_name			windows-servers | ||||
| 	service_description		Version NSClient++ | ||||
| 	check_command			check_nt!CLIENTVERSION | ||||
| } | ||||
|  | ||||
| define service{ | ||||
| 	use				generic-service | ||||
| 	hostgroup_name			windows-servers | ||||
| 	service_description		Charge CPU | ||||
| 	check_command			check_nt!CPULOAD!-l 5,80,90,15,80,90 | ||||
| } | ||||
|  | ||||
| define service{ | ||||
| 	use				generic-service | ||||
| 	hostgroup_name			windows-servers | ||||
| 	service_description		Uptime | ||||
| 	check_command			check_nt!UPTIME | ||||
| } | ||||
|  | ||||
| define service{ | ||||
| 	use				generic-service | ||||
| 	hostgroup_name			windows-servers | ||||
| 	service_description		Mem Use | ||||
| 	check_command			check_nt!MEMUSE!80,90 | ||||
| } | ||||
|  | ||||
| define service{ | ||||
| 	use				generic-service | ||||
| 	hostgroup_name			windows-servers | ||||
| 	service_description		Disk Space | ||||
| 	check_command			check_nt!USEDDISKSPACE!-l C!10,5 | ||||
| } | ||||
|  | ||||
| define service{ | ||||
| 	use				generic-service | ||||
| 	hostgroup_name			windows-servers | ||||
| 	service_description		Service DNS | ||||
| 	check_command			check_nt!SERVICESTATE!-l W32Time,"Client DNS" | ||||
| } | ||||
|  | ||||
| define service{ | ||||
| 	use				generic-service | ||||
| 	hostgroup_name			uptimegrp | ||||
| 	service_description		Uptime | ||||
| 	check_command			check_snmp!-C public -o 1.3.6.1.2.1.1.3.0 -c 6000:0 -w 60000:0 | ||||
| } | ||||
|  | ||||
| define service{ | ||||
| 	use				generic-service | ||||
| 	hostgroup_name			dns-servers | ||||
| 	service_description		DNS Ext | ||||
| 	check_command			check_dns | ||||
| } | ||||
|  | ||||
| #define service{ | ||||
| #	use				generic-service | ||||
| #	hostgroup_name			dhcp-servers | ||||
| #	service_description		Service DHCP | ||||
| #	check_command			check_dhcp | ||||
| #}  | ||||
							
								
								
									
										50
									
								
								roles/icinga-kb/files/cfg/timeperiods_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								roles/icinga-kb/files/cfg/timeperiods_icinga.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| ############################################################################### | ||||
| # timeperiods.cfg | ||||
| ############################################################################### | ||||
|  | ||||
| # This defines a timeperiod where all times are valid for checks,  | ||||
| # notifications, etc.  The classic "24x7" support nightmare. :-) | ||||
|  | ||||
| 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 | ||||
|         } | ||||
|  | ||||
| # Here is a slightly friendlier period during work hours | ||||
| define timeperiod{ | ||||
|         timeperiod_name workhours | ||||
|         alias           Standard Work Hours | ||||
|         monday          09:00-17:00 | ||||
|         tuesday         09:00-17:00 | ||||
|         wednesday       09:00-17:00 | ||||
|         thursday        09:00-17:00 | ||||
|         friday          09:00-17:00 | ||||
|         } | ||||
|  | ||||
| # The complement of workhours | ||||
| define timeperiod{ | ||||
|         timeperiod_name nonworkhours | ||||
|         alias           Non-Work Hours | ||||
|         sunday          00:00-24:00 | ||||
|         monday          00:00-09:00,17:00-24:00 | ||||
|         tuesday         00:00-09:00,17:00-24:00 | ||||
|         wednesday       00:00-09:00,17:00-24:00 | ||||
|         thursday        00:00-09:00,17:00-24:00 | ||||
|         friday          00:00-09:00,17:00-24:00 | ||||
|         saturday        00:00-24:00 | ||||
|         } | ||||
|  | ||||
| # This one is a favorite: never :) | ||||
| define timeperiod{ | ||||
|         timeperiod_name never | ||||
|         alias           Never | ||||
|         } | ||||
|  | ||||
| # end of file | ||||
							
								
								
									
										643
									
								
								roles/icinga-kb/files/check_iftraffic3.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										643
									
								
								roles/icinga-kb/files/check_iftraffic3.pl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,643 @@ | ||||
| #!/usr/bin/perl -w | ||||
| # | ||||
| # check_iftraffic.pl - Nagios(r) network traffic monitor plugin | ||||
| # Copyright (C) 2004 Gerd Mueller / Netways GmbH | ||||
| # $Id: check_iftraffic.pl 1119 2006-02-09 10:30:09Z gmueller $ | ||||
| # | ||||
| # mw = Markus Werner mw+nagios@wobcom.de | ||||
| # Remarks (mw): | ||||
| # | ||||
| #	I adopted as much as possible the programming style of the origin code. | ||||
| # | ||||
| #	There should be a function to exit this programm, | ||||
| #	instead of calling print and exit statements all over the place. | ||||
| # | ||||
| # | ||||
| # minor changes by mw | ||||
| # 	The snmp if_counters on net devices can have overflows. | ||||
| #	I wrote this code to address this situation. | ||||
| #	It has no automatic detection and which point the overflow | ||||
| #	occurs but it will generate a warning state and you | ||||
| #	can set the max value by calling this script with an additional | ||||
| #	arg. | ||||
| # | ||||
| # minor cosmetic changes by mw | ||||
| #	Sorry but I couldn't sustain to clean up some things. | ||||
| # | ||||
| # gj = Greg Frater gregATfraterfactory.com | ||||
| # Remarks (gj): | ||||
| # minor (gj): | ||||
| #  | ||||
| #	* fixed the performance data, formating was not to spec | ||||
| # 	* Added a check of the interfaces status (up/down). | ||||
| #	  If down the check returns a critical status. | ||||
| # 	* Allow either textual or the numeric index value. | ||||
| #	* If the interface speed is not specified on the command line | ||||
| #	  it gets it automatically from IfSpeed | ||||
| #	* Added option for second ifSpeed to allow for asymetrcal links | ||||
| #	  such as a DSL line or cable modem where the download and upload | ||||
| #	  speeds are different | ||||
| #	* Added -B option to display results in bits/sec instead of Bytes/sec | ||||
| #	* Added the current usage in Bytes/s (or bit/s) to the perfdata output | ||||
| #	* Added ability for plugin to determine interface to query by matching IP  | ||||
| #	  address of host with entry in ipAdEntIfIndex (.1.3.6.1.2.1.4.20.1.2)  | ||||
| #	* Added -L flag to list entries found in the ipAdEntIfIndex table | ||||
| #	Otherwise, it works as before. | ||||
| # | ||||
| # | ||||
| # | ||||
| # | ||||
| # based on check_traffic from Adrian Wieczorek, <ads (at) irc.pila.pl> | ||||
| # | ||||
| # Send us bug reports, questions and comments about this plugin. | ||||
| # Latest version of this software: http://www.nagiosexchange.org | ||||
| # | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or | ||||
| # modify it under the terms of the GNU General Public License | ||||
| # as published by the Free Software Foundation; either version 2 | ||||
| # of the License, or (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 | ||||
|  | ||||
| use strict; | ||||
|  | ||||
| use Net::SNMP; | ||||
| use Getopt::Long; | ||||
| &Getopt::Long::config('bundling'); | ||||
|  | ||||
| use Data::Dumper; | ||||
|  | ||||
| my $host_ip; | ||||
| my $host_address; | ||||
| my $iface_number; | ||||
| my $iface_descr; | ||||
| my $iface_speed; | ||||
| my $iface_speedOut; | ||||
| my $index_list; | ||||
| my $opt_h; | ||||
| my $units; | ||||
|  | ||||
| my $session; | ||||
| my $error; | ||||
| my $port         = 161; | ||||
| my $snmp_version = 1; | ||||
|  | ||||
| my @snmpoids; | ||||
|  | ||||
| # SNMP OIDs for Traffic | ||||
| my $snmpIfOperStatus 	= '1.3.6.1.2.1.2.2.1.8'; | ||||
| my $snmpIfInOctets  	= '1.3.6.1.2.1.2.2.1.10'; | ||||
| my $snmpIfOutOctets 	= '1.3.6.1.2.1.2.2.1.16'; | ||||
| my $snmpIfDescr     	= '1.3.6.1.2.1.2.2.1.2'; | ||||
| my $snmpIfSpeed     	= '1.3.6.1.2.1.2.2.1.5'; | ||||
| my $snmpIPAdEntIfIndex 	= '1.3.6.1.2.1.4.20.1.2'; | ||||
|  | ||||
| my $response; | ||||
|  | ||||
| # Path to  tmp files | ||||
| my $TRAFFIC_FILE = "/tmp/traffic"; | ||||
|  | ||||
| # changes sos 20090717 UNKNOWN must bes 3 | ||||
| my %STATUS_CODE = | ||||
|   ( 'UNKNOWN' => '3', 'OK' => '0', 'WARNING' => '1', 'CRITICAL' => '2' ); | ||||
|  | ||||
| #default values; | ||||
| my $state = "UNKNOWN"; | ||||
| my $if_status = '4'; | ||||
| my ( $in_bytes, $out_bytes ) = 0; | ||||
| my $warn_usage = 85; | ||||
| my $crit_usage = 98; | ||||
| my $COMMUNITY  = "public"; | ||||
| my $use_reg    =  undef;  # Use Regexp for name | ||||
| my $output = ""; | ||||
| my $bits = undef;  | ||||
| my $suffix = "Bs"; | ||||
| my $label = "MBytes"; | ||||
|  | ||||
| #added 20050614 by mw | ||||
| my $max_value; | ||||
| my $max_bytes; | ||||
|  | ||||
| #cosmetic changes 20050614 by mw, see old versions for detail | ||||
| # Added options for bits and second max ifspeed 20100202 by gj | ||||
| # Added options for specificy IP addr to match 20100405 by gj | ||||
| my $status = GetOptions( | ||||
| 	"h|help"        => \$opt_h, | ||||
| 	'B'		=> \$bits, | ||||
| 	'bits'		=> \$bits, | ||||
| 	"C|community=s" => \$COMMUNITY, | ||||
| 	"w|warning=s"   => \$warn_usage, | ||||
| 	"c|critical=s"  => \$crit_usage, | ||||
| 	"b|bandwidth|I|inBandwidth=i" => \$iface_speed, | ||||
| 	"O|outBandwidth=i" => \$iface_speedOut, | ||||
|         'r'             => \$use_reg,            | ||||
|         'noregexp'      => \$use_reg, | ||||
| 	"p|port=i"      => \$port, | ||||
| 	"u|units=s"     => \$units, | ||||
| 	"i|interface=s" => \$iface_number, | ||||
| 	"A|address=s"   => \$host_ip, | ||||
| 	"H|hostname=s"  => \$host_address, | ||||
| 	'L'	  	=> \$index_list, | ||||
| 	'list'	  	=> \$index_list, | ||||
|  | ||||
| 	#added 20050614 by mw | ||||
| 	"M|max=i" => \$max_value | ||||
| ); | ||||
|  | ||||
| if ( $status == 0 ) { | ||||
| 	print_help(); | ||||
| 	exit $STATUS_CODE{'OK'}; | ||||
| } | ||||
|  | ||||
| # Changed 20091214 gj | ||||
| # Check for missing options | ||||
| #if ( ( !$host_address ) or ( !$iface_descr ) ) { | ||||
| if ( !$host_address )  { | ||||
| 	print  "\nMissing host address!\n\n"; | ||||
| 	stop(print_usage(),"OK"); | ||||
| } elsif ( ( $iface_speed ) and ( !$units ) ){ | ||||
| 	print "\nMissing units!\n\n"; | ||||
| 	stop(print_usage(),"OK"); | ||||
| } elsif ( ( $units ) and ( ( !$iface_speed ) and  ( !$iface_speedOut ) ) ) { | ||||
| 	print "\nMissing interface maximum speed!\n\n"; | ||||
| 	stop(print_usage(),"OK"); | ||||
| } elsif ( ( $iface_speedOut ) and ( !$units ) ) { | ||||
| 	print "\nMissing units for Out maximum speed!\n\n"; | ||||
| 	stop(print_usage(),"OK"); | ||||
| } | ||||
|  | ||||
|  | ||||
| if ($bits) { | ||||
| 	$suffix = "bs" | ||||
| } | ||||
|  | ||||
| if ( !$iface_speed ) { | ||||
| 	# Do nothing | ||||
| }else{ | ||||
|  | ||||
| 	#change 20050414 by mw | ||||
| 	# Added iface_speedOut 20100202 by gj | ||||
| 	# Convert interface speed to kiloBytes | ||||
| 	$iface_speed = bits2bytes( $iface_speed, $units ) / 1024; | ||||
| 	if ( $iface_speedOut ) { | ||||
| 		$iface_speedOut = bits2bytes( $iface_speedOut, $units ) / 1024; | ||||
| 	} | ||||
| 	if ( !$max_value ) { | ||||
| 	 | ||||
| 		# If no -M Parameter was set, set it to 32Bit Overflow | ||||
| 		$max_bytes = 4194304 ;    # the value is (2^32/1024) | ||||
| 	} | ||||
| 	else { | ||||
| 		$max_bytes = unit2bytes( $max_value, $units ); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| if ( $snmp_version =~ /[12]/ ) { | ||||
| 	( $session, $error ) = Net::SNMP->session( | ||||
| 		-hostname  => $host_address, | ||||
| 		-community => $COMMUNITY, | ||||
| 		-port      => $port, | ||||
| 		-version   => $snmp_version | ||||
| 	); | ||||
|  | ||||
| 	if ( !defined($session) ) { | ||||
| 		stop("UNKNOWN: $error","UNKNOWN"); | ||||
| 	} | ||||
| } | ||||
| elsif ( $snmp_version =~ /3/ ) { | ||||
| 	$state = 'UNKNOWN'; | ||||
| 	stop("$state: No support for SNMP v3 yet\n",$state); | ||||
| } | ||||
| else { | ||||
| 	$state = 'UNKNOWN'; | ||||
| 	stop("$state: No support for SNMP v$snmp_version yet\n",$state); | ||||
| } | ||||
|  | ||||
| # Neither Interface Index nor Host IP address were specified  | ||||
| if ( !$iface_descr ) { | ||||
| 	if ( !$host_ip ){ | ||||
| 		# try to resolve host name and find index from ip addr | ||||
| 		$iface_descr = fetch_Ip2IfIndex( $session, $host_address ); | ||||
| 	} else { | ||||
| 		# Use ip addr to find index | ||||
| 		$iface_descr = fetch_Ip2IfIndex( $session, $host_ip ); | ||||
| 	}	 | ||||
| } | ||||
|  | ||||
| #push( @snmpoids, $snmpIPAdEntIfIndex . "." . $host_address ); | ||||
|  | ||||
| # Added 20091209 gj | ||||
| # Detect if a string description was given or a numberic interface index number  | ||||
| if ( $iface_descr =~ /[^0123456789]+/ ) { | ||||
| 	$iface_number = fetch_ifdescr( $session, $iface_descr ); | ||||
| }else{ | ||||
| 	$iface_number = $iface_descr; | ||||
| } | ||||
|  | ||||
| push( @snmpoids, $snmpIfSpeed . "." . $iface_number ); | ||||
| push( @snmpoids, $snmpIfOperStatus . "." . $iface_number ); | ||||
| push( @snmpoids, $snmpIfInOctets . "." . $iface_number ); | ||||
| push( @snmpoids, $snmpIfOutOctets . "." . $iface_number ); | ||||
|  | ||||
| if ( !defined( $response = $session->get_request(@snmpoids) ) ) { | ||||
| 	my $answer = $session->error; | ||||
| 	$session->close; | ||||
|  | ||||
| 	stop("WARNING: SNMP error: $answer\n", "WARNING"); | ||||
| } | ||||
|  | ||||
| # Added 20091209 gj | ||||
| # Get interface speed from device if not provided on command line | ||||
| # Convert to kiloBytes | ||||
| if ( !$iface_speed ) {  | ||||
| 	$iface_speed = $response->{ $snmpIfSpeed . "." . $iface_number }; | ||||
| 	$units = "b"; | ||||
| 	$iface_speed = bits2bytes( $iface_speed, $units ) / 1024; | ||||
| } | ||||
|  | ||||
| # Added 20100201 gj | ||||
| # Check if Out max speed was provided, use same if speed for both if not | ||||
| if (!$iface_speedOut) { | ||||
| 	$iface_speedOut = $iface_speed; | ||||
| } | ||||
|  | ||||
| $if_status = $response->{ $snmpIfOperStatus . "." . $iface_number }; | ||||
| $in_bytes  = $response->{ $snmpIfInOctets . "." . $iface_number } / 1024; # in kiloBytes | ||||
| $out_bytes = $response->{ $snmpIfOutOctets . "." . $iface_number } / 1024; # in kiloBytes | ||||
|  | ||||
| $session->close; | ||||
|  | ||||
| my $row; | ||||
| my $last_check_time = time - 1; | ||||
| my $last_in_bytes   = $in_bytes; | ||||
| my $last_out_bytes  = $out_bytes; | ||||
|  | ||||
| if ( | ||||
| 	open( FILE, | ||||
| 		"<" . $TRAFFIC_FILE . "_if" . $iface_number . "_" . $host_address | ||||
| 	) | ||||
|   ) | ||||
| { | ||||
| 	while ( $row = <FILE> ) { | ||||
|  | ||||
| 		#cosmetic change 20050416 by mw | ||||
| 		#Couldn't sustain;-) | ||||
| ##		chomp(); | ||||
| 		( $last_check_time, $last_in_bytes, $last_out_bytes ) = | ||||
| 		  split( ":", $row ); | ||||
|  | ||||
| 		### by sos 17.07.2009 check for last_bytes | ||||
| 		if ( ! $last_in_bytes  ) { $last_in_bytes=$in_bytes;  } | ||||
| 		if ( ! $last_out_bytes ) { $last_out_bytes=$out_bytes; } | ||||
|  | ||||
| 		if ($last_in_bytes !~ m/\d/) { $last_in_bytes=$in_bytes; } | ||||
| 		if ($last_out_bytes !~ m/\d/) { $last_out_bytes=$out_bytes; } | ||||
| 	} | ||||
| 	close(FILE); | ||||
| } | ||||
|  | ||||
| my $update_time = time; | ||||
|  | ||||
| open( FILE, ">" . $TRAFFIC_FILE . "_if" . $iface_number . "_" . $host_address ) | ||||
|   or die "Can't open $TRAFFIC_FILE for writing: $!"; | ||||
|  | ||||
| printf FILE ( "%s:%.0ld:%.0ld\n", $update_time, $in_bytes, $out_bytes ); | ||||
| close(FILE); | ||||
|  | ||||
| my $db_file; | ||||
|  | ||||
| #added 20050614 by mw | ||||
| #Check for and correct counter overflow (if possible). | ||||
| #See function counter_overflow. | ||||
| $in_bytes  = counter_overflow( $in_bytes,  $last_in_bytes,  $max_bytes ); | ||||
| $out_bytes = counter_overflow( $out_bytes, $last_out_bytes, $max_bytes ); | ||||
|  | ||||
| # Calculate traffic since last check (RX\TX) in kiloBytes | ||||
| my $in_traffic = sprintf( "%.2lf", | ||||
| 	( $in_bytes - $last_in_bytes ) / ( time - $last_check_time ) ); | ||||
| my $out_traffic = sprintf( "%.2lf", | ||||
| 	( $out_bytes - $last_out_bytes ) / ( time - $last_check_time ) ); | ||||
|  | ||||
| # sos 20090717 changed  due to rrdtool needs bytes | ||||
| my $in_traffic_absolut  = $in_bytes * 1024 ; | ||||
| my $out_traffic_absolut = $out_bytes * 1024; | ||||
|  | ||||
| # Calculate usage percentages | ||||
| my $in_usage  = sprintf( "%.2f", ( 1.0 * $in_traffic * 100 ) / $iface_speed ); | ||||
| my $out_usage = sprintf( "%.2f", ( 1.0 * $out_traffic * 100 ) / $iface_speedOut ); | ||||
|  | ||||
|  | ||||
| if ($bits) { | ||||
| 	# Convert output from Bytes to bits | ||||
| 	$in_bytes = $in_bytes * 8; | ||||
| 	$out_bytes = $out_bytes * 8; | ||||
| 	$in_traffic = $in_traffic * 8; | ||||
| 	$out_traffic = $out_traffic * 8;	 | ||||
| 	$label = "Mbits"; | ||||
| } | ||||
|  | ||||
| my $in_prefix  = "K"; | ||||
| my $out_prefix = "K"; | ||||
|  | ||||
| if ( $in_traffic > 1024 ) { | ||||
| 	$in_traffic = sprintf( "%.2f", $in_traffic / 1024 ); | ||||
| 	$in_prefix = "M"; | ||||
| } | ||||
| if ( $out_traffic > 1024 ) { | ||||
| 	$out_traffic = sprintf( "%.2f", $out_traffic / 1024 ); | ||||
| 	$out_prefix = "M"; | ||||
| } | ||||
| if ( $in_traffic > 1024 * 1024 ) { | ||||
| 	$in_traffic = sprintf( "%.2f", $in_traffic / 1024 * 1024 ); | ||||
| 	$in_prefix = "G"; | ||||
| } | ||||
| if ( $out_traffic > 1024 * 1024 ) { | ||||
| 	$out_traffic = sprintf( "%.2f",$out_traffic / 1024 * 1024 ); | ||||
| 	$out_prefix = "G"; | ||||
| } | ||||
|  | ||||
| # Convert from kiloBytes to megaBytes | ||||
| $in_bytes  = sprintf( "%.2f", $in_bytes / 1024 ); | ||||
| $out_bytes = sprintf( "%.2f", $out_bytes / 1024 ); | ||||
|  | ||||
| $state = "OK"; | ||||
|  | ||||
| # Added 20091209 by gj | ||||
| if ( $if_status != 1 ) { | ||||
| 	$output = "Interface $iface_descr is down!"; | ||||
| 	 | ||||
| }else{ | ||||
| 	$output = | ||||
| 	"Average IN: " | ||||
| 	  . $in_traffic . $in_prefix . $suffix . " (" . $in_usage . "%), "  | ||||
| 	  . "Average OUT: " . $out_traffic . $out_prefix . $suffix . " (" . $out_usage . "%)<br>"; | ||||
| 	$output .= "Total RX: $in_bytes $label, Total TX: $out_bytes $label"; | ||||
| } | ||||
|  | ||||
| # Changed 20091209 gj | ||||
| if ( ( $in_usage > $crit_usage ) or ( $out_usage > $crit_usage ) or ( $if_status != 1 ) ) { | ||||
| 	$state = "CRITICAL"; | ||||
| } | ||||
|  | ||||
| if (   ( $in_usage > $warn_usage ) | ||||
| 	or ( $out_usage > $warn_usage ) && $state eq "OK" ) | ||||
| { | ||||
| 	$state = "WARNING"; | ||||
| } | ||||
|  | ||||
| # Changed 20091209 gj | ||||
| $output = "$state - $output" | ||||
|   if ( $state ne "OK" ); | ||||
|  | ||||
| # Changed 20091214 gj - commas should have been semi colons | ||||
| $output .= | ||||
| "|inUsage=$in_usage%;$warn_usage;$crit_usage outUsage=$out_usage%;$warn_usage;$crit_usage" | ||||
|   . " inBandwidth=" . $in_traffic . $in_prefix . $suffix . " outBandwidth=" . $out_traffic . $out_prefix . $suffix  | ||||
|   . " inAbsolut=$in_traffic_absolut outAbsolut=$out_traffic_absolut"; | ||||
|  | ||||
| stop($output, $state); | ||||
|  | ||||
|  | ||||
| sub fetch_Ip2IfIndex { | ||||
| 	my $state; | ||||
| 	my $response; | ||||
|  | ||||
| 	my $snmpkey; | ||||
| 	my $answer; | ||||
| 	my $key; | ||||
|  | ||||
| 	my ( $session, $host ) = @_; | ||||
|  | ||||
|  | ||||
| 	# Determine if we have a host name or IP addr | ||||
| 	if ( $host =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/ ){ | ||||
| 		#print "\nI found an IP address\n\n"; | ||||
| 	} else { | ||||
| 		$host = get_ip ( $host ); | ||||
| 		#print "\nWe have a host name $host\n\n"; | ||||
| 	} | ||||
|  | ||||
| 	# Quit if results not found | ||||
| 	if ( !defined( $response = $session->get_table($snmpIPAdEntIfIndex) ) ) { | ||||
| 		$answer = $session->error; | ||||
| 		$session->close; | ||||
| 		$state = 'CRITICAL'; | ||||
| 		$session->close; | ||||
| 		exit $STATUS_CODE{$state}; | ||||
| 	} | ||||
|  | ||||
| 	 | ||||
| 	my %resp = %{$response}; | ||||
| #	foreach $key ( keys %{$response} ) { | ||||
|  | ||||
| 		if ( $index_list ){ | ||||
| 			print ("\nInterfaces found:\n"); | ||||
| 			print ("  IP Addr\tIndex\n"); | ||||
| 			print ("------------------------\n"); | ||||
| 		}		 | ||||
| 	# Check each returned value | ||||
| 	foreach $key ( keys %resp ) { | ||||
|  | ||||
| 		if ( $index_list ){ | ||||
| 			my $index_addr = substr $key, 21; | ||||
| 			print ($index_addr,"\t ",$resp{$key},"\n"); | ||||
| 		} | ||||
|  | ||||
| 		# Check for ip address mathcin in returned index results | ||||
| 		if ( $key =~ /$host$/ ) { | ||||
| 			$snmpkey = $resp{$key}; | ||||
| 		} | ||||
| 	} | ||||
| 	unless ( defined $snmpkey ) { | ||||
| 		$session->close; | ||||
| 		$state = 'CRITICAL'; | ||||
| 		printf "$state: Could not match $host \n"; | ||||
| 		exit $STATUS_CODE{$state}; | ||||
| 	} | ||||
| 	return $snmpkey; | ||||
| } | ||||
|  | ||||
| sub fetch_ifdescr { | ||||
| 	my $state; | ||||
| 	my $response; | ||||
|  | ||||
| 	my $snmpkey; | ||||
| 	my $answer; | ||||
| 	my $key; | ||||
|  | ||||
| 	my ( $session, $ifdescr ) = @_; | ||||
|  | ||||
| 	if ( !defined( $response = $session->get_table($snmpIfDescr) ) ) { | ||||
| 		$answer = $session->error; | ||||
| 		$session->close; | ||||
| 		$state = 'CRITICAL'; | ||||
| 		$session->close; | ||||
| 		exit $STATUS_CODE{$state}; | ||||
| 	} | ||||
|  | ||||
| 	foreach $key ( keys %{$response} ) { | ||||
|  | ||||
| 		# added 20070816 by oer: remove trailing 0 Byte for Windows :-( | ||||
| 		my $resp=$response->{$key}; | ||||
| 		$resp =~ s/\x00//; | ||||
|  | ||||
|  | ||||
|                 my $test = defined($use_reg) | ||||
|                       ? $resp =~ /$ifdescr/ | ||||
|                       : $resp eq $ifdescr; | ||||
|  | ||||
|                 if ($test) { | ||||
|  | ||||
| 		###if ( $resp =~ /^$ifdescr$/ ) { | ||||
| 		###if ( $resp =~ /$ifdescr/ ) { | ||||
|                 ### print "$resp  \n"; | ||||
| 		###if ( $response->{$key} =~ /^$ifdescr$/ ) { | ||||
|  | ||||
| 			$key =~ /.*\.(\d+)$/; | ||||
| 			$snmpkey = $1; | ||||
|  | ||||
| 			# print "$ifdescr = $key / $snmpkey \n";  #debug | ||||
| 		} | ||||
| 	} | ||||
| 	unless ( defined $snmpkey ) { | ||||
| 		$session->close; | ||||
| 		$state = 'CRITICAL'; | ||||
| 		printf "$state: Could not match $ifdescr \n"; | ||||
| 		exit $STATUS_CODE{$state}; | ||||
| 	} | ||||
| 	return $snmpkey; | ||||
| } | ||||
|  | ||||
| #added 20050416 by mw | ||||
| #Converts an input value to value in bits | ||||
| sub bits2bytes { | ||||
| 	return unit2bytes(@_) / 8; | ||||
| } | ||||
|  | ||||
| #added 20050416 by mw | ||||
| #Converts an input value to value in bytes | ||||
| sub unit2bytes { | ||||
| 	my ( $value, $unit ) = @_; | ||||
|  | ||||
| 	if ( $unit eq "g" ) { | ||||
| 		return $value * 1024 * 1024 * 1024; | ||||
| 	} | ||||
| 	elsif ( $unit eq "m" ) { | ||||
| 		return $value * 1024 * 1024; | ||||
| 	} | ||||
| 	elsif ( $unit eq "k" ) { | ||||
| 		return $value * 1024; | ||||
| 	} | ||||
| 	elsif ( $unit eq "b" ) { | ||||
| 		return $value * 1; | ||||
| 	} | ||||
| 	else { | ||||
| 		print "You have to supply a supported unit\n"; | ||||
| 		exit $STATUS_CODE{'UNKNOWN'}; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| #added 20050414 by mw | ||||
| #This function detects if an overflow occurs. If so, it returns | ||||
| #a computed value for $bytes. | ||||
| #If there is no counter overflow it simply returns the origin value of $bytes. | ||||
| #IF there is a Counter reboot wrap, just use previous output. | ||||
| sub counter_overflow { | ||||
| 	my ( $bytes, $last_bytes, $max_bytes ) = @_; | ||||
|  | ||||
| 	$bytes += $max_bytes if ( $bytes < $last_bytes ); | ||||
| 	$bytes = $last_bytes  if ( $bytes < $last_bytes ); | ||||
| 	return $bytes; | ||||
| } | ||||
|  | ||||
| # Added 20100202 by gj | ||||
| # Print results and exit script | ||||
| sub stop { | ||||
| 	my $result = shift; | ||||
| 	my $exit_code = shift; | ||||
| 	print $result . "\n"; | ||||
| 	exit ( $STATUS_CODE{$exit_code} ); | ||||
| } | ||||
|  | ||||
| # Added 20100405 by gj | ||||
| # Lookup hosts ip address | ||||
| sub get_ip { | ||||
| 	use Net::DNS; | ||||
|  | ||||
| 	my ( $host_name ) = @_; | ||||
|  | ||||
| 	my $res = Net::DNS::Resolver->new; | ||||
| 	my $query = $res->search($host_name); | ||||
|  | ||||
| 	if ($query) { | ||||
| 		foreach my $rr ($query->answer) { | ||||
| 			next unless $rr->type eq "A"; | ||||
| 			#print $rr->address, "\n"; | ||||
| 			return $rr->address; | ||||
| 		} | ||||
| 	} else { | ||||
| 		 | ||||
| 		stop("Error: IP address not resolved\n","UNKNOWN"); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| #cosmetic changes 20050614 by mw | ||||
| #Couldn't sustain "HERE";-), either. | ||||
| sub print_usage { | ||||
| 	print <<EOU; | ||||
|     Usage: check_iftraffic3.pl -H host [ -C community_string ] [ -i if_index|if_descr ] [ -r ] [ -b if_max_speed_in | -I if_max_speed_in ] [ -O if_max_speed_out ] [ -u ] [ -B ] [ -A IP Address ] [ -L ] [ -M ] [ -w warn ] [ -c crit ] | ||||
|  | ||||
|     Example 1: check_iftraffic3.pl -H host1 -C sneaky | ||||
|     Example 2: check_iftraffic3.pl -H host1 -C sneaky -i "Intel Pro" -r -B   | ||||
|     Example 3: check_iftraffic3.pl -H host1 -C sneaky -i 5 | ||||
|     Example 4: check_iftraffic3.pl -H host1 -C sneaky -i 5 -B -b 100 -u m  | ||||
|     Example 5: check_iftraffic3.pl -H host1 -C sneaky -i 5 -B -b 20 -O 5 -u m  | ||||
|     Example 6: check_iftraffic3.pl -H host1 -C sneaky -A 192.168.1.1 -B -b 100 -u m  | ||||
|  | ||||
|     Options: | ||||
|  | ||||
|     -H, --host STRING or IPADDRESS | ||||
|         Check interface on the indicated host. | ||||
|     -B, --bits | ||||
| 	Display results in bits per second b/s (default: Bytes/s) | ||||
|     -C, --community STRING  | ||||
|         SNMP Community. | ||||
|     -r, --regexp | ||||
|         Use regexp to match NAME in description OID | ||||
|     -i, --interface STRING | ||||
|         Interface Name | ||||
|     -b, --bandwidth INTEGER | ||||
|     -I, --inBandwidth INTEGER | ||||
|         Interface maximum speed in kilo/mega/giga/bits per second.  Applied to  | ||||
| 	both IN and OUT if no second (-O) max speed is provided. | ||||
|     -O, --outBandwidth INTEGER | ||||
|         Interface maximum speed in kilo/mega/giga/bits per second.  Applied to | ||||
| 	OUT traffic.  Uses the same units value given for -b.  | ||||
|     -u, --units STRING | ||||
|         g=gigabits/s,m=megabits/s,k=kilobits/s,b=bits/s.  Required if -b, -I, or  | ||||
| 	-O are used. | ||||
|     -w, --warning INTEGER | ||||
|         % of bandwidth usage necessary to result in warning status (default: 85%) | ||||
|     -c, --critical INTEGER | ||||
|         % of bandwidth usage necessary to result in critical status (default: 98%) | ||||
|     -M, --max INTEGER | ||||
| 	Max Counter Value of net devices in kilo/mega/giga/bytes. | ||||
|     -A, --address STRING (IP Address) | ||||
| 	IP Address to use when determining the interface index to use.  Can be  | ||||
| 	used when the index changes frequently or as in the case of Windows  | ||||
| 	servers the index is different depending on the NIC installed. | ||||
|     -L, --list FLAG (on/off) | ||||
| 	Tell plugin to list available interfaces. This is not supported inside  | ||||
| 	of Nagios, but may be useful from the command line. | ||||
| EOU | ||||
|  | ||||
| } | ||||
|  | ||||
							
								
								
									
										90
									
								
								roles/icinga-kb/files/commands.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								roles/icinga-kb/files/commands.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | ||||
| ############################################################################### | ||||
| # COMMANDS.CFG - SAMPLE COMMAND DEFINITIONS FOR NAGIOS  | ||||
| ############################################################################### | ||||
|  | ||||
|  | ||||
| ################################################################################ | ||||
| # NOTIFICATION COMMANDS | ||||
| ################################################################################ | ||||
|  | ||||
|  | ||||
| # 'notify-host-by-email' command definition | ||||
| define command{ | ||||
| 	command_name	notify-host-by-email | ||||
| 	command_line	/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ | ||||
| 	} | ||||
|  | ||||
| # 'notify-service-by-email' command definition | ||||
| define command{ | ||||
| 	command_name	notify-service-by-email | ||||
| 	command_line	/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ | ||||
| 	} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ################################################################################ | ||||
| # HOST CHECK COMMANDS | ||||
| ################################################################################ | ||||
|  | ||||
| # On Debian, check-host-alive is being defined from within the | ||||
| # nagios-plugins-basic package | ||||
| define command{ | ||||
|         command_name check_snmp_storage | ||||
|         command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C $ARG1$ $ARG2$ -m $ARG3$ -w $ARG4$ -c $ARG5$ | ||||
| } | ||||
|  | ||||
| define command{ | ||||
|         command_name check_snmp_load | ||||
|         command_line $USER1$/check_snmp_load.pl -H $HOSTADDRESS$ -C $ARG1$ $ARG2$ -T $ARG3$ -w $ARG4$ -c $ARG5$ | ||||
| } | ||||
|  | ||||
| define command{ | ||||
|         command_name check_snmp_mem | ||||
|         command_line $USER1$/check_snmp_mem.pl -H $HOSTADDRESS$ -C $ARG1$ $ARG2$ $ARG3$ -w $ARG4$ -c $ARG5$ | ||||
| } | ||||
|  | ||||
| define command{ | ||||
|         command_name check_snmp_int | ||||
|         command_line $USER1$/check_snmp_netint.pl -H $HOSTADDRESS$ -C $ARG1$ $ARG2$ -n $ARG3$ -a -m -k -M -w $ARG4$ -c $ARG5$ | ||||
| } | ||||
|  | ||||
| define command{ | ||||
| 	command_name check_iftraffic3 | ||||
| 	#command_name check_win_int | ||||
| 	#command_line $USER1$/check_iftraffic3.pl -H $HOSTADDRESS$ -C $ARG1$  | ||||
| 	#command_line $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ -C $ARG1$ $ARG2$ -n $ARG3$ -k -M -g -w $ARG4$ -c $ARG5$ | ||||
| 	command_line $USER1$/check_iftraffic3.pl -H $HOSTADDRESS$ -C $ARG1$ -i $ARG2$ -w $ARG3$ -c $ARG4$ | ||||
| } | ||||
|  | ||||
| define command{ | ||||
| 	command_name check_snmp | ||||
| 	command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ | ||||
| } | ||||
| ############################### | ||||
| ##WINDOWS | ||||
| ############################### | ||||
|  | ||||
| define command{ | ||||
| 	command_name check_nt | ||||
| 	command_line $USER1$/check_nt -H $HOSTADDRESS$ -s root -p 12489 -v $ARG1$ $ARG2$ | ||||
| } | ||||
|   | ||||
| ################################################################################ | ||||
| # PERFORMANCE DATA COMMANDS | ||||
| ################################################################################ | ||||
|  | ||||
|  | ||||
| # 'process-host-perfdata' command definition | ||||
| define command{ | ||||
| 	command_name	process-host-perfdata | ||||
| 	command_line	/usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n" >> /var/lib/nagios3/host-perfdata.out | ||||
| 	} | ||||
|  | ||||
|  | ||||
| # 'process-service-perfdata' command definition | ||||
| define command{ | ||||
| 	command_name	process-service-perfdata | ||||
| 	command_line	/usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" >> /var/lib/nagios3/service-perfdata.out | ||||
| 	} | ||||
							
								
								
									
										11
									
								
								roles/icinga-kb/files/dns.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								roles/icinga-kb/files/dns.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| # 'check_dns' command definition | ||||
| define command{ | ||||
| 	command_name	check_dns | ||||
| 	command_line	/usr/lib/nagios/plugins/check_dns -H www.dfco.fr -s '$HOSTADDRESS$' | ||||
| } | ||||
|  | ||||
| # 'check_dig' command definition | ||||
| define command{ | ||||
| 	command_name    check_dig | ||||
| 	command_line    /usr/lib/nagios/plugins/check_dig -H '$HOSTADDRESS$' -l '$ARG1$' | ||||
| } | ||||
							
								
								
									
										1494
									
								
								roles/icinga-kb/files/icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1494
									
								
								roles/icinga-kb/files/icinga.cfg
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										15
									
								
								roles/icinga-kb/files/nt.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								roles/icinga-kb/files/nt.cfg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| # If you are confused about this command definition, cause you was | ||||
| # reading other suggestions, please have a look into | ||||
| # /usr/share/doc/nagios-plugins/README.Debian | ||||
|  | ||||
| # 'check_nt' command definition | ||||
| #define command { | ||||
| #	command_name    check_nt | ||||
| #	command_line    /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -v '$ARG1$' | ||||
| #} | ||||
|  | ||||
| # 'check_nscp' command definition | ||||
| define command { | ||||
| 	command_name	check_nscp | ||||
| 	command_line	/usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -p 12489 -v '$ARG1$' | ||||
| } | ||||
		Reference in New Issue
	
	Block a user