User Tools

Site Tools


icinga:icinga_configuration_page4

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

icinga:icinga_configuration_page4 [2020/04/10 17:38] (current)
Line 1: Line 1:
 +===== 4. Adding Network Switches and Routers to Icinga =====
  
 +|[[:​icinga:​icinga_confgiguration|Page 1]] |[[:​icinga:​icinga_configuration_page2|Page 2]] |[[:​icinga:​icinga_configuration_page3|Page 3]] |[[:​icinga:​icinga_configuration_page4|Page 4]] |
 +
 +You'll need to create some object definition in order to monitor a new   ​router/​switch.
 +
 +
 +Add a new host definition for the switch that you're going to monitor. If   this is the<​nowiki>​ *</​nowiki>​first<​nowiki>​*</​nowiki>​ switch you're monitoring, you can simply modify the sample host definition i//​generic-host-icinga//​ //.cfg// . Change the  //​host_name//​ ,  //alias// , and    //address// fields to appropriate values for the switch.
 +<​code>​
 +define host{
 +      use             ​generic-switch ​         ; Inherit default values from a template
 +      host_name ​      ​linksys-srw224p ​        ; The name we're giving to this switch
 +      alias           ​Linksys SRW224P Switch ​ ; A longer name associated with the switch
 +      address ​        ​192.168.1.253 ​          ; IP address of the switch
 +      hostgroups ​     allhosts,​switches ​      ; Host groups this switch is associated with
 +      }
 +</​code>​
 +=== Monitoring Services ===
 +
 +
 +Now you can add some service definitions (to the same configuration file) to monitor different aspects of the switch. If   this is the<​nowiki>​ *</​nowiki>​first<​nowiki>​*</​nowiki>​ switch you're monitoring, you can simply modify the sample service definition in    //​switch.cfg//​ .
 +//​linksys-srw224p//"​ in the example definitions below with the name you specified in the   //​host_name//​ directive of the host definition you just added.
 +=== Monitoring Packet Loss and RTA ===
 +
 +
 +Add the following service definition in order to monitor packet loss and round trip average between the Icinga host   and the switch every 5 minutes under normal conditions.
 +
 +
 +<​code>​
 +define service{
 +      use                     ​generic-service ; Inherit values from a template
 +      host_name ​              ​linksys-srw224p ; The name of the host the service is associated with
 +      service_description ​    ​PING ​           ; The service description
 +      check_command ​          ​check_ping!200.0,​20%!600.0,​60% ​ ; The command used to monitor the service
 +      check_interval ​         5       ; Check the service every 5 minutes under normal conditions
 +      retry_interval ​         1       ; Re-check every minute until its final/hard state is determined
 +      }
 +</​code>​
 +
 +
 +This service will be:
 +
 +
 +    * CRITICAL if the round trip average (RTA) is greater than 600 milliseconds or the packet loss is 60% or more
 +    * WARNING if the RTA is greater than 200 ms or the packet loss is 20% or more
 +    * OK if the RTA is less than 200 ms and the packet loss is less than 20%
 +
 +
 +=== Monitoring SNMP Status Information ===
 +
 +
 +If your switch or router supports SNMP, you can monitor a lot of information by using the  //​check_snmp// ​    ​plugin. If it doesn'​t,​ skip this section. Add the following service definition to monitor the uptime of the switch.
 +
 +
 +<​code>​
 +define service{
 +      use                     ​generic-service ; Inherit values from a template
 +      host_name ​              ​linksys-srw224p
 +      service_description ​    ​Uptime
 +      check_command ​          ​check_netapp_uptime!public!
 +      }
 +</​code>​
 +
 +
 +In the  //​check_command// ​  ​directive of the service definition above, the "-C public"​ tells the plugin that   the SNMP community name to be used is "​public"​ and the "-o sysUpTime.0"​ indicates which OID should be checked.
 +
 +
 +If you want to ensure that a specific port/​interface on the switch is in an up state, you could add a service definition ​  like this:
 +
 +
 +<​code>​
 +define service{
 +      use                     ​generic-service ; Inherit values from a template
 +      host_name ​              ​linksys-srw224p
 +      service_description ​    Port 1 Link Status
 +      check_command ​          ​snmp_load!public!ifOperStatus.1 ​  ; 1- indicates for port 1 , if OperStatus.2,​ shows port2
 +      }
 +</​code>​
 +
 +
 +In the example above, the "-o ifOperStatus.1"​ refers to the OID for the operational status of port 1 on the switch. The   "​-r 1" option tells the  //​check_snmp// ​  ​plugin to return an OK state if "​1"​ is found in the SNMP result (1   ​indicates an "​up"​ state on the port) and CRITICAL if it isn't found. The "-m RFC1213-MIB"​ is optional and tells the    //​check_snmp// ​  ​plugin to only load the "​RFC1213-MIB"​ instead of every single MIB that's installed on your   ​system,​ which can help speed things up.
 +
 +
 +That's it for the SNMP monitoring example. There are a million things that can be monitored via SNMP, so it's up to you to   ​decide what you need and want to monitor. Good luck!
 +
 +
 +//​192.168.1.253// ​ with the IP address of the switch): ​ //snmpwalk -v1 -c public 192.168.1.253 -m ALL     .1//
 +
 +
 +=== Monitoring Bandwidth / Traffic Rate ===
 +
 +
 +If you're monitoring bandwidth usage on your switches or routers using [[http://​oss.oetiker.ch/​mrtg/​|MRTG]],​ you can have Icinga alert you when traffic rates exceed thresholds ​  you specify. The  //​check_mrtgtraf// ​  ​plugin (which is included in the Icinga plugins distribution) allows ​  you to do this.
 +
 +
 +You'll need to let the  //​check_mrtgtraf// ​   plugin know what log file the MRTG data is being stored in,   along with thresholds, etc. In this example, we're monitoring one of  the ports on a Linksys switch. The MRTG log file is stored ​  ​in ​ ///​var/​lib/​mrtg/​192.168.1.253_1.log// ​ . Here's the service definition we use to monitor the bandwidth data   ​that'​s stored in the log file…
 +
 +
 +define service{
 +
 +
 +<​code>​
 +      use                     ​generic-service ; Inherit values from a template
 +      host_name ​              ​linksys-srw224p
 +      service_description ​    Port 1 Bandwidth Usage
 +      check_command ​          ​check_local_mrtgtraf!/​var/​lib/​mrtg/​192.168.1.253_1.log!AVG!1000000,​2000000!5000000,​5000000!10
 +      }
 +</​code>​
 +
 +
 +In the example above, the "/​var/​lib/​mrtg/​192.168.1.253_1.log"​ option that gets passed to the    //​check_local_mrtgtraf// ​  ​command tells the plugin which MRTG log file to read from. The "​AVG"​ option tells it   that it should use average bandwidth statistics. The "​1000000,​2000000"​ options are the warning thresholds (in bytes) for   ​incoming traffic rates. The "​5000000,​5000000"​ are critical thresholds (in bytes) for outgoing traffic rates. The "​10"​ option ​  ​causes the plugin to return a CRITICAL state if the MRTG log file is older than 10 minutes (it should be updated every 5   ​minutes).
 +
 +
 +Save the file.
 +
 +
 +|[[:​icinga:​icinga_confgiguration|Page 1]] |[[:​icinga:​icinga_configuration_page2|Page 2]] |[[:​icinga:​icinga_configuration_page3|Page 3]] |[[:​icinga:​icinga_configuration_page4|Page 4]] |
icinga/icinga_configuration_page4.txt · Last modified: 2020/04/10 17:38 (external edit)