- Administration >
- Monitoring for MongoDB >
- Monitor MongoDB With SNMP on Linux
Monitor MongoDB With SNMP on Linux¶
On this page
Note
Enterprise Feature (Deprecated)
Starting in MongoDB 6.0, SNMP is deprecated and will be removed in the next release. To monitor your deployment, use MongoDB Ops Manager.
SNMP is only available in MongoDB Enterprise.
Overview¶
MongoDB Enterprise can provide database metrics via SNMP, in
support of centralized data collection and aggregation. This procedure
explains the setup and configuration of a mongod instance
as an SNMP subagent, as well as initializing and testing of SNMP
support with MongoDB Enterprise.
See also
Troubleshoot SNMP and Monitor MongoDB Windows with SNMP for complete instructions on using MongoDB with SNMP on Windows systems.
Considerations¶
- SNMP support is only available in
mongod. Other MongoDB tools such asmongosdo not support SNMP. mongoddoes not support the use of SNMP traps.
Configuration Files¶
MongoDB Enterprise includes the following SNMP configuration files:
MONGOD-MIB.txt:The management information base (MIB) file that defines MongoDB’s SNMP output. On Ubuntu and Debian platforms, this file is shipped compressed as
MONGOD-MIB.txt.gzand must be decompressed withgunzip.mongod.conf.subagent:The configuration file to run
mongodas the SNMP subagent. This file sets SNMP run-time configuration options, including theagentXSocketto connect to the SNMP master.mongod.conf.master:The configuration file to run
mongodas the SNMP master. This file sets SNMP run-time configuration options, including theagentaddressto run on.
The MongoDB SNMP configuration files are provided with your MongoDB Enterprise installation, as follows:
If you installed MongoDB Enterprise via a package manager, these files are installed to the following directory as part of the package installation process:
Platform Path RHEL / CentOS /usr/share/doc/mongodb-enterprise-server-5.0.0Ubuntu / Debian /usr/share/doc/mongodb-enterprise-serverSUSE /usr/share/doc/packages/mongodb-enterprise-serverIf you installed MongoDB Enterprise from a
.tgztarball, these files were included in the tarball.
Procedure¶
Copy configuration files.¶
Copy the MongoDB SNMP configuration files from their installation location to their target directories, according to your platform:
- RHEL / CentOS
- Ubuntu / Debian
- SUSE
Navigate to the location where the SNMP files were installed. For example, if you installed the latest version of MongoDB via the
yumpackage manager:Copy the two MongoDB SNMP files to their target directories:
Navigate to the location where the SNMP files were installed. For example, if you installed MongoDB via the
aptpackage manager:Copy the
MONGOD-MIB.txt.gzfile to its target directory, and unzip it:Copy the
mongod.conf.subagentfile to its target directory:
Navigate to the location where the SNMP files were installed. For example, if you installed the latest version of MongoDB via the
zypperpackage manager:Copy the two MongoDB SNMP files to their target directories:
Configure SNMP.¶
Edit the /etc/snmp/snmpd.conf file, and add the following:
Install
snmpdif it is not already installed:Edit the
/etc/snmp/snmpd.conffile, and add the following:
Edit the /etc/snmp/snmpd.conf file, and add the following:
This configuration defines a UNIX domain socket for communication
between the master (snmpd) and sub-agent (MongoDB), and
defines basic SNMP permissions for access to the relevant MongoDB
SNMP fields.
Note
To bind your master to a non-localhost IP address, add that IP
address to the agentaddress field in the
/etc/snmp/snmpd.conf file, and update the appropriate network
security ACLs to permit a valid address range. An address range of
10.0.0.0/8 with a security name of “mynetwork” has been provided in
the mongod.conf.master configuration file as an example.
The above configuration is given as an example only; you may wish to customize permissions based on your site security requirements. While MongoDB support can provide guidance on configuring MongoDB for SNMP, configuring SNMP on operating systems is out of scope.
Start SNMP.¶
Start SNMP on your system using the initialization system appropriate for your version of Linux:
For Linux systems using systemd (
systemctlcommand):For Linux systems using System V init (
servicecommand):
Start MongoDB.¶
Start mongod with the
snmp-subagent to send data to the
SNMP master.
Confirm SNMP data retrieval.¶
Verify that MongoDB is accessible for SNMP queries with the
snmpwalk testing command.
Install
snmpwalkon your system:Run
snmpwalkwith the following parameters to verify the ability to collect data frommongod:
DEBIAN ONLY: If necessary, add the
non-freerepository to your/etc/apt/sources.listfile to access thesnmp-mibs-downloaderpackage. For example, on Debian 9 “Stretch”, the primary repo entries might look like this:DEBIAN / UBUNTU: Install the
snmp-mibs-downloaderpackage to supply necessary MIB files, then restart thesnmpdservice to reload the new MIB files:DEBIAN / UBUNTU: Run
snmpwalkwith the following parameters to verify the ability to collect data frommongod:
The snmpwalk command should display current values for SNMP fields
such as sysUpTime, and memoryResident, among others.
Note
The port used in the above snmpwalk testing command, port 161,
is the default port for the snmpd service, not the primary
port for the mongod. If you have
configured a different port for your snmpd service, supply that
here instead.
Optional: Run MongoDB as SNMP Master¶
You can run mongod with the
snmp-master option for testing
purposes. To do this, use the SNMP master configuration file instead of
the subagent configuration file. From the directory containing the
unpacked MongoDB installation files:
Note
To bind your master to a non-localhost IP address, add that IP
address to the agentaddress field in the
/etc/snmp/mongod.conf file, and update the appropriate network
security ACLs to permit a valid address range. An address
range of 10.0.0.0/8 with a security name of “mynetwork” has been
provided in the master configuration file as an example.
Then, start mongod with the
snmp-master option: