Simple Network Management Protocol (SNMP) is an internet standard protocol that allows information exchange between managed devices. SNMP primarily supports network device monitoring and detects issues according to the data from the device. The network devices include in-built SNMP agents to enable and configure the communication with the Network Management System (NMS).

In a network, the system or the server running the monitoring software is the managing entity and the device that requires monitoring is the managed device. All SNMP messages traverse between:

  • SNMP agent (in the managing entity)
  • SNMP manager (in the managed device)

Monitor methods and components

The following SNMP monitoring methods are supported:

  • Passive monitoring: Ingest SNMP Traps into the platform using alerts. For more information, see SNMP Traps.
  • Active Monitoring: Discover the target devices in the platform and monitor using templates.

SNMP monitoring is supported for all device types that are SNMP-enabled supporting SNMP V1, V2, and V3 protocols. For example, Network Devices, Storage Devices, Server Hardware, Applications, and VOIP Applications. To view the discovered list of device type, go to Setup > Resources > SNMP Resource Type Definitions.

Types of SNMP-managed device components are:

  • SNMP Manager (Network Management System): A software platform that can collect information stored by the agent. The SNMP manager processes the collected information in a readable format (tables and graphs) to the network administrator. The NMS polls the agent for the required details of a given device in the form of alerts, reports, and graphs.
  • SNMP Agent: A software that is pre-installed in the network device that gathers metric details such as disk space. The network device uses the SNMP Agent to update the metric information in the Management Information Base (MIB).
  • Managed device: The device that requires monitoring is the managed device containing a managed agent. The commonly available managed devices are Routers, Switches, Firewall, and Load Balancer.
  • Management Information Base: The Management Information Base (MIB) stores the monitoring details of the managed device hierarchically. Each device contains different attributes or objects to monitor and unique object identifiers (OIDs).

SNMP monitor process

SNMP Monitoring Flowchart

SNMP Monitoring Flowchart

SNMP configuration

SNMP monitoring includes:

  1. Creating SNMP monitors using one of the following:
    • Collector Type: SNMP
    • Collector Type: SNMP Extended (Script-based)
  2. Creating a template with an SNMP monitor.
  3. Assigning the template to a resource.
  4. Viewing graphs.

Before you begin

Before beginning your SNMP configuration, you need to set up your instrumentation strategy, create gateway management profiles, and set up discovery profiles.

Create gateway management profiles

The gateway management profile helps in managing the discovery of resources. For more information, see Create Gateway Management Profiles.

Set up discovery profiles

An administrator can create discovery profiles based on the devices to discover. Discovery and Deployment page displays the added discovery profile. For more information, see Discovery Profile.

Step 1: Create SNMP monitors with collector type SNMP

Creating SNMP monitors helps the administrator to initiate the monitoring and set thresholds to receive alerts.

  1. Select a client from the All Clients list.
  2. Select Setup > Monitoring > Monitors.
  3. From the MONITORS screen, click + Add.
  4. From CREATE A MONITOR, provide the following details:
    • Monitor Scope: Select Partner or Client-Specific Monitor.
      Select a client for Client-Specific Monitor.
    • Adaptor Type: Monitor type. Select SNMP.
    • Name: Unique name for the monitor.
    • Description: Details of the monitor.
    • Is this monitor for a component that has multiple instances?: Select one of the following options:
      • Yes: Select for Tabular OID.
        If you select Yes, the CREATE A MONITOR screen displays Component Properties, Additional Properties, Metrics, and Data Collection Rules sections.
      • NO: Select for Scalar OID.
        If you select No, the CREATE A MONITOR screen displays only the Metrics section.
  5. From the Component Properties section, provide the following details:
    • Mode: Method to get the value or name of the component. Select one of the following options:
      • Get Value: Unique name of the component.
      • Get Index: Index value of the OID.
      • Lookup Index: Index of the OID and matches with the index of the Lookup OID. For more information, see Lookup index.
      • Lookup Value: Value of the OID and matches the index of the Lookup OID. For more information, see Lookup value.
    • OID: OID of the component.
    • Lookup OID: OID of the object from another table with the same MIB as the component OID.
      The field is active only if you select Lookup Index or Lookup Value.
    • Format: Data type of the OID in the MIB.
      Component Properties

      Component Properties

  6. From the Additional Properties section, do the following:
    1. Click +Add.
    2. From the Additional Properties window, provide the following:
      • Name: Name of the OID.
      • OID Type: Select one of the following options:
        • Scalar OID
        • Tabular OID
      • OID: OID of the component to add the property.
      • Format Value: From the options displayed in the drop-down menu, select Enumerated Map.
      • Provide an enumerated map: Enter the key and value pair for each OID.
      • Unit: From the options displayed in the drop-down menu, select the unit.
        Skip Unit selection if an enumerated map is already selected.
    3. Click Add.
  7. From the Metrics section, do the following steps:
    1. Click +Add.

    2. From the Add Metric window, go to the Add metric section and provide details for the following:

      • Name: Name or label to define the metric displayed on the graphs. For example, hr.storage.utilization.
        Important!
        • No Uppercase or space allowed.
        • Follow dotted notation.
      • Display Name: Name or label to define the metric displayed on the dashboard.
      • Description: Reason for using the metric.
        Add Metric

        Add Metric

    3. From Value of the metric, do the following:

      1. Go to Provide SNMP OID-based inputs.
      2. Click +Add and provide the following:
        • Name: Object name of the OID defined in the MIB.
        • OID: OID defined in the MIB.
          Important! The scalar OIDs must end with .0.
        • OID Type: Scalar or tabular OID.
        • Data Type: Base syntax of the OID defined in the MIB. Select the data type according to the metric under creation.
        • Formula: Select one of the following options:
          • Delta: Provides the difference between the current poll value and the previous poll value.
          • Rate: Provides the quotient of the difference between Current Poll Value and Previous Poll Value with Current Poll Time and Previous Poll Time.
            Arithmetically, Rate = (Current Poll Value)-(Previous Poll Value)/(Current Poll Time)-(Previous Poll Time).
            Rate returns the value in per second format. For example, Requests per second, bytes per second, errors per sec, and per sec.
        • Poll Frequency: Frequency for monitoring the devices. Select one of the following:
          • User-Defined: Select if the chosen OID requires frequent monitoring.
          • Less Frequent: Select if the chosen OID is monitored seldom. The OIDs are polled every eight hours.
      3. Go to Does the metric need more inputs from the user?.
      4. Click + Add and provide the following:
        • Name: Name of the variable used while calculating the value of the metric.
        • Description: Information about the variable.
        • Default Values: Enter a value for the variable. For example, if you want to monitor the network interface bandwidth for WAN links, provide ISP speed value in Mbps, Kbps, or bps.
      5. Go to Calculate the value of the metric.
      6. From Metric Value, select one of the following options:
        • Value of the SNMP OID: Selected by default when only single SNMP OID-based input entry is available.
        • Using the inputs provided above, derive the value of the metric using an expression: Enter the Java-based mathematical expression to calculate the OID output.
          Example: (used/(used+free))*100, where used and free are SNMP OID-based names. For more information, see Java-based Mathematical Expression Examples.

      Use this option to:

      • Get a single OID value as a metric result for multiple OID inputs.
      • Perform more mathematical calculations for multiple OID results.
        Value of the Metric

        Value of the Metric

    4. From Format metric value, do the following:

      1. From the options displayed in Format metric value using drop-down menu, select Enumerated Map.
      2. From Provide an enumerated map, enter the key and value pair for each OID. For example, the enumeration values for device health status OIDs are:
        • 1 - up
        • 2 - down
        • 3 - testing
        • 4 - downgrade
        • 5 - warning
      3. From Use formatted value in, select the checkbox for one of the following:
        • Alerts: To receive alerts.
        • Graph: To generate metric graphs.
      4. From the options displayed in the Units drop-down menu, select the unit according to the metric value. For example, for performance OIDs, select Percentage(%).
        Skip Units selection if an enumerated map is already selected.
      5. From Graph, select Yes to populate graphs for a metric.
        Format Metric Value

        Format Metric Value

    5. From Set alert conditions, provide details for the following:

      • Warning severity: Warning alert generated when the metric matches the operator and breaches the warning threshold value.
      • Critical severity: Critical alert generated when the metric matches the operator and breaches the critical threshold value.
      • Alert Subject: Alert subject displayed for a warning or critical alert on the alert browser. For more information, see Tokens.
        The actual values replace the alert subject displayed on the alert browser.
      • Alert Content: Alert description displayed on the alert details page. For more information, see Tokens.
        The actual values replace the alert subject displayed on the alert browser.
        Set Alert Conditions

        Set Alert Conditions

  8. From the Data Collection Rules section, select one of the following options to select the instances to monitor:
    • All instances of this component: Monitors all component OIDs (Default selection).
    • Automatically select instances based on the below-mentioned rules: Add Value for the selected Property and Operator defined in the Additional Properties section to filter the monitoring components.
    • Manually select instances on the device based on the following properties: Select the components added in the Additional Properties section.
      You can view and choose the manually selected components while assigning templates to a resource.
      Data Collection Rules

      Data Collection Rules

  9. Click Save.
    The MONITOR screen displays the SNMP monitor.

Step 1: Create SNMP monitors with collector type SNMP Extended

Use SNMP Extended (script-based), if you are unable to get the device or specific metric support using SNMP collector. Knowledge of Core Java or Groovy script is a prerequisite.

  1. Select a client from the All Clients list.
  2. Select Setup > Monitoring > Monitors.
  3. From the MONITORS screen, click + Add.
  4. From CREATE A MONITOR, provide the following:
    • Monitor Scope: Select Partner Monitor or Client-Specific Monitor.
      Select a client for Client-Specific Monitor.
    • Adaptor Type: Monitor type. Select SNMP Extended.
    • Name: Unique name for the monitor.
    • Description: Details of the monitor.
    • Script: Enter the script in the text box. For reference, see Sample Script.
    • Does it need user input(s): Select one of the following:
      • Yes: Select to monitor specific attributes of the user input.
      • No: Select to monitor all user inputs.
    • If you select Yes, select one of the following scopes:
      • Component Level: Select this option if you have the same input for all components.
      • Monitor Level: Select this option if you have different inputs for each component.
  5. From Configuration Parameters, click + Add and provide the following:
    • Name: Name of the variable. Use this name to parse the variable into the script.
    • Display Name: Name displayed for the variable.
    • Description: Information about the variable.
    • Default Values: Enter a value for the variable. For example, to monitor the network interface bandwidth utilization for WAN links, provide ISP speed value in Mbps, or Kbps or bps.
      Configuration Parameters

      Configuration Parameters

  6. From Metrics, click +Add and do the following:
    1. From the Add Metric window, provide details for the following and click Add:
      • Name: Name or label to define the metric displayed in the graphs. For example, hr.storage.utilization.
        Notes:
        • No Uppercase or spaces allowed.
        • Follow dotted notation.
      • Display Name: Name or label to define the metric displayed on the dashboard.
      • Description: Reason for using the metric.
      • Units: From the options displayed in the Units drop-down menu, select the unit.
      • Format metric value using: From the options displayed in the drop-down menu, select Enumerated Map.
      • Provide an enumerated map: Enter the key and value pair for each OID.
      • Graph: Select Yes to populate graphs for a metric. Else select No.
    2. From Alerts, provide details for the following:
      • Warning severity: Warning alert generated when the metric matches the operator and breaches the warning threshold value.
      • Critical severity: Critical alert generated when the metric matches the operator and breaches the critical threshold.
      • Alert Subject: Alert subject displayed for a warning or critical alert on the alert browser.
        The actual values replace the alert subject displayed on the alert browser.
      • Alert Content: Alert description displayed on the alert details page.
        The actual values replace the alert subject displayed on the alert browser.
  7. Click Save.

Step 2: Create SNMP templates

  1. Select a client from the All Clients list.
  2. Select Setup > Monitoring > Templates.
  3. Click +Add.
  4. From MONITOR TEMPLATE, provide the following and click Save:
    • Select Template Scope: Partner template or Client-Specific template. For Client-Specific template, select the client.
    • Collector Type: Application type that you want to gather the information. Select Gateway.
    • Monitor Type: Select Monitors.
    • Applicable for: Type of the application.
    • Template Name: Name of the template.
    • Description: Summary of the template.
    • Generation: Template generation. For example, G2.
    • Tags: User-defined tags for better filtering.
    • Prerequisites: Essential things that you must consider while using the template.
    • Status: Active or End-of-life templates.
    • Notes: Information that you want to add to the template.
    • Template Family Name: Category that applies to the application. For example, Windows Server, Storage Server, and Network Server.
    • Deployment Type: One of the following methods to apply the template to the resources:
      • Custom
      • Optional
      • Standard
        After providing the template details, MONITOR TEMPLATE displays the Monitors section.
        The console for the Monitors section varies with the option selected in the Collector Type.
    • Monitor: To add details in Monitors:
      1. From the Monitors section, click the +Add.
      2. From the Monitor window, provide the following:
        • Frequency: Refer to the rate to execute the template.
        • Monitor Definition: Monitor type.
        • When to Alert: Select Breach of a Threshold.
      3. Select the Alert and Availability checkbox to initiate monitoring.

Step 3: Assign templates to devices

After creating a template, assign the template to the resource. You need to create credentials in order to assign a template to a resource.

  1. Select a client from the All Clients list.
  2. Go to Infrastructure > Resources.
  3. From Resources, click the SNMP resource name > resource Details > Monitors > Template.
  4. From the Templates screen, click +Assign Templates.
  5. From Apply Templates > Select Templates > Available templates, select the templates.
  6. Click Assign.
    The Templates screen displays the selected templates.

Step 4: View graphs

The gateway monitors the application using the assigned templates and displays the results in a graphical format. Select SNMP resource name > Resource Details > Metrics to view the graphs.

Validation

Validation

Dashboard

After initiating the SNMP monitoring, use the dashboard to gather customized visibility of the resources in your managed environment. Create widgets such as Metric Value, Time Series, Metric List, and Top Metric Utilization to track the performance of the resources.

Dashboard

Dashboard

Reports

The following reports are generated for viewing the SNMP data:

  • Custom Metric report
  • Standard reports - Metric and Inventory reports

For more information, see Reports Overview.

Scenarios and examples

System uptime monitoring scenario

Problem: Tim Tools, an administrator wants to assign a monitor that verifies the number of days since the SNMP-enabled resources like network devices and servers are up and running.

Solution: Tim can use the System Uptime monitor to verify the number of days and time since the resources are up and running. When the system reboots, the monitor replaces the existing uptime value with zero.

CISCO memory monitoring scenario

Problem: Tim Tools wants to monitor the memory performance of the applications on the managed device and receive alerts if the system performance degrades due to increased memory utilization.

Solution: Tim can use the Cisco Memory monitor to check the memory utilization of the applications on the managed device.

Java-based mathematical expression examples

(jrockitRuntimeFreeHeap / jrockitRuntimeTotalHeap) * 100
zySysMemoryPoolUtilization
100 - jrockitRuntimeHeapFreePercent
sysUpTime/100
PARSER(sonusSystemHardDiskUsageUsedDiskSpace,'{0}','(\d+(\.\d+)*)')
if(sonusSystemPowerSupplyStatusPresent==1,sonusSystemPowerSupplyStatusPowerFault,-1)
(totalBytesIn * 8) / 1024
if(hpStackPortNeighbor ne "0.0", hpStackPortOperStatus, 0)
if((nsResSessMaxium > 0),(nsResSessAllocate/nsResSessMaxium)*100,0)
if (ifAdminStatus != 1,0,ifOperStatus)
if(cfwHardwareStatusDetail_6 eq "Failover Off",0,cfwHardwareStatusValue_6)
PARSER(currentOduTcmC1dayBbe,'{0}','\d+')
MATCHER(ibNode2ServiceDesc, '(\+|\-){1}(\d+\.\d)')
if(isDef(bwHCAggInLan),bwHCAggInLan,bwAggInLan)

SNMP Extended script sample

The following sample script describes how to monitor Cisco IPsec Phase-1 IKE Site-to-Site Tunnel status. The monitor observes the tunnels that are provided while assigning a template. Different components of the sample script are described. Scripts are applied on each device individually and not through device management policy.

Import libraries

Import all libraries in this section based on your requirement. The required import libraries are:

  • import groovy.transform.CompileStatic
  • import com.vistara.gateway.plugin.snmp.monitor.SnmpExtendedAPI
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import groovy.transform.CompileStatic;
import com.vistara.gateway.plugin.snmp.monitor.SnmpExtendedAPI;

Define a user-defined class

The user-defined class enables you to declare and initialize global variables.

Use the same metric name on the Setup > Monitoring > Monitors > Create a Monitor screen and in the script.

class CiscoIpSecTunnelStatus {
	private static final String VPN_TUNNEL_STATUS = (String) "cisco.vpn.ike.tunnel.status";
	private static final String VPN_REMOTE_PEER_IDENTITY = (String) "cisco.vpn.remote.peer.identity";
	private static final String VPN_REMOTE_PEER_NAME = (String) "cisco.vpn.name";
	
	private static final String VPN_DOWN_STATUS = (String) "2";
	private static final String VPN_UP_STATUS = (String) "1";
	
	private static final String EMPTY_STRING = (String) "";

	private static final String VPN_TUNNEL_REMOTE_PEER_TABLE = (String) "1.3.6.1.4.1.9.9.171.1.2.3.1.7";

Implement business logic

Implement business logic using the following required function:
void execute(SnmpExtendedAPI api) throws Exception {

Do not change the method signature.

void execute(SnmpExtendedAPI api) throws Exception {

Parse user-defined input

Parse user-defined input using the following API methods depending on the component or monitor level scope:

  • api.getComponentScopeMap();
  • api.getComponentScopeMap(index);
  • api.getMonitorScopeValue(key);
Parsing Using User-Defined Input

Parsing Using User-Defined Input

List<HashMap<String, String>> compList = (List<HashMap<String, String>>) api.getComponentScopeMap();
	if (compList == null || compList.size() <= 0)
			return;
	for (int i = 0; i <= compList.size() - 1; i++)
	
	{
		HashMap<String, String> compMap = (HashMap<String, String>) compList.get(i);
		if (compMap != null && compMap.size() > 0) 
		{
			String compRemoteIp = (String) compMap.get(VPN_REMOTE_PEER_IDENTITY);
				String compName = (String) compMap.get(VPN_REMOTE_PEER_NAME);
				if (compName == null || EMPTY_STRING.equals(compName) || compRemoteIp == null || EMPTY_STRING.equals(compRemoteIp))
				{
					continue;
				}
				reqVpnEntries.put(compRemoteIp, compName);
		}
	}

Query SNMP OIDs

Query SNMP OIDs using one of the following API methods based on your requirement:

  • api.getSnmpRequest(String sOid);
  • api.getSnmpRequest(String[] sOids);
  • api.getSnmpRequest(String sOid, String format);
  • api.getSnmpTable(String sOid);
  • api.getSnmpTable(String sOid, String format);
HashMap<String, String> resultant = (HashMap<String, String>) api.getSnmpTable(VPN_TUNNEL_REMOTE_PEER_TABLE);

Process SNMP OID results

Use one of the following API methods to store or delete previous poll values in the cache:

  • api.getPersistantValue(uuid);
  • api.deletePersistantValue(String uuid);

Use the following API methods to get device details into the script

  • api.getResourceIp();
  • api.getResourceName();
  • api.getResourceUuid();

Use the following API methods based on user requirement:

  • api.getBigDecimalMetricValue(String instance, String metric);
  • api.getInstanceNames();
  • api.getMetrics(String instance);
  • api.getStringMetricValue(String instance, String metric);
if (resultant != null)
{
	for (String peerVariable : resultant.values()) 
	{
		if (peerVariable != null && !peerVariable.isEmpty()) 
		{
			currentPeers.add(peerVariable);
		}
	}
}

Add output metric values

Add output metric values in a standard JSON format using the following API methods based on your requirement:

  • api.addOutputMetric(HashMap<String, HashMap<String, String» metricResultMap);
  • api.addOutputMetric(String compName, HashMap<String, String> metricResultMap);
  • api.addOutputMetric(String metric, String value);
  • api.addOutputMetric(String metric, String instance, String value);
  • api.addOutputMetric(String metric, String instance, int value);
  • api.addOutputMetric(String metric, String instance, long value);
  • api.addOutputMetric(String metric, String instance, double value);
  • api.addOutputMetric(String metric, String instance, float value);
for (String reqVpnIP : reqVpnEntries.keySet())
{
	if (currentPeers.contains(reqVpnIP))
	{
		HashMap<String, String> temp = new HashMap<>();
		temp.put(VPN_TUNNEL_STATUS, VPN_UP_STATUS); // Here: 1=>OK and
		// 2=>Critical
				temp.put(VPN_REMOTE_PEER_IDENTITY, reqVpnIP);
				api.addOutputMetric(reqVpnEntries.get(reqVpnIP), temp);
			
	} 
	else
	{
		HashMap<String, String> temp = new HashMap<>();
		temp.put(VPN_TUNNEL_STATUS, VPN_DOWN_STATUS); // Here: 1=>OK andG
														// 2=>Critical
		temp.put(VPN_REMOTE_PEER_IDENTITY, reqVpnIP);
		api.addOutputMetric(reqVpnEntries.get(reqVpnIP), temp);
	}
}

Original sample script

import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import groovy.transform.CompileStatic;
import com.vistara.gateway.plugin.snmp.monitor.SnmpExtendedAPI;

class CiscoIpSecTunnelStatus {
	private static final String VPN_TUNNEL_STATUS = (String) "cisco.vpn.ike.tunnel.status";
	private static final String VPN_REMOTE_PEER_IDENTITY = (String) "cisco.vpn.remote.peer.identity";
	private static final String VPN_REMOTE_PEER_NAME = (String) "cisco.vpn.name";
	
	private static final String VPN_DOWN_STATUS = (String) "2";
	private static final String VPN_UP_STATUS = (String) "1";
	
	private static final String EMPTY_STRING = (String) "";

	private static final String VPN_TUNNEL_REMOTE_PEER_TABLE = (String) "1.3.6.1.4.1.9.9.171.1.2.3.1.7";

	@CompileStatic
	void execute(SnmpExtendedAPI api) throws Exception {

		HashSet<String> currentPeers = new HashSet<>();
		HashMap<String, String> reqVpnEntries = new HashMap<>();

		/*
		 * Step 1: Fetching user given component inputs using API Call and
		 * prepares reqVpnEntries hash with VPN_REMOTE_PEER_IP as key and
		 * VPN_REMOTE_PEER_NAME as value
		 * 
		 */

		List<HashMap<String, String>> compList = (List<HashMap<String, String>>) api.getComponentScopeMap();
		if (compList == null || compList.size() <= 0)
			return;

		for (int i = 0; i <= compList.size() - 1; i++) {
			HashMap<String, String> compMap = (HashMap<String, String>) compList.get(i);
			if (compMap != null && compMap.size() > 0) {
				String compRemoteIp = (String) compMap.get(VPN_REMOTE_PEER_IDENTITY);
				String compName = (String) compMap.get(VPN_REMOTE_PEER_NAME);
				if (compName == null || EMPTY_STRING.equals(compName) || compRemoteIp == null || EMPTY_STRING.equals(compRemoteIp)){
					continue;
				}
				reqVpnEntries.put(compRemoteIp, compName);
			}
		}

		/*
		 * Step 2: SNMPWALK for IKE Remote Peer IP table and prepares
		 * currentPeers hashset
		 * 
		 */

		HashMap<String, String> resultant = (HashMap<String, String>) api.getSnmpTable(VPN_TUNNEL_REMOTE_PEER_TABLE);

		
		if (resultant != null){
			for (String peerVariable : resultant.values()) {
				if (peerVariable != null && !peerVariable.isEmpty()) {
					currentPeers.add(peerVariable);
				}
			}
		}

		for (String reqVpnIP : reqVpnEntries.keySet()) {
			if (currentPeers.contains(reqVpnIP)) {
				HashMap<String, String> temp = new HashMap<>();
				temp.put(VPN_TUNNEL_STATUS, VPN_UP_STATUS); // Here: 1=>OK and
													// 2=>Critical
				temp.put(VPN_REMOTE_PEER_IDENTITY, reqVpnIP);
				api.addOutputMetric(reqVpnEntries.get(reqVpnIP), temp);
			} else {
				HashMap<String, String> temp = new HashMap<>();
				temp.put(VPN_TUNNEL_STATUS, VPN_DOWN_STATUS); // Here: 1=>OK andG
													// 2=>Critical
				temp.put(VPN_REMOTE_PEER_IDENTITY, reqVpnIP);
				api.addOutputMetric(reqVpnEntries.get(reqVpnIP), temp);
			}
		}
	}
}

Reference

Object identifiers (OIDs)

OIDs are unique identifiers to classify objects defined in MIB files for each managed device. For example: sysUpTime (1.3.6.1.2.1.1.3.0).

Types of OIDs are:

  • Scalar objects: A single instance in a managed device.
    Scalar objects contain only a single instance with a 0 sub-identifier appended to the object identifier. For example, sysUpTime (1.3.6.1.2.1.1.3.0) indicates the time (in hundredths of a second) when the network management portion of the system was last re-initialized.
  • Tabular/Columnar objects: Multiple instances in a managed device.
    Tabular or Columnar objects contain multiple instances in a managed device. These instances are identified using a sequence of sub-identifiers appended to the object identifier. For example, ifOperStatus(1.3.6.1.2.1.2.2.1.8) indicates the current operational state of the interface.

Administrators can easily retrieve object details using OIDs from the MIBs stored on the SNMP agent.

OID lookup index

The Lookup Index gets the index of the OID that is appended to the end of the Lookup OID.
For example, provide 1.3.6.1.2.1.99.1.1.1.5 as OID and 1.3.6.1.2.1.47.1.1.1.1.7 as Lookup OID.

Lookup Index

OID lookup value

The Lookup Value gets the value of the OID that is appended to the end of the Lookup OID.
For example, provide 1.3.6.1.2.1.99.1.1.1.5 as OID and 1.3.6.1.2.1.47.1.1.1.1.7 as Lookup OID.

Lookup Value

Message types

SNMP messages are sent and received between the SNMP manager and agent using Pull (Poll) and Push technology. The SNMP manager initiates the communication, and the agent forwards the response using the Transmission Control Protocol/Internet Protocol (TCP/IP) or User Datagram Protocol (UDP).

Types of SNMP messages available for SNMP monitoring are:

  • GETRequest
  • RESPONSE
  • GETNEXTRequest
  • GETBULKRequest
  • SETRequest
  • TRAP
  • INFORMRequest

Tokens

TokenDescription
${severity}Alert state. For example, Critical, Warning, and OK.
${metric.name}Metric name
${component.name}Component name
${metric.value}Value of the metric or component.
${resource.name}Device hostname.
${resource.ip}IP address of the device.
${threshold}Threshold value configured for the alert state.
${repeat.count}Configured repeat count for the respective alert state.
${resource.ipaddress}IP address of the device.
${resource.mac}MAC address of the device.
${resource.serialno}Serial Number of the device.
${resource.make}Make of the device.
${resource.model}Device model.
${resource.hostname}Device hostname.
${resource.uniqueid}Unique ID/UUID of the device.
${resource.os}Operating system of the device