Configuring and setting up the SNMP trap in ApexSQL Monitor

Applies to
ApexSQL Monitor

Summary
This article explains how to configure SNMP service for localhost, and set up the SNMP trap in ApexSQL Monitor, as a part of the alert actions in system, SQL Server and database performance monitoring.

Description

Used as a protocol for monitoring the network resources and networking devices, Simple Network Management Protocol (or SNMP) is the communication protocol that collects information from IP-enabled devices or systems in collaboration with SNMP agent, which can be Windows-based or a third-party software.

The collected and processed information based on specific alert or event rules are SNMP traps, which can be sent, received and analyzed. Also, the important element of SNMP is the SNMP management software (or trap destination), by which user can determine what exactly happened when SNMP trap is sent.

ApexSQL Monitor supports SNMPv1 and SNMPv2 traps. To send the SNMP trap from ApexSQL Monitor, the prerequisites include an installed SNMP service (Windows feature), and a SNMP manager (SNMP trap destination) by choice that will receive those SNMP trap(s).

  1. How to configure SNMP service to use it on the local machine?

    The SNMP is usually included as the active Windows feature. Check its presence in the Control Panel, under Turn Windows features on or off option in Programs tab. If it is not checked, install it on the machine where the ApexSQL Monitor service is running, because alerting information are included in central repository database.

    After installing and (optionally) restarting the machine, configure the SNMP service to receive SNMP traps from any source, through Services management console, and make sure it is running.

    Open the Properties of the SNMP Service:

    In Log On tab, check the Local System Account option.

    Quick tip icon

    Quick tip:

    If credentials for specified user account are in use, provide corresponding permissions for that user utilizing ApexSQL Monitor.

    After that, go to the Agent tab, and check the Service options like in picture below:

    The Applications, and especially End-to-end options are the most important to check, because the Applications option allows sending the SNMP traps from the software solutions as ApexSQL Monitor is, in collaboration with SNMP service, and End-to-end option sets the local machine to act like an IP host and listener (localhost), which will be used in setting the SNMP trap in ApexSQL Monitor’s Send SNMP trap feature.

    Select the Traps tab and input the default community name string, public (it is case-sensitive), and then click on the Add to list button:

    If the Add to list button remains disabled, the string is added. When input, a community name string identifies the IP host, and validates the SNMP trap request from its source (in this case, that will be ApexSQL Monitor).

    Quick tip icon

    Quick tip:

    Use the public community string for non-restricted usage of localhost as an IP host through SNMP service.

    In the Security tab, select the option Accept SNMP packets from any host:

    Alternatively, a single host or hosts can be added to the list of trusted hosts.

  2. How to set and send SNMP trap from ApexSQL Monitor?

    The SNMP trap sending feature in ApexSQL Monitor is a part of alert actions, along with two preset alert action profiles for determining deadlocks in SQL server performance.

    With sending SNMP traps functionality, ApexSQL Monitor sends an alert action to the users that are not connected on the Internet, and are not capable of receiving alert actions via email. Also, this feature fully integrates with ApexSQL Monitor as an SNMP trap sender, into one unified monitoring system.

    Select the monitored SQL Server instance, and choose the Metrics tab in corresponding view.

    In this case, all of the System, SQL Server and Database, Wait stats and Index metrics with their preset thresholds will be selected, as a single centralized and unified alerting system. Otherwise, particular metrics can be selected according to specific user requirements. Notice that some of the Alerting option checkboxes for particular metrics are not selected, because their threshold values are not available at the moment and they can be set manually, in order to include them in the future alert action.

    Quick tip icon

    Quick tip:

    The SNMP trap sending is related to alert triggering event, if there is no alert activity, no SNMP trap will be sent.

    To set the alert action profile for sending the SNMP trap whenever some of the selected alert triggers, create a new profile within Manage alert action profiles option, as shown in picture below:

    Click the New button in Alert action profiles modal dialog, as shown below:

    Set the custom name for it. For this occasion, name will be Test SNMP trap.

    After setting the name, click the Create SNMP trap button.

    In the picture above, notice that two alerting actions shows in the list for selected profile, Execute SQL (which appears as default) and Send SNMP trap. As can be seen, there are three types of alerting actions as options: Create SQL script, Create command (batch file) and Create SNMP trap. In this article, the focus is on creating a profile for sending the SNMP trap only, so remove the Execute SQL alerting action by clicking red [x] on the right side.

    The next step is to set the SNMP provider, by clicking the button as shown below:

    Notice that the number of the port is already set, because SNMP uses UDP port 162 for SNMP trap messages. Also, community name string is set to public, by default, and the version of SNMP traps can be changed between V1 and V2.

    In this article, a localhost will be the SNMP provider, so input necessary information like in picture below, and save the provider configuration:

    The name of the provider is just a name of the profile, and an IP address identify the host.

Testing the SNMP trap

When all is set, press Test button, and the success message should appear:

Testing the alert action also sends the initial SNMP trap to a SNMP manager, identifying the local machine name.

After saving the SNMP provider configuration and testing the execution of the alert action, the Test SNMP trap alert action profile can be applied to all metrics or selected group.

Quick tip icon

Important notice:

In this article, the SNMP provider is the localhost. To send SNMP traps through remote machine, obtain its valid IP address, and acquire necessary permissions in order to use ApexSQL Monitor remotely.

Visual interpretation of SNMP trap sending process in ApexSQL Monitor

FAQs

Q: How to determine the IP address for the localhost?

A: Although the default address for the localhost is 127.0.0.1, the IP(v4) address of the localhost provider can be obtained with this PowerShell script below, and result will appear below the last line of the code:

$IP = get - WmiObject Win32_NetworkAdapterConfiguration |
WHERE {$_.Ipaddress.length - gt 1 } $IP.ipaddress [0]

Q: How do I determine the IP address of a remote machine?

A: The first requirement is that the access to the remote machine is permitted. In that case, use this PowerShell script to obtain the IP address:

Test - Connection $COMPUTERNAME - count 1 | SELECT @{Name = "Computername";Expression = {$_.Address}},Ipv4Address

Q: Can the alert (or set of alerts) be sent within multiple SNMP traps at once?

A: Yes, it can. Create a new profile, set the desired number of alert actions profiles, configured separately for names and IP addresses. After creating and saving the profile, it can be applied to the metrics. See the example in picture below:

Q: Can I combine all of these three alert actions (Create SQL script, Create command and Create SNMP trap) to execute them all at once?

A: All of the mentioned options can be included together into single action profile, and set the specific tasks within them separately. So, yes, it is possible to execute SQL script, run batch file and send the SNMP trap at the same time when some alert triggers.

Q: I have set everything as stated, but I still don’t see any SNMP trap received?

A: The SNMP traps sends every time some alert or group of alerts trigger, which relates with more or less critical threshold value. If there is no activity, there will be no alert action that will send the SNMP trap, and it will remain inactive. Use Test functionality to force alert check, and then analyze the thread in a SNMP trap manager.

Q: How can I receive and analyze the SNMP traps sent from ApexSQL Monitor?

A: ApexSQL Monitor only sends the SNMP traps, and there is no possibility to track them or analyze them further within the application. There is a kind of software solution called SNMP manager, which can receive and show the SNMP trap in particular form of coded information: through object identifier (OID), which is the part of the MIB file.

Q: Where I can find the MIB file of ApexSQL Monitor?

A: ApexSQL Monitor’s MIB file is placed in c:/Program Files/ApexSQL Monitor/MIB.

ApexSQL Monitor MIB file definitions overview

MonitorTrap variablesSyntaxDescriptionApexSQL Monitor OID value
MonitorTrap (Initial trap) “This is a ApexSQL Monitor TRAP message.” 0
Machine DisplayString “Machine that triggered the alert.” 1
Instance DisplayString “SQL Server instance that triggered the alert.” 2
Device DisplayString “Device that triggered the alert.” 3
Database DisplayString “Database that triggered the alert.” 4
Table DisplayString “Table that triggered the alert.” 5
Metric DisplayString “Name of the metric.” 6
MetricDescription DisplayString “Description of the metric.” 7
Value DisplayString “Measured value.” 8
TimeStamp DisplayString “Date and time when the alert was raised.” 9
Severity DisplayString “Severity of the alert.” 10
Description DisplayString “Description of the alert.” 11
Comments DisplayString “Alert related comments.” 12