Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb?at=release/7.4
The template to monitor single MongoDB server by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB node by Zabbix Agent 2 — collects metrics by polling zabbix-agent2.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
Test availability: zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.PCT.USED.MAX.WARN} | Maximum percentage of used connections |
80 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
10s |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | Minimum number of available WiredTiger read or write tickets remaining |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get server status | Returns a database's state. |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Get Replica Set status | Returns the replica set status from the point of view of the member where the method is run. |
Zabbix agent | mongodb.rs.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Get oplog stats | Returns status of the replica set, using data polled from the oplog. |
Zabbix agent | mongodb.oplog.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| Get collections usage stats | Returns usage statistics for each collection. |
Zabbix agent | mongodb.collections.usage["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB version | Version of the MongoDB server. |
Zabbix agent | mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| Uptime | Number of seconds that the mongod process has been active. |
Dependent item | mongodb.uptime Preprocessing
|
| Asserts: message, rate | The number of message assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.msg.rate Preprocessing
|
| Asserts: user, rate | The number of "user asserts" that have occurred per second. These are errors that user may generate, such as out of disk space or duplicate key. |
Dependent item | mongodb.asserts.user.rate Preprocessing
|
| Asserts: warning, rate | The number of warnings raised per second. |
Dependent item | mongodb.asserts.warning.rate Preprocessing
|
| Asserts: regular, rate | The number of regular assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.regular.rate Preprocessing
|
| Asserts: rollovers, rate | Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions. |
Dependent item | mongodb.asserts.rollovers.rate Preprocessing
|
| Active clients: writers | The number of active client connections performing write operations. |
Dependent item | mongodb.active_clients.writers Preprocessing
|
| Active clients: readers | The number of the active client connections performing read operations. |
Dependent item | mongodb.active_clients.readers Preprocessing
|
| Active clients: total | The total number of internal client connections to the database including system threads as well as queued readers and writers. |
Dependent item | mongodb.active_clients.total Preprocessing
|
| Current queue: writers | The number of operations that are currently queued and waiting for the write lock. A consistently small write-queue, particularly of shorter operations, is no cause for concern. |
Dependent item | mongodb.current_queue.writers Preprocessing
|
| Current queue: readers | The number of operations that are currently queued and waiting for the read lock. A consistently small read-queue, particularly of shorter operations, should cause no concern. |
Dependent item | mongodb.current_queue.readers Preprocessing
|
| Current queue: total | The total number of operations queued waiting for the lock. |
Dependent item | mongodb.current_queue.total Preprocessing
|
| Operations: command, rate | The number of commands issued to the database the mongod instance per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| Operations: delete, rate | The number of delete operations the mongod instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| Operations: update, rate | The number of update operations the mongod instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| Operations: query, rate | The number of queries received the mongod instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| Operations: insert, rate | The number of insert operations received since the mongod instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| Operations: getmore, rate | The number of "getmore" operations since the mongod instance per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| New connections, rate | Rate of all incoming connections created to the server. |
Dependent item | mongodb.connections.rate Preprocessing
|
| Connections, available | The number of unused incoming connections available. |
Dependent item | mongodb.connections.available Preprocessing
|
| Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| Requests, rate | Number of distinct requests that the server has received per second |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| Document: deleted, rate | Number of documents deleted per second. |
Dependent item | mongod.document.deleted.rate Preprocessing
|
| Document: inserted, rate | Number of documents inserted per second. |
Dependent item | mongod.document.inserted.rate Preprocessing
|
| Document: returned, rate | Number of documents returned by queries per second. |
Dependent item | mongod.document.returned.rate Preprocessing
|
| Document: updated, rate | Number of documents updated per second. |
Dependent item | mongod.document.updated.rate Preprocessing
|
| Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| Memory: mapped | Amount of mapped memory by the database. |
Dependent item | mongodb.mem.mapped Preprocessing
|
| Memory: mapped with journal | The amount of mapped memory, including the memory used for journaling. |
Dependent item | mongodb.mem.mapped_with_journal Preprocessing
|
| Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| Memory: virtual | Amount of virtual memory used by the mongod process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB node: Connection to MongoDB is unavailable | Connection to MongoDB instance is currently unavailable. |
last(/MongoDB node by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB node: Version has changed | MongoDB version has changed. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"],#2) and length(last(/MongoDB node by Zabbix agent 2/mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]))>0 |
Info | Manual close: Yes |
| MongoDB node: mongod process has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB node by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB node: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB node by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB node: Total number of open connections is too high | Too few available connections. |
min(/MongoDB node by Zabbix agent 2/mongodb.connections.current,5m)/(last(/MongoDB node by Zabbix agent 2/mongodb.connections.available)+last(/MongoDB node by Zabbix agent 2/mongodb.connections.current))*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN} |
Warning | |
| MongoDB node: Too many cursors opened by MongoDB for clients | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB node: Too many cursors are timing out | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Collections | Contains a count of the number of collections in that database. |
Dependent item | mongodb.db.collections["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max number | Maximum number of documents that may be present in a capped collection. |
Dependent item | mongodb.collection.max_number["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.total.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.read_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.write_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.queries.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.getmore.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.insert.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.update.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.remove.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.commands.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.total.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.read_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.write_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.queries.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.getmore.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.insert.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.update.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.remove.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.commands.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication discovery | Collect metrics by Zabbix agent if it exists. |
Dependent item | mongodb.rs.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node state | An integer between 0 and 10 that represents the replica state of the current member. |
Dependent item | mongodb.rs.state[{#RS_NAME}] Preprocessing
|
| Replication lag | Delay between a write operation on the primary and its copy to a secondary. |
Dependent item | mongodb.rs.lag[{#RS_NAME}] Preprocessing
|
| Number of replicas | The number of replicated nodes in current ReplicaSet. |
Dependent item | mongodb.rs.total_nodes[{#RS_NAME}] Preprocessing
|
| Number of unhealthy replicas | The number of replicated nodes with member health value = 0. |
Dependent item | mongodb.rs.unhealthy_count[{#RS_NAME}] Preprocessing
|
| Unhealthy replicas | The replicated nodes in current ReplicaSet with member health value = 0. |
Dependent item | mongodb.rs.unhealthy[{#RS_NAME}] Preprocessing
|
| Apply batches, rate | Number of batches applied across all databases per second. |
Dependent item | mongodb.rs.apply.batches.rate[{#RS_NAME}] Preprocessing
|
| Apply batches, ms/s | Fraction of time (ms/s) the mongod has spent applying operations from the oplog. |
Dependent item | mongodb.rs.apply.batches.ms.rate[{#RS_NAME}] Preprocessing
|
| Apply ops, rate | Number of oplog operations applied per second. |
Dependent item | mongodb.rs.apply.rate[{#RS_NAME}] Preprocessing
|
| Buffer | Number of operations in the oplog buffer. |
Dependent item | mongodb.rs.buffer.count[{#RS_NAME}] Preprocessing
|
| Buffer, max size | Maximum size of the buffer. |
Dependent item | mongodb.rs.buffer.max_size[{#RS_NAME}] Preprocessing
|
| Buffer, size | Current size of the contents of the oplog buffer. |
Dependent item | mongodb.rs.buffer.size[{#RS_NAME}] Preprocessing
|
| Network bytes, rate | Amount of data read from the replication sync source per second. |
Dependent item | mongodb.rs.network.bytes.rate[{#RS_NAME}] Preprocessing
|
| Network getmores, rate | Number of getmore operations per second. |
Dependent item | mongodb.rs.network.getmores.rate[{#RS_NAME}] Preprocessing
|
| Network getmores, ms/s | Fraction of time (ms/s) required to collect data from getmore operations. |
Dependent item | mongodb.rs.network.getmores.ms.rate[{#RS_NAME}] Preprocessing
|
| Network ops, rate | Number of operations read from the replication source per second. |
Dependent item | mongodb.rs.network.ops.rate[{#RS_NAME}] Preprocessing
|
| Network readers created, rate | Number of oplog query processes created per second. |
Dependent item | mongodb.rs.network.readers.rate[{#RS_NAME}] Preprocessing
|
| MongoDB {#RS_NAME}: Oplog time diff | Oplog window: difference between the first and last operation in the oplog. Only present if there are entries in the oplog. |
Dependent item | mongodb.rs.oplog.timediff[{#RS_NAME}] Preprocessing
|
| Preload docs, rate | Number of documents loaded per second during the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.rate[{#RS_NAME}] Preprocessing
|
| Preload docs, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.ms.rate[{#RS_NAME}] Preprocessing
|
| Preload indexes, rate | Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.rate[{#RS_NAME}] Preprocessing
|
| Preload indexes, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.ms.rate[{#RS_NAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB node: Node in ReplicaSet changed the state | Node in ReplicaSet changed the state. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#2) |
Warning | Manual close: Yes |
| MongoDB node: Replication lag with primary is too high | min(/MongoDB node by Zabbix agent 2/mongodb.rs.lag[{#RS_NAME}],5m)>{$MONGODB.REPL.LAG.MAX.WARN} |
Warning | ||
| MongoDB node: There are unhealthy replicas in ReplicaSet | last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy_count[{#RS_NAME}])>0 and length(last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy[{#RS_NAME}]))>0 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| WiredTiger metrics | Collect metrics of WiredTiger Storage Engine if it exists. |
Dependent item | mongodb.wired_tiger.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| WiredTiger cache: bytes | Size of the data currently in cache. |
Dependent item | mongodb.wired_tiger.cache.bytes_in_cache[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: in-memory page splits | In-memory page splits. |
Dependent item | mongodb.wired_tiger.cache.splits[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: bytes, max | Maximum cache size. |
Dependent item | mongodb.wired_tiger.cache.maximum_bytes_configured[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: max page size at eviction | Maximum page size at eviction. |
Dependent item | mongodb.wired_tiger.cache.max_page_size_eviction[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: modified pages evicted | Number of pages, that have been modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.modified_pages_evicted[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages read into cache | Number of pages read into the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_read[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages written from cache | Number of pages written from the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_written[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages held in cache | Number of pages currently held in the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_in_cache[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages evicted by application threads, rate | Number of page evicted by application threads per second. |
Dependent item | mongodb.wired_tiger.cache.pages_evicted_threads.rate[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: tracked dirty bytes in the cache | Size of the dirty data in the cache. |
Dependent item | mongodb.wired_tiger.cache.tracked_dirty_bytes[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: unmodified pages evicted | Number of pages, that were not modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.unmodified_pages_evicted[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: read, available | Number of available read tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: read, out | Number of read tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.out[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: read, total tickets | Total number of read tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.totalTickets[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: write, available | Number of available write tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: write, out | Number of write tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.out[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: write, total tickets | Total number of write tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.totalTickets[{#SINGLETON}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB node: Available WiredTiger read tickets is low | Too few available read tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB node: Available WiredTiger write tickets is low | Too few available write tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb?at=release/7.2
The template to monitor single MongoDB server by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB node by Zabbix Agent 2 — collects metrics by polling zabbix-agent2.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
Test availability: zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.PCT.USED.MAX.WARN} | Maximum percentage of used connections |
80 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
10s |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | Minimum number of available WiredTiger read or write tickets remaining |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get server status | Returns a database's state. |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Get Replica Set status | Returns the replica set status from the point of view of the member where the method is run. |
Zabbix agent | mongodb.rs.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Get oplog stats | Returns status of the replica set, using data polled from the oplog. |
Zabbix agent | mongodb.oplog.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| Get collections usage stats | Returns usage statistics for each collection. |
Zabbix agent | mongodb.collections.usage["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB version | Version of the MongoDB server. |
Zabbix agent | mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| Uptime | Number of seconds that the mongod process has been active. |
Dependent item | mongodb.uptime Preprocessing
|
| Asserts: message, rate | The number of message assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.msg.rate Preprocessing
|
| Asserts: user, rate | The number of "user asserts" that have occurred per second. These are errors that user may generate, such as out of disk space or duplicate key. |
Dependent item | mongodb.asserts.user.rate Preprocessing
|
| Asserts: warning, rate | The number of warnings raised per second. |
Dependent item | mongodb.asserts.warning.rate Preprocessing
|
| Asserts: regular, rate | The number of regular assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.regular.rate Preprocessing
|
| Asserts: rollovers, rate | Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions. |
Dependent item | mongodb.asserts.rollovers.rate Preprocessing
|
| Active clients: writers | The number of active client connections performing write operations. |
Dependent item | mongodb.active_clients.writers Preprocessing
|
| Active clients: readers | The number of the active client connections performing read operations. |
Dependent item | mongodb.active_clients.readers Preprocessing
|
| Active clients: total | The total number of internal client connections to the database including system threads as well as queued readers and writers. |
Dependent item | mongodb.active_clients.total Preprocessing
|
| Current queue: writers | The number of operations that are currently queued and waiting for the write lock. A consistently small write-queue, particularly of shorter operations, is no cause for concern. |
Dependent item | mongodb.current_queue.writers Preprocessing
|
| Current queue: readers | The number of operations that are currently queued and waiting for the read lock. A consistently small read-queue, particularly of shorter operations, should cause no concern. |
Dependent item | mongodb.current_queue.readers Preprocessing
|
| Current queue: total | The total number of operations queued waiting for the lock. |
Dependent item | mongodb.current_queue.total Preprocessing
|
| Operations: command, rate | The number of commands issued to the database the mongod instance per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| Operations: delete, rate | The number of delete operations the mongod instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| Operations: update, rate | The number of update operations the mongod instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| Operations: query, rate | The number of queries received the mongod instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| Operations: insert, rate | The number of insert operations received since the mongod instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| Operations: getmore, rate | The number of "getmore" operations since the mongod instance per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| New connections, rate | Rate of all incoming connections created to the server. |
Dependent item | mongodb.connections.rate Preprocessing
|
| Connections, available | The number of unused incoming connections available. |
Dependent item | mongodb.connections.available Preprocessing
|
| Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| Requests, rate | Number of distinct requests that the server has received per second |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| Document: deleted, rate | Number of documents deleted per second. |
Dependent item | mongod.document.deleted.rate Preprocessing
|
| Document: inserted, rate | Number of documents inserted per second. |
Dependent item | mongod.document.inserted.rate Preprocessing
|
| Document: returned, rate | Number of documents returned by queries per second. |
Dependent item | mongod.document.returned.rate Preprocessing
|
| Document: updated, rate | Number of documents updated per second. |
Dependent item | mongod.document.updated.rate Preprocessing
|
| Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| Memory: mapped | Amount of mapped memory by the database. |
Dependent item | mongodb.mem.mapped Preprocessing
|
| Memory: mapped with journal | The amount of mapped memory, including the memory used for journaling. |
Dependent item | mongodb.mem.mapped_with_journal Preprocessing
|
| Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| Memory: virtual | Amount of virtual memory used by the mongod process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB node: Connection to MongoDB is unavailable | Connection to MongoDB instance is currently unavailable. |
last(/MongoDB node by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB node: Version has changed | MongoDB version has changed. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"],#2) and length(last(/MongoDB node by Zabbix agent 2/mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]))>0 |
Info | Manual close: Yes |
| MongoDB node: mongod process has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB node by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB node: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB node by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB node: Total number of open connections is too high | Too few available connections. |
min(/MongoDB node by Zabbix agent 2/mongodb.connections.current,5m)/(last(/MongoDB node by Zabbix agent 2/mongodb.connections.available)+last(/MongoDB node by Zabbix agent 2/mongodb.connections.current))*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN} |
Warning | |
| MongoDB node: Too many cursors opened by MongoDB for clients | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB node: Too many cursors are timing out | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Collections | Contains a count of the number of collections in that database. |
Dependent item | mongodb.db.collections["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max number | Maximum number of documents that may be present in a capped collection. |
Dependent item | mongodb.collection.max_number["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.total.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.read_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.write_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.queries.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.getmore.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.insert.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.update.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.remove.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.commands.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.total.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.read_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.write_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.queries.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.getmore.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.insert.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.update.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.remove.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.commands.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication discovery | Collect metrics by Zabbix agent if it exists. |
Dependent item | mongodb.rs.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node state | An integer between 0 and 10 that represents the replica state of the current member. |
Dependent item | mongodb.rs.state[{#RS_NAME}] Preprocessing
|
| Replication lag | Delay between a write operation on the primary and its copy to a secondary. |
Dependent item | mongodb.rs.lag[{#RS_NAME}] Preprocessing
|
| Number of replicas | The number of replicated nodes in current ReplicaSet. |
Dependent item | mongodb.rs.total_nodes[{#RS_NAME}] Preprocessing
|
| Number of unhealthy replicas | The number of replicated nodes with member health value = 0. |
Dependent item | mongodb.rs.unhealthy_count[{#RS_NAME}] Preprocessing
|
| Unhealthy replicas | The replicated nodes in current ReplicaSet with member health value = 0. |
Dependent item | mongodb.rs.unhealthy[{#RS_NAME}] Preprocessing
|
| Apply batches, rate | Number of batches applied across all databases per second. |
Dependent item | mongodb.rs.apply.batches.rate[{#RS_NAME}] Preprocessing
|
| Apply batches, ms/s | Fraction of time (ms/s) the mongod has spent applying operations from the oplog. |
Dependent item | mongodb.rs.apply.batches.ms.rate[{#RS_NAME}] Preprocessing
|
| Apply ops, rate | Number of oplog operations applied per second. |
Dependent item | mongodb.rs.apply.rate[{#RS_NAME}] Preprocessing
|
| Buffer | Number of operations in the oplog buffer. |
Dependent item | mongodb.rs.buffer.count[{#RS_NAME}] Preprocessing
|
| Buffer, max size | Maximum size of the buffer. |
Dependent item | mongodb.rs.buffer.max_size[{#RS_NAME}] Preprocessing
|
| Buffer, size | Current size of the contents of the oplog buffer. |
Dependent item | mongodb.rs.buffer.size[{#RS_NAME}] Preprocessing
|
| Network bytes, rate | Amount of data read from the replication sync source per second. |
Dependent item | mongodb.rs.network.bytes.rate[{#RS_NAME}] Preprocessing
|
| Network getmores, rate | Number of getmore operations per second. |
Dependent item | mongodb.rs.network.getmores.rate[{#RS_NAME}] Preprocessing
|
| Network getmores, ms/s | Fraction of time (ms/s) required to collect data from getmore operations. |
Dependent item | mongodb.rs.network.getmores.ms.rate[{#RS_NAME}] Preprocessing
|
| Network ops, rate | Number of operations read from the replication source per second. |
Dependent item | mongodb.rs.network.ops.rate[{#RS_NAME}] Preprocessing
|
| Network readers created, rate | Number of oplog query processes created per second. |
Dependent item | mongodb.rs.network.readers.rate[{#RS_NAME}] Preprocessing
|
| MongoDB {#RS_NAME}: Oplog time diff | Oplog window: difference between the first and last operation in the oplog. Only present if there are entries in the oplog. |
Dependent item | mongodb.rs.oplog.timediff[{#RS_NAME}] Preprocessing
|
| Preload docs, rate | Number of documents loaded per second during the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.rate[{#RS_NAME}] Preprocessing
|
| Preload docs, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.ms.rate[{#RS_NAME}] Preprocessing
|
| Preload indexes, rate | Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.rate[{#RS_NAME}] Preprocessing
|
| Preload indexes, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.ms.rate[{#RS_NAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB node: Node in ReplicaSet changed the state | Node in ReplicaSet changed the state. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#2) |
Warning | Manual close: Yes |
| MongoDB node: Replication lag with primary is too high | min(/MongoDB node by Zabbix agent 2/mongodb.rs.lag[{#RS_NAME}],5m)>{$MONGODB.REPL.LAG.MAX.WARN} |
Warning | ||
| MongoDB node: There are unhealthy replicas in ReplicaSet | last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy_count[{#RS_NAME}])>0 and length(last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy[{#RS_NAME}]))>0 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| WiredTiger metrics | Collect metrics of WiredTiger Storage Engine if it exists. |
Dependent item | mongodb.wired_tiger.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| WiredTiger cache: bytes | Size of the data currently in cache. |
Dependent item | mongodb.wired_tiger.cache.bytes_in_cache[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: in-memory page splits | In-memory page splits. |
Dependent item | mongodb.wired_tiger.cache.splits[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: bytes, max | Maximum cache size. |
Dependent item | mongodb.wired_tiger.cache.maximum_bytes_configured[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: max page size at eviction | Maximum page size at eviction. |
Dependent item | mongodb.wired_tiger.cache.max_page_size_eviction[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: modified pages evicted | Number of pages, that have been modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.modified_pages_evicted[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages read into cache | Number of pages read into the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_read[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages written from cache | Number of pages written from the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_written[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages held in cache | Number of pages currently held in the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_in_cache[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages evicted by application threads, rate | Number of page evicted by application threads per second. |
Dependent item | mongodb.wired_tiger.cache.pages_evicted_threads.rate[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: tracked dirty bytes in the cache | Size of the dirty data in the cache. |
Dependent item | mongodb.wired_tiger.cache.tracked_dirty_bytes[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: unmodified pages evicted | Number of pages, that were not modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.unmodified_pages_evicted[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: read, available | Number of available read tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: read, out | Number of read tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.out[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: read, total tickets | Total number of read tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.totalTickets[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: write, available | Number of available write tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: write, out | Number of write tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.out[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: write, total tickets | Total number of write tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.totalTickets[{#SINGLETON}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB node: Available WiredTiger read tickets is low | Too few available read tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB node: Available WiredTiger write tickets is low | Too few available write tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb?at=release/7.0
The template to monitor single MongoDB server by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB node by Zabbix Agent 2 — collects metrics by polling zabbix-agent2.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
Test availability: zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.PCT.USED.MAX.WARN} | Maximum percentage of used connections |
80 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
10s |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | Minimum number of available WiredTiger read or write tickets remaining |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get server status | Returns a database's state. |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Get Replica Set status | Returns the replica set status from the point of view of the member where the method is run. |
Zabbix agent | mongodb.rs.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Get oplog stats | Returns status of the replica set, using data polled from the oplog. |
Zabbix agent | mongodb.oplog.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| Get collections usage stats | Returns usage statistics for each collection. |
Zabbix agent | mongodb.collections.usage["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB version | Version of the MongoDB server. |
Zabbix agent | mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| Uptime | Number of seconds that the mongod process has been active. |
Dependent item | mongodb.uptime Preprocessing
|
| Asserts: message, rate | The number of message assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.msg.rate Preprocessing
|
| Asserts: user, rate | The number of "user asserts" that have occurred per second. These are errors that user may generate, such as out of disk space or duplicate key. |
Dependent item | mongodb.asserts.user.rate Preprocessing
|
| Asserts: warning, rate | The number of warnings raised per second. |
Dependent item | mongodb.asserts.warning.rate Preprocessing
|
| Asserts: regular, rate | The number of regular assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.regular.rate Preprocessing
|
| Asserts: rollovers, rate | Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions. |
Dependent item | mongodb.asserts.rollovers.rate Preprocessing
|
| Active clients: writers | The number of active client connections performing write operations. |
Dependent item | mongodb.active_clients.writers Preprocessing
|
| Active clients: readers | The number of the active client connections performing read operations. |
Dependent item | mongodb.active_clients.readers Preprocessing
|
| Active clients: total | The total number of internal client connections to the database including system threads as well as queued readers and writers. |
Dependent item | mongodb.active_clients.total Preprocessing
|
| Current queue: writers | The number of operations that are currently queued and waiting for the write lock. A consistently small write-queue, particularly of shorter operations, is no cause for concern. |
Dependent item | mongodb.current_queue.writers Preprocessing
|
| Current queue: readers | The number of operations that are currently queued and waiting for the read lock. A consistently small read-queue, particularly of shorter operations, should cause no concern. |
Dependent item | mongodb.current_queue.readers Preprocessing
|
| Current queue: total | The total number of operations queued waiting for the lock. |
Dependent item | mongodb.current_queue.total Preprocessing
|
| Operations: command, rate | The number of commands issued to the database the mongod instance per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| Operations: delete, rate | The number of delete operations the mongod instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| Operations: update, rate | The number of update operations the mongod instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| Operations: query, rate | The number of queries received the mongod instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| Operations: insert, rate | The number of insert operations received since the mongod instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| Operations: getmore, rate | The number of "getmore" operations since the mongod instance per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| New connections, rate | Rate of all incoming connections created to the server. |
Dependent item | mongodb.connections.rate Preprocessing
|
| Connections, available | The number of unused incoming connections available. |
Dependent item | mongodb.connections.available Preprocessing
|
| Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| Requests, rate | Number of distinct requests that the server has received per second |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| Document: deleted, rate | Number of documents deleted per second. |
Dependent item | mongod.document.deleted.rate Preprocessing
|
| Document: inserted, rate | Number of documents inserted per second. |
Dependent item | mongod.document.inserted.rate Preprocessing
|
| Document: returned, rate | Number of documents returned by queries per second. |
Dependent item | mongod.document.returned.rate Preprocessing
|
| Document: updated, rate | Number of documents updated per second. |
Dependent item | mongod.document.updated.rate Preprocessing
|
| Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| Memory: mapped | Amount of mapped memory by the database. |
Dependent item | mongodb.mem.mapped Preprocessing
|
| Memory: mapped with journal | The amount of mapped memory, including the memory used for journaling. |
Dependent item | mongodb.mem.mapped_with_journal Preprocessing
|
| Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| Memory: virtual | Amount of virtual memory used by the mongod process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB node: Connection to MongoDB is unavailable | Connection to MongoDB instance is currently unavailable. |
last(/MongoDB node by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB node: Version has changed | MongoDB version has changed. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"],#2) and length(last(/MongoDB node by Zabbix agent 2/mongodb.version["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]))>0 |
Info | Manual close: Yes |
| MongoDB node: mongod process has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB node by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB node: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB node by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB node: Total number of open connections is too high | Too few available connections. |
min(/MongoDB node by Zabbix agent 2/mongodb.connections.current,5m)/(last(/MongoDB node by Zabbix agent 2/mongodb.connections.available)+last(/MongoDB node by Zabbix agent 2/mongodb.connections.current))*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN} |
Warning | |
| MongoDB node: Too many cursors opened by MongoDB for clients | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB node: Too many cursors are timing out | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Collections | Contains a count of the number of collections in that database. |
Dependent item | mongodb.db.collections["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max number | Maximum number of documents that may be present in a capped collection. |
Dependent item | mongodb.collection.max_number["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.total.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.read_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.write_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.queries.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.getmore.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.insert.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.update.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.remove.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.commands.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.total.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.read_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.write_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.queries.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.getmore.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.insert.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.update.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.remove.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.commands.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication discovery | Collect metrics by Zabbix agent if it exists. |
Dependent item | mongodb.rs.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node state | An integer between 0 and 10 that represents the replica state of the current member. |
Dependent item | mongodb.rs.state[{#RS_NAME}] Preprocessing
|
| Replication lag | Delay between a write operation on the primary and its copy to a secondary. |
Dependent item | mongodb.rs.lag[{#RS_NAME}] Preprocessing
|
| Number of replicas | The number of replicated nodes in current ReplicaSet. |
Dependent item | mongodb.rs.total_nodes[{#RS_NAME}] Preprocessing
|
| Number of unhealthy replicas | The number of replicated nodes with member health value = 0. |
Dependent item | mongodb.rs.unhealthy_count[{#RS_NAME}] Preprocessing
|
| Unhealthy replicas | The replicated nodes in current ReplicaSet with member health value = 0. |
Dependent item | mongodb.rs.unhealthy[{#RS_NAME}] Preprocessing
|
| Apply batches, rate | Number of batches applied across all databases per second. |
Dependent item | mongodb.rs.apply.batches.rate[{#RS_NAME}] Preprocessing
|
| Apply batches, ms/s | Fraction of time (ms/s) the mongod has spent applying operations from the oplog. |
Dependent item | mongodb.rs.apply.batches.ms.rate[{#RS_NAME}] Preprocessing
|
| Apply ops, rate | Number of oplog operations applied per second. |
Dependent item | mongodb.rs.apply.rate[{#RS_NAME}] Preprocessing
|
| Buffer | Number of operations in the oplog buffer. |
Dependent item | mongodb.rs.buffer.count[{#RS_NAME}] Preprocessing
|
| Buffer, max size | Maximum size of the buffer. |
Dependent item | mongodb.rs.buffer.max_size[{#RS_NAME}] Preprocessing
|
| Buffer, size | Current size of the contents of the oplog buffer. |
Dependent item | mongodb.rs.buffer.size[{#RS_NAME}] Preprocessing
|
| Network bytes, rate | Amount of data read from the replication sync source per second. |
Dependent item | mongodb.rs.network.bytes.rate[{#RS_NAME}] Preprocessing
|
| Network getmores, rate | Number of getmore operations per second. |
Dependent item | mongodb.rs.network.getmores.rate[{#RS_NAME}] Preprocessing
|
| Network getmores, ms/s | Fraction of time (ms/s) required to collect data from getmore operations. |
Dependent item | mongodb.rs.network.getmores.ms.rate[{#RS_NAME}] Preprocessing
|
| Network ops, rate | Number of operations read from the replication source per second. |
Dependent item | mongodb.rs.network.ops.rate[{#RS_NAME}] Preprocessing
|
| Network readers created, rate | Number of oplog query processes created per second. |
Dependent item | mongodb.rs.network.readers.rate[{#RS_NAME}] Preprocessing
|
| MongoDB {#RS_NAME}: Oplog time diff | Oplog window: difference between the first and last operation in the oplog. Only present if there are entries in the oplog. |
Dependent item | mongodb.rs.oplog.timediff[{#RS_NAME}] Preprocessing
|
| Preload docs, rate | Number of documents loaded per second during the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.rate[{#RS_NAME}] Preprocessing
|
| Preload docs, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.ms.rate[{#RS_NAME}] Preprocessing
|
| Preload indexes, rate | Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.rate[{#RS_NAME}] Preprocessing
|
| Preload indexes, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.ms.rate[{#RS_NAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB node: Node in ReplicaSet changed the state | Node in ReplicaSet changed the state. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#2) |
Warning | Manual close: Yes |
| MongoDB node: Replication lag with primary is too high | min(/MongoDB node by Zabbix agent 2/mongodb.rs.lag[{#RS_NAME}],5m)>{$MONGODB.REPL.LAG.MAX.WARN} |
Warning | ||
| MongoDB node: There are unhealthy replicas in ReplicaSet | last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy_count[{#RS_NAME}])>0 and length(last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy[{#RS_NAME}]))>0 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| WiredTiger metrics | Collect metrics of WiredTiger Storage Engine if it exists. |
Dependent item | mongodb.wired_tiger.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| WiredTiger cache: bytes | Size of the data currently in cache. |
Dependent item | mongodb.wired_tiger.cache.bytes_in_cache[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: in-memory page splits | In-memory page splits. |
Dependent item | mongodb.wired_tiger.cache.splits[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: bytes, max | Maximum cache size. |
Dependent item | mongodb.wired_tiger.cache.maximum_bytes_configured[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: max page size at eviction | Maximum page size at eviction. |
Dependent item | mongodb.wired_tiger.cache.max_page_size_eviction[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: modified pages evicted | Number of pages, that have been modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.modified_pages_evicted[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages read into cache | Number of pages read into the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_read[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages written from cache | Number of pages written from the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_written[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages held in cache | Number of pages currently held in the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_in_cache[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: pages evicted by application threads, rate | Number of page evicted by application threads per second. |
Dependent item | mongodb.wired_tiger.cache.pages_evicted_threads.rate[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: tracked dirty bytes in the cache | Size of the dirty data in the cache. |
Dependent item | mongodb.wired_tiger.cache.tracked_dirty_bytes[{#SINGLETON}] Preprocessing
|
| WiredTiger cache: unmodified pages evicted | Number of pages, that were not modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.unmodified_pages_evicted[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: read, available | Number of available read tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: read, out | Number of read tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.out[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: read, total tickets | Total number of read tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.totalTickets[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: write, available | Number of available write tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: write, out | Number of write tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.out[{#SINGLETON}] Preprocessing
|
| WiredTiger concurrent transactions: write, total tickets | Total number of write tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.totalTickets[{#SINGLETON}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB node: Available WiredTiger read tickets is low | Too few available read tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB node: Available WiredTiger write tickets is low | Too few available write tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb?at=release/6.4
The template to monitor single MongoDB server by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB node by Zabbix Agent 2 — collects metrics by polling zabbix-agent2.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
Test availability: zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.PCT.USED.MAX.WARN} | Maximum percentage of used connections |
80 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
10s |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | Minimum number of available WiredTiger read or write tickets remaining |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB: Get server status | Returns a database's state. |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB: Get Replica Set status | Returns the replica set status from the point of view of the member where the method is run. |
Zabbix agent | mongodb.rs.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB: Get oplog stats | Returns status of the replica set, using data polled from the oplog. |
Zabbix agent | mongodb.oplog.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB: Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| MongoDB: Get collections usage stats | Returns usage statistics for each collection. |
Zabbix agent | mongodb.collections.usage["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB: MongoDB version | Version of the MongoDB server. |
Dependent item | mongodb.version Preprocessing
|
| MongoDB: Uptime | Number of seconds that the mongod process has been active. |
Dependent item | mongodb.uptime Preprocessing
|
| MongoDB: Asserts: message, rate | The number of message assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.msg.rate Preprocessing
|
| MongoDB: Asserts: user, rate | The number of "user asserts" that have occurred per second. These are errors that user may generate, such as out of disk space or duplicate key. |
Dependent item | mongodb.asserts.user.rate Preprocessing
|
| MongoDB: Asserts: warning, rate | The number of warnings raised per second. |
Dependent item | mongodb.asserts.warning.rate Preprocessing
|
| MongoDB: Asserts: regular, rate | The number of regular assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.regular.rate Preprocessing
|
| MongoDB: Asserts: rollovers, rate | Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions. |
Dependent item | mongodb.asserts.rollovers.rate Preprocessing
|
| MongoDB: Active clients: writers | The number of active client connections performing write operations. |
Dependent item | mongodb.active_clients.writers Preprocessing
|
| MongoDB: Active clients: readers | The number of the active client connections performing read operations. |
Dependent item | mongodb.active_clients.readers Preprocessing
|
| MongoDB: Active clients: total | The total number of internal client connections to the database including system threads as well as queued readers and writers. |
Dependent item | mongodb.active_clients.total Preprocessing
|
| MongoDB: Current queue: writers | The number of operations that are currently queued and waiting for the write lock. A consistently small write-queue, particularly of shorter operations, is no cause for concern. |
Dependent item | mongodb.current_queue.writers Preprocessing
|
| MongoDB: Current queue: readers | The number of operations that are currently queued and waiting for the read lock. A consistently small read-queue, particularly of shorter operations, should cause no concern. |
Dependent item | mongodb.current_queue.readers Preprocessing
|
| MongoDB: Current queue: total | The total number of operations queued waiting for the lock. |
Dependent item | mongodb.current_queue.total Preprocessing
|
| MongoDB: Operations: command, rate | The number of commands issued to the database the mongod instance per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| MongoDB: Operations: delete, rate | The number of delete operations the mongod instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| MongoDB: Operations: update, rate | The number of update operations the mongod instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| MongoDB: Operations: query, rate | The number of queries received the mongod instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| MongoDB: Operations: insert, rate | The number of insert operations received since the mongod instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| MongoDB: Operations: getmore, rate | The number of "getmore" operations since the mongod instance per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| MongoDB: Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| MongoDB: New connections, rate | Rate of all incoming connections created to the server. |
Dependent item | mongodb.connections.rate Preprocessing
|
| MongoDB: Connections, available | The number of unused incoming connections available. |
Dependent item | mongodb.connections.available Preprocessing
|
| MongoDB: Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| MongoDB: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| MongoDB: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| MongoDB: Requests, rate | Number of distinct requests that the server has received per second |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| MongoDB: Document: deleted, rate | Number of documents deleted per second. |
Dependent item | mongod.document.deleted.rate Preprocessing
|
| MongoDB: Document: inserted, rate | Number of documents inserted per second. |
Dependent item | mongod.document.inserted.rate Preprocessing
|
| MongoDB: Document: returned, rate | Number of documents returned by queries per second. |
Dependent item | mongod.document.returned.rate Preprocessing
|
| MongoDB: Document: updated, rate | Number of documents updated per second. |
Dependent item | mongod.document.updated.rate Preprocessing
|
| MongoDB: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| MongoDB: Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| MongoDB: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| MongoDB: Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| MongoDB: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| MongoDB: Memory: mapped | Amount of mapped memory by the database. |
Dependent item | mongodb.mem.mapped Preprocessing
|
| MongoDB: Memory: mapped with journal | The amount of mapped memory, including the memory used for journaling. |
Dependent item | mongodb.mem.mapped_with_journal Preprocessing
|
| MongoDB: Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| MongoDB: Memory: virtual | Amount of virtual memory used by the mongod process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB: Connection to MongoDB is unavailable | Connection to MongoDB instance is currently unavailable. |
last(/MongoDB node by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB: Version has changed | MongoDB version has changed. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB node by Zabbix agent 2/mongodb.version))>0 |
Info | Manual close: Yes |
| MongoDB: mongod process has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB node by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB node by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB: Total number of open connections is too high | Too few available connections. |
min(/MongoDB node by Zabbix agent 2/mongodb.connections.current,5m)/(last(/MongoDB node by Zabbix agent 2/mongodb.connections.available)+last(/MongoDB node by Zabbix agent 2/mongodb.connections.current))*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN} |
Warning | |
| MongoDB: Too many cursors opened by MongoDB for clients | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB: Too many cursors are timing out | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Collections | Contains a count of the number of collections in that database. |
Dependent item | mongodb.db.collections["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max number | Maximum number of documents that may be present in a capped collection. |
Dependent item | mongodb.collection.max_number["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.total.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.read_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.write_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.queries.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.getmore.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.insert.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.update.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.remove.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.commands.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.total.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.read_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.write_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.queries.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.getmore.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.insert.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.update.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.remove.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.commands.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication discovery | Collect metrics by Zabbix agent if it exists. |
Dependent item | mongodb.rs.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB: Node state | An integer between 0 and 10 that represents the replica state of the current member. |
Dependent item | mongodb.rs.state[{#RS_NAME}] Preprocessing
|
| MongoDB: Replication lag | Delay between a write operation on the primary and its copy to a secondary. |
Dependent item | mongodb.rs.lag[{#RS_NAME}] Preprocessing
|
| MongoDB: Number of replicas | The number of replicated nodes in current ReplicaSet. |
Dependent item | mongodb.rs.total_nodes[{#RS_NAME}] Preprocessing
|
| MongoDB: Number of unhealthy replicas | The number of replicated nodes with member health value = 0. |
Dependent item | mongodb.rs.unhealthy_count[{#RS_NAME}] Preprocessing
|
| MongoDB: Unhealthy replicas | The replicated nodes in current ReplicaSet with member health value = 0. |
Dependent item | mongodb.rs.unhealthy[{#RS_NAME}] Preprocessing
|
| MongoDB: Apply batches, rate | Number of batches applied across all databases per second. |
Dependent item | mongodb.rs.apply.batches.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Apply batches, ms/s | Fraction of time (ms/s) the mongod has spent applying operations from the oplog. |
Dependent item | mongodb.rs.apply.batches.ms.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Apply ops, rate | Number of oplog operations applied per second. |
Dependent item | mongodb.rs.apply.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Buffer | Number of operations in the oplog buffer. |
Dependent item | mongodb.rs.buffer.count[{#RS_NAME}] Preprocessing
|
| MongoDB: Buffer, max size | Maximum size of the buffer. |
Dependent item | mongodb.rs.buffer.max_size[{#RS_NAME}] Preprocessing
|
| MongoDB: Buffer, size | Current size of the contents of the oplog buffer. |
Dependent item | mongodb.rs.buffer.size[{#RS_NAME}] Preprocessing
|
| MongoDB: Network bytes, rate | Amount of data read from the replication sync source per second. |
Dependent item | mongodb.rs.network.bytes.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Network getmores, rate | Number of getmore operations per second. |
Dependent item | mongodb.rs.network.getmores.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Network getmores, ms/s | Fraction of time (ms/s) required to collect data from getmore operations. |
Dependent item | mongodb.rs.network.getmores.ms.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Network ops, rate | Number of operations read from the replication source per second. |
Dependent item | mongodb.rs.network.ops.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Network readers created, rate | Number of oplog query processes created per second. |
Dependent item | mongodb.rs.network.readers.rate[{#RS_NAME}] Preprocessing
|
| MongoDB {#RS_NAME}: Oplog time diff | Oplog window: difference between the first and last operation in the oplog. Only present if there are entries in the oplog. |
Dependent item | mongodb.rs.oplog.timediff[{#RS_NAME}] Preprocessing
|
| MongoDB: Preload docs, rate | Number of documents loaded per second during the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Preload docs, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.ms.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Preload indexes, rate | Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Preload indexes, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.ms.rate[{#RS_NAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB: Node in ReplicaSet changed the state | Node in ReplicaSet changed the state. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#2) |
Warning | Manual close: Yes |
| MongoDB: Replication lag with primary is too high | min(/MongoDB node by Zabbix agent 2/mongodb.rs.lag[{#RS_NAME}],5m)>{$MONGODB.REPL.LAG.MAX.WARN} |
Warning | ||
| MongoDB: There are unhealthy replicas in ReplicaSet | last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy_count[{#RS_NAME}])>0 and length(last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy[{#RS_NAME}]))>0 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| WiredTiger metrics | Collect metrics of WiredTiger Storage Engine if it exists. |
Dependent item | mongodb.wired_tiger.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB: WiredTiger cache: bytes | Size of the data currently in cache. |
Dependent item | mongodb.wired_tiger.cache.bytes_in_cache[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: in-memory page splits | In-memory page splits. |
Dependent item | mongodb.wired_tiger.cache.splits[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: bytes, max | Maximum cache size. |
Dependent item | mongodb.wired_tiger.cache.maximum_bytes_configured[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: max page size at eviction | Maximum page size at eviction. |
Dependent item | mongodb.wired_tiger.cache.max_page_size_eviction[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: modified pages evicted | Number of pages, that have been modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.modified_pages_evicted[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: pages read into cache | Number of pages read into the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_read[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: pages written from cache | Number of pages written from the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_written[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: pages held in cache | Number of pages currently held in the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_in_cache[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: pages evicted by application threads, rate | Number of page evicted by application threads per second. |
Dependent item | mongodb.wired_tiger.cache.pages_evicted_threads.rate[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: tracked dirty bytes in the cache | Size of the dirty data in the cache. |
Dependent item | mongodb.wired_tiger.cache.tracked_dirty_bytes[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: unmodified pages evicted | Number of pages, that were not modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.unmodified_pages_evicted[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: read, available | Number of available read tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: read, out | Number of read tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.out[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: read, total tickets | Total number of read tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.totalTickets[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: write, available | Number of available write tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: write, out | Number of write tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.out[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: write, total tickets | Total number of write tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.totalTickets[{#SINGLETON}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB: Available WiredTiger read tickets is low | Too few available read tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB: Available WiredTiger write tickets is low | Too few available write tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb?at=release/6.2
For Zabbix version: 6.2 and higher
The template to monitor single MongoDB server by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB node by Zabbix Agent 2 — collects metrics by polling zabbix-agent2.
This template was tested on:
See Zabbix template operation for basic instructions.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
Test availability: zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNS.PCT.USED.MAX.WARN} | Maximum percentage of used connections |
80 |
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
`(admin |
| {$MONGODB.PASSWORD} | MongoDB user password |
`` |
| {$MONGODB.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
10s |
| {$MONGODB.USER} | MongoDB username |
`` |
| {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | Minimum number of available WiredTiger read or write tickets remaining |
5 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX - {#COLLECTION} MATCHES_REGEX - {#COLLECTION} NOT_MATCHES_REGEX |
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| Replication discovery | Collect metrics by Zabbix agent if it exists |
DEPENDENT | mongodb.rs.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Overrides: Primary metrics - ITEM_PROTOTYPE LIKE Unhealthy replicas - DISCOVER- ITEM_PROTOTYPE LIKE Number of unhealthy replicas - DISCOVER- ITEM_PROTOTYPE LIKE Replication lag - NO_DISCOVERArbiter metrics |
| WiredTiger metrics | Collect metrics of WiredTiger Storage Engine if it exists |
DEPENDENT | mongodb.wired_tiger.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| MongoDB | MongoDB: Ping | Test if a connection is alive or not. |
ZABBIX_PASSIVE | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: MongoDB version | Version of the MongoDB server. |
DEPENDENT | mongodb.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Uptime | Number of seconds that the mongod process has been active. |
DEPENDENT | mongodb.uptime Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Asserts: message, rate | The number of message assertions raised per second. Check the log file for more information about these messages. |
DEPENDENT | mongodb.asserts.msg.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: user, rate | The number of “user asserts” that have occurred per second. These are errors that user may generate, such as out of disk space or duplicate key. |
DEPENDENT | mongodb.asserts.user.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: warning, rate | The number of warnings raised per second. |
DEPENDENT | mongodb.asserts.warning.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: regular, rate | The number of regular assertions raised per second. Check the log file for more information about these messages. |
DEPENDENT | mongodb.asserts.regular.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: rollovers, rate | Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions. |
DEPENDENT | mongodb.asserts.rollovers.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Active clients: writers | The number of active client connections performing write operations. |
DEPENDENT | mongodb.active_clients.writers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Active clients: readers | The number of the active client connections performing read operations. |
DEPENDENT | mongodb.active_clients.readers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Active clients: total | The total number of internal client connections to the database including system threads as well as queued readers and writers. |
DEPENDENT | mongodb.active_clients.total Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Current queue: writers | The number of operations that are currently queued and waiting for the write lock. A consistently small write-queue, particularly of shorter operations, is no cause for concern. |
DEPENDENT | mongodb.current_queue.writers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Current queue: readers | The number of operations that are currently queued and waiting for the read lock. A consistently small read-queue, particularly of shorter operations, should cause no concern. |
DEPENDENT | mongodb.current_queue.readers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Current queue: total | The total number of operations queued waiting for the lock. |
DEPENDENT | mongodb.current_queue.total Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Operations: command, rate | The number of commands issued to the database the mongod instance per second. Counts all commands except the write commands: insert, update, and delete. |
DEPENDENT | mongodb.opcounters.command.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: delete, rate | The number of delete operations the mongod instance per second. |
DEPENDENT | mongodb.opcounters.delete.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: update, rate | The number of update operations the mongod instance per second. |
DEPENDENT | mongodb.opcounters.update.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: query, rate | The number of queries received the mongod instance per second. |
DEPENDENT | mongodb.opcounters.query.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: insert, rate | The number of insert operations received since the mongod instance per second. |
DEPENDENT | mongodb.opcounters.insert.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: getmore, rate | The number of “getmore” operations since the mongod instance per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
DEPENDENT | mongodb.opcounters.getmore.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session |
DEPENDENT | mongodb.connections.current Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: New connections, rate | Rate of all incoming connections created to the server. |
DEPENDENT | mongodb.connections.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Connections, available | The number of unused incoming connections available. |
DEPENDENT | mongodb.connections.available Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
DEPENDENT | mongodb.connections.active Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_in.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Requests, rate | Number of distinct requests that the server has received per second |
DEPENDENT | mongodb.network.numRequests.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: deleted, rate | Number of documents deleted per second. |
DEPENDENT | mongod.document.deleted.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: inserted, rate | Number of documents inserted per second. |
DEPENDENT | mongod.document.inserted.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: returned, rate | Number of documents returned by queries per second. |
DEPENDENT | mongod.document.returned.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: updated, rate | Number of documents updated per second. |
DEPENDENT | mongod.document.updated.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
DEPENDENT | mongodb.metrics.cursor.open.no_timeout Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Cursor: open pinned | Number of pinned open cursors. |
DEPENDENT | mongodb.cursor.open.pinned Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
DEPENDENT | mongodb.cursor.open.total Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Cursor: timed out, rate | Number of cursors that time out, per second. |
DEPENDENT | mongodb.cursor.timed_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
DEPENDENT | mongodb.mem.bits Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Memory: mapped | Amount of mapped memory by the database. |
DEPENDENT | mongodb.mem.mapped Preprocessing: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: |
| MongoDB | MongoDB: Memory: mapped with journal | The amount of mapped memory, including the memory used for journaling. |
DEPENDENT | mongodb.mem.mapped_with_journal Preprocessing: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: |
| MongoDB | MongoDB: Memory: resident | Amount of memory currently used by the database process. |
DEPENDENT | mongodb.mem.resident Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB | MongoDB: Memory: virtual | Amount of virtual memory used by the mongod process. |
DEPENDENT | mongodb.mem.virtual Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB | MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
DEPENDENT | mongodb.db.size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
DEPENDENT | mongodb.db.data_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
DEPENDENT | mongodb.db.file_size["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
DEPENDENT | mongodb.db.index_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
DEPENDENT | mongodb.db.storage_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Collections | Contains a count of the number of collections in that database. |
DEPENDENT | mongodb.db.collections["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
DEPENDENT | mongodb.db.objects["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
DEPENDENT | mongodb.db.extents["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
DEPENDENT | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
DEPENDENT | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
DEPENDENT | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Capped: max number | Maximum number of documents that may be present in a capped collection. |
DEPENDENT | mongodb.collection.max_number["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Capped: max size | Maximum size of a capped collection in bytes. |
DEPENDENT | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
DEPENDENT | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
DEPENDENT | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
DEPENDENT | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.total.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Read lock, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.read_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Write lock, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.write_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.queries.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.getmore.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.insert.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.update.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.remove.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.commands.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.total.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Read lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.read_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Write lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.write_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.queries.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.getmore.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.insert.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.update.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.remove.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.commands.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Node state | An integer between 0 and 10 that represents the replica state of the current member. |
DEPENDENT | mongodb.rs.state[{#RS_NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Replication lag | Delay between a write operation on the primary and its copy to a secondary. |
DEPENDENT | mongodb.rs.lag[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Number of replicas | The number of replicated nodes in current ReplicaSet. |
DEPENDENT | mongodb.rs.total_nodes[{#RS_NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Number of unhealthy replicas | The number of replicated nodes with member health value = 0. |
DEPENDENT | mongodb.rs.unhealthy_count[{#RS_NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Unhealthy replicas | The replicated nodes in current ReplicaSet with member health value = 0. |
DEPENDENT | mongodb.rs.unhealthy[{#RS_NAME}] Preprocessing: - JSONPATH: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Apply batches, rate | Number of batches applied across all databases per second. |
DEPENDENT | mongodb.rs.apply.batches.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Apply batches, ms/s | Fraction of time (ms/s) the mongod has spent applying operations from the oplog. |
DEPENDENT | mongodb.rs.apply.batches.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Apply ops, rate | Number of oplog operations applied per second. |
DEPENDENT | mongodb.rs.apply.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Buffer | Number of operations in the oplog buffer. |
DEPENDENT | mongodb.rs.buffer.count[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Buffer, max size | Maximum size of the buffer. |
DEPENDENT | mongodb.rs.buffer.max_size[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Buffer, size | Current size of the contents of the oplog buffer. |
DEPENDENT | mongodb.rs.buffer.size[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Network bytes, rate | Amount of data read from the replication sync source per second. |
DEPENDENT | mongodb.rs.network.bytes.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network getmores, rate | Number of getmore operations per second. |
DEPENDENT | mongodb.rs.network.getmores.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network getmores, ms/s | Fraction of time (ms/s) required to collect data from getmore operations. |
DEPENDENT | mongodb.rs.network.getmores.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network ops, rate | Number of operations read from the replication source per second. |
DEPENDENT | mongodb.rs.network.ops.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network readers created, rate | Number of oplog query processes created per second. |
DEPENDENT | mongodb.rs.network.readers.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#RS_NAME}: Oplog time diff | Oplog window: difference between the first and last operation in the oplog. Only present if there are entries in the oplog. |
DEPENDENT | mongodb.rs.oplog.timediff[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Preload docs, rate | Number of documents loaded per second during the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.docs.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Preload docs, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.docs.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Preload indexes, rate | Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.indexes.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Preload indexes, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.indexes.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: WiredTiger cache: bytes | Size of the data currently in cache. |
DEPENDENT | mongodb.wired_tiger.cache.bytes_in_cache[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: in-memory page splits | In-memory page splits. |
DEPENDENT | mongodb.wired_tiger.cache.splits[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: bytes, max | Maximum cache size. |
DEPENDENT | mongodb.wired_tiger.cache.maximum_bytes_configured[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: max page size at eviction | Maximum page size at eviction. |
DEPENDENT | mongodb.wired_tiger.cache.max_page_size_eviction[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: modified pages evicted | Number of pages, that have been modified, evicted from the cache. |
DEPENDENT | mongodb.wired_tiger.cache.modified_pages_evicted[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages read into cache | Number of pages read into the cache. |
DEPENDENT | mongodb.wired_tiger.cache.pages_read[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages written from cache | Number of pages written from the cache. |
DEPENDENT | mongodb.wired_tiger.cache.pages_written[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages held in cache | Number of pages currently held in the cache. |
DEPENDENT | mongodb.wired_tiger.cache.pages_in_cache[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages evicted by application threads, rate | Number of page evicted by application threads per second. |
DEPENDENT | mongodb.wired_tiger.cache.pages_evicted_threads.rate[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: tracked dirty bytes in the cache | Size of the dirty data in the cache. |
DEPENDENT | mongodb.wired_tiger.cache.tracked_dirty_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: unmodified pages evicted | Number of pages, that were not modified, evicted from the cache. |
DEPENDENT | mongodb.wired_tiger.cache.unmodified_pages_evicted[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: read, available | Number of available read tickets (concurrent transactions) remaining. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: read, out | Number of read tickets (concurrent transactions) in use. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.read.out[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: read, total tickets | Total number of read tickets (concurrent transactions) available. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.read.totalTickets[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: write, available | Number of available write tickets (concurrent transactions) remaining. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: write, out | Number of write tickets (concurrent transactions) in use. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.write.out[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: write, total tickets | Total number of write tickets (concurrent transactions) available. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.write.totalTickets[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix raw items | MongoDB: Get server status | Returns a database's state. |
ZABBIX_PASSIVE | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix raw items | MongoDB: Get Replica Set status | Returns the replica set status from the point of view of the member where the method is run. |
ZABBIX_PASSIVE | mongodb.rs.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix raw items | MongoDB: Get oplog stats | Returns status of the replica set, using data polled from the oplog. |
ZABBIX_PASSIVE | mongodb.oplog.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix raw items | MongoDB: Get collections usage stats | Returns usage statistics for each collection. |
ZABBIX_PASSIVE | mongodb.collections.usage["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix raw items | MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
ZABBIX_PASSIVE | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| Zabbix raw items | MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
ZABBIX_PASSIVE | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB: Connection to MongoDB is unavailable | Connection to MongoDB instance is currently unavailable. |
last(/MongoDB node by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
HIGH | |
| MongoDB: Version has changed | MongoDB version has changed. Ack to close. |
last(/MongoDB node by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB node by Zabbix agent 2/mongodb.version))>0 |
INFO | Manual close: YES |
| MongoDB: has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB node by Zabbix agent 2/mongodb.uptime)<10m |
INFO | Manual close: YES |
| MongoDB: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB node by Zabbix agent 2/mongodb.uptime,10m)=1 |
WARNING | Manual close: YES Depends on: - MongoDB: Connection to MongoDB is unavailable |
| MongoDB: Total number of open connections is too high | Too few available connections. If MongoDB runs low on connections, in may not be able to handle incoming requests in a timely manner. |
min(/MongoDB node by Zabbix agent 2/mongodb.connections.current,5m)/(last(/MongoDB node by Zabbix agent 2/mongodb.connections.available)+last(/MongoDB node by Zabbix agent 2/mongodb.connections.current))*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN} |
WARNING | |
| MongoDB: Too many cursors opened by MongoDB for clients | - |
min(/MongoDB node by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
WARNING | |
| MongoDB: Too many cursors are timing out | - |
min(/MongoDB node by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
WARNING | |
| MongoDB: Node in ReplicaSet changed the state | Node in ReplicaSet changed the state. Ack to close. |
last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#2) |
WARNING | Manual close: YES |
| MongoDB: Replication lag with primary is too high | - |
min(/MongoDB node by Zabbix agent 2/mongodb.rs.lag[{#RS_NAME}],5m)>{$MONGODB.REPL.LAG.MAX.WARN} |
WARNING | |
| MongoDB: There are unhealthy replicas in ReplicaSet | - |
last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy_count[{#RS_NAME}])>0 and length(last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy[{#RS_NAME}]))>0 |
AVERAGE | |
| MongoDB: Available WiredTiger read tickets is low | "Too few available read tickets. When the number of available read tickets remaining reaches zero, new read requests will be queued until a new read ticket is available." |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
WARNING | |
| MongoDB: Available WiredTiger write tickets is low | "Too few available write tickets. When the number of available write tickets remaining reaches zero, new write requests will be queued until a new write ticket is available." |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
WARNING |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb?at=release/6.0
The template to monitor single MongoDB server by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB node by Zabbix Agent 2 — collects metrics by polling zabbix-agent2.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
Test availability: zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.PCT.USED.MAX.WARN} | Maximum percentage of used connections |
80 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
10s |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | Minimum number of available WiredTiger read or write tickets remaining |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB: Get server status | Returns a database's state. |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB: Get Replica Set status | Returns the replica set status from the point of view of the member where the method is run. |
Zabbix agent | mongodb.rs.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB: Get oplog stats | Returns status of the replica set, using data polled from the oplog. |
Zabbix agent | mongodb.oplog.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB: Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| MongoDB: Get collections usage stats | Returns usage statistics for each collection. |
Zabbix agent | mongodb.collections.usage["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB: MongoDB version | Version of the MongoDB server. |
Dependent item | mongodb.version Preprocessing
|
| MongoDB: Uptime | Number of seconds that the mongod process has been active. |
Dependent item | mongodb.uptime Preprocessing
|
| MongoDB: Asserts: message, rate | The number of message assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.msg.rate Preprocessing
|
| MongoDB: Asserts: user, rate | The number of "user asserts" that have occurred per second. These are errors that user may generate, such as out of disk space or duplicate key. |
Dependent item | mongodb.asserts.user.rate Preprocessing
|
| MongoDB: Asserts: warning, rate | The number of warnings raised per second. |
Dependent item | mongodb.asserts.warning.rate Preprocessing
|
| MongoDB: Asserts: regular, rate | The number of regular assertions raised per second. Check the log file for more information about these messages. |
Dependent item | mongodb.asserts.regular.rate Preprocessing
|
| MongoDB: Asserts: rollovers, rate | Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions. |
Dependent item | mongodb.asserts.rollovers.rate Preprocessing
|
| MongoDB: Active clients: writers | The number of active client connections performing write operations. |
Dependent item | mongodb.active_clients.writers Preprocessing
|
| MongoDB: Active clients: readers | The number of the active client connections performing read operations. |
Dependent item | mongodb.active_clients.readers Preprocessing
|
| MongoDB: Active clients: total | The total number of internal client connections to the database including system threads as well as queued readers and writers. |
Dependent item | mongodb.active_clients.total Preprocessing
|
| MongoDB: Current queue: writers | The number of operations that are currently queued and waiting for the write lock. A consistently small write-queue, particularly of shorter operations, is no cause for concern. |
Dependent item | mongodb.current_queue.writers Preprocessing
|
| MongoDB: Current queue: readers | The number of operations that are currently queued and waiting for the read lock. A consistently small read-queue, particularly of shorter operations, should cause no concern. |
Dependent item | mongodb.current_queue.readers Preprocessing
|
| MongoDB: Current queue: total | The total number of operations queued waiting for the lock. |
Dependent item | mongodb.current_queue.total Preprocessing
|
| MongoDB: Operations: command, rate | The number of commands issued to the database the mongod instance per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| MongoDB: Operations: delete, rate | The number of delete operations the mongod instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| MongoDB: Operations: update, rate | The number of update operations the mongod instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| MongoDB: Operations: query, rate | The number of queries received the mongod instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| MongoDB: Operations: insert, rate | The number of insert operations received since the mongod instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| MongoDB: Operations: getmore, rate | The number of "getmore" operations since the mongod instance per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| MongoDB: Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| MongoDB: New connections, rate | Rate of all incoming connections created to the server. |
Dependent item | mongodb.connections.rate Preprocessing
|
| MongoDB: Connections, available | The number of unused incoming connections available. |
Dependent item | mongodb.connections.available Preprocessing
|
| MongoDB: Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| MongoDB: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| MongoDB: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| MongoDB: Requests, rate | Number of distinct requests that the server has received per second |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| MongoDB: Document: deleted, rate | Number of documents deleted per second. |
Dependent item | mongod.document.deleted.rate Preprocessing
|
| MongoDB: Document: inserted, rate | Number of documents inserted per second. |
Dependent item | mongod.document.inserted.rate Preprocessing
|
| MongoDB: Document: returned, rate | Number of documents returned by queries per second. |
Dependent item | mongod.document.returned.rate Preprocessing
|
| MongoDB: Document: updated, rate | Number of documents updated per second. |
Dependent item | mongod.document.updated.rate Preprocessing
|
| MongoDB: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| MongoDB: Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| MongoDB: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| MongoDB: Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| MongoDB: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| MongoDB: Memory: mapped | Amount of mapped memory by the database. |
Dependent item | mongodb.mem.mapped Preprocessing
|
| MongoDB: Memory: mapped with journal | The amount of mapped memory, including the memory used for journaling. |
Dependent item | mongodb.mem.mapped_with_journal Preprocessing
|
| MongoDB: Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| MongoDB: Memory: virtual | Amount of virtual memory used by the mongod process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB: Connection to MongoDB is unavailable | Connection to MongoDB instance is currently unavailable. |
last(/MongoDB node by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB: Version has changed | MongoDB version has changed. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB node by Zabbix agent 2/mongodb.version))>0 |
Info | Manual close: Yes |
| MongoDB: mongod process has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB node by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB node by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB: Total number of open connections is too high | Too few available connections. |
min(/MongoDB node by Zabbix agent 2/mongodb.connections.current,5m)/(last(/MongoDB node by Zabbix agent 2/mongodb.connections.available)+last(/MongoDB node by Zabbix agent 2/mongodb.connections.current))*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN} |
Warning | |
| MongoDB: Too many cursors opened by MongoDB for clients | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB: Too many cursors are timing out | min(/MongoDB node by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Collections | Contains a count of the number of collections in that database. |
Dependent item | mongodb.db.collections["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max number | Maximum number of documents that may be present in a capped collection. |
Dependent item | mongodb.collection.max_number["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped: max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.total.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.read_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, rate | The number of operations per second. |
Dependent item | mongodb.collection.write_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.queries.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.getmore.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.insert.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.update.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.remove.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, rate | The number of operations per second. |
Dependent item | mongodb.collection.ops.commands.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.total.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Read lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.read_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Write lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.write_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.queries.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.getmore.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.insert.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.update.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.remove.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
Dependent item | mongodb.collection.ops.commands.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Replication discovery | Collect metrics by Zabbix agent if it exists. |
Dependent item | mongodb.rs.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB: Node state | An integer between 0 and 10 that represents the replica state of the current member. |
Dependent item | mongodb.rs.state[{#RS_NAME}] Preprocessing
|
| MongoDB: Replication lag | Delay between a write operation on the primary and its copy to a secondary. |
Dependent item | mongodb.rs.lag[{#RS_NAME}] Preprocessing
|
| MongoDB: Number of replicas | The number of replicated nodes in current ReplicaSet. |
Dependent item | mongodb.rs.total_nodes[{#RS_NAME}] Preprocessing
|
| MongoDB: Number of unhealthy replicas | The number of replicated nodes with member health value = 0. |
Dependent item | mongodb.rs.unhealthy_count[{#RS_NAME}] Preprocessing
|
| MongoDB: Unhealthy replicas | The replicated nodes in current ReplicaSet with member health value = 0. |
Dependent item | mongodb.rs.unhealthy[{#RS_NAME}] Preprocessing
|
| MongoDB: Apply batches, rate | Number of batches applied across all databases per second. |
Dependent item | mongodb.rs.apply.batches.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Apply batches, ms/s | Fraction of time (ms/s) the mongod has spent applying operations from the oplog. |
Dependent item | mongodb.rs.apply.batches.ms.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Apply ops, rate | Number of oplog operations applied per second. |
Dependent item | mongodb.rs.apply.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Buffer | Number of operations in the oplog buffer. |
Dependent item | mongodb.rs.buffer.count[{#RS_NAME}] Preprocessing
|
| MongoDB: Buffer, max size | Maximum size of the buffer. |
Dependent item | mongodb.rs.buffer.max_size[{#RS_NAME}] Preprocessing
|
| MongoDB: Buffer, size | Current size of the contents of the oplog buffer. |
Dependent item | mongodb.rs.buffer.size[{#RS_NAME}] Preprocessing
|
| MongoDB: Network bytes, rate | Amount of data read from the replication sync source per second. |
Dependent item | mongodb.rs.network.bytes.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Network getmores, rate | Number of getmore operations per second. |
Dependent item | mongodb.rs.network.getmores.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Network getmores, ms/s | Fraction of time (ms/s) required to collect data from getmore operations. |
Dependent item | mongodb.rs.network.getmores.ms.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Network ops, rate | Number of operations read from the replication source per second. |
Dependent item | mongodb.rs.network.ops.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Network readers created, rate | Number of oplog query processes created per second. |
Dependent item | mongodb.rs.network.readers.rate[{#RS_NAME}] Preprocessing
|
| MongoDB {#RS_NAME}: Oplog time diff | Oplog window: difference between the first and last operation in the oplog. Only present if there are entries in the oplog. |
Dependent item | mongodb.rs.oplog.timediff[{#RS_NAME}] Preprocessing
|
| MongoDB: Preload docs, rate | Number of documents loaded per second during the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Preload docs, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.docs.ms.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Preload indexes, rate | Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.rate[{#RS_NAME}] Preprocessing
|
| MongoDB: Preload indexes, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
Dependent item | mongodb.rs.preload.indexes.ms.rate[{#RS_NAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB: Node in ReplicaSet changed the state | Node in ReplicaSet changed the state. Acknowledge to close the problem manually. |
last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#2) |
Warning | Manual close: Yes |
| MongoDB: Replication lag with primary is too high | min(/MongoDB node by Zabbix agent 2/mongodb.rs.lag[{#RS_NAME}],5m)>{$MONGODB.REPL.LAG.MAX.WARN} |
Warning | ||
| MongoDB: There are unhealthy replicas in ReplicaSet | last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy_count[{#RS_NAME}])>0 and length(last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy[{#RS_NAME}]))>0 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| WiredTiger metrics | Collect metrics of WiredTiger Storage Engine if it exists. |
Dependent item | mongodb.wired_tiger.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB: WiredTiger cache: bytes | Size of the data currently in cache. |
Dependent item | mongodb.wired_tiger.cache.bytes_in_cache[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: in-memory page splits | In-memory page splits. |
Dependent item | mongodb.wired_tiger.cache.splits[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: bytes, max | Maximum cache size. |
Dependent item | mongodb.wired_tiger.cache.maximum_bytes_configured[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: max page size at eviction | Maximum page size at eviction. |
Dependent item | mongodb.wired_tiger.cache.max_page_size_eviction[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: modified pages evicted | Number of pages, that have been modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.modified_pages_evicted[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: pages read into cache | Number of pages read into the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_read[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: pages written from cache | Number of pages written from the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_written[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: pages held in cache | Number of pages currently held in the cache. |
Dependent item | mongodb.wired_tiger.cache.pages_in_cache[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: pages evicted by application threads, rate | Number of page evicted by application threads per second. |
Dependent item | mongodb.wired_tiger.cache.pages_evicted_threads.rate[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: tracked dirty bytes in the cache | Size of the dirty data in the cache. |
Dependent item | mongodb.wired_tiger.cache.tracked_dirty_bytes[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger cache: unmodified pages evicted | Number of pages, that were not modified, evicted from the cache. |
Dependent item | mongodb.wired_tiger.cache.unmodified_pages_evicted[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: read, available | Number of available read tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: read, out | Number of read tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.out[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: read, total tickets | Total number of read tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.read.totalTickets[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: write, available | Number of available write tickets (concurrent transactions) remaining. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: write, out | Number of write tickets (concurrent transactions) in use. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.out[{#SINGLETON}] Preprocessing
|
| MongoDB: WiredTiger concurrent transactions: write, total tickets | Total number of write tickets (concurrent transactions) available. |
Dependent item | mongodb.wired_tiger.concurrent_transactions.write.totalTickets[{#SINGLETON}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB: Available WiredTiger read tickets is low | Too few available read tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB: Available WiredTiger write tickets is low | Too few available write tickets. |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
Warning |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb?at=release/5.4
For Zabbix version: 5.4 and higher
The template to monitor single MongoDB server by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB node by Zabbix Agent 2 — collects metrics by polling zabbix-agent2.
This template was tested on:
See Zabbix template operation for basic instructions.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
Test availability: zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNS.PCT.USED.MAX.WARN} | Maximum percentage of used connections |
80 |
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
`(admin |
| {$MONGODB.PASSWORD} | MongoDB user password |
`` |
| {$MONGODB.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
10s |
| {$MONGODB.USER} | MongoDB username |
`` |
| {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | Minimum number of available WiredTiger read or write tickets remaining |
5 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX - {#COLLECTION} MATCHES_REGEX - {#COLLECTION} NOT_MATCHES_REGEX |
| Replication discovery | Collect metrics by Zabbix agent if it exists |
DEPENDENT | mongodb.rs.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Overrides: Primary metrics - ITEM_PROTOTYPE LIKE Unhealthy replicas - DISCOVER- ITEM_PROTOTYPE LIKE Number of unhealthy replicas - DISCOVER- ITEM_PROTOTYPE LIKE Replication lag - NO_DISCOVERArbiter metrics |
| WiredTiger metrics | Collect metrics of WiredTiger Storage Engine if it exists |
DEPENDENT | mongodb.wired_tiger.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| MongoDB | MongoDB: Ping | Test if a connection is alive or not. |
ZABBIX_PASSIVE | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: MongoDB version | Version of the MongoDB server. |
DEPENDENT | mongodb.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Uptime | Number of seconds that the mongod process has been active. |
DEPENDENT | mongodb.uptime Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Asserts: message, rate | The number of message assertions raised per second. Check the log file for more information about these messages. |
DEPENDENT | mongodb.asserts.msg.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: user, rate | The number of “user asserts” that have occurred per second. These are errors that user may generate, such as out of disk space or duplicate key. |
DEPENDENT | mongodb.asserts.user.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: warning, rate | The number of warnings raised per second. |
DEPENDENT | mongodb.asserts.warning.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: regular, rate | The number of regular assertions raised per second. Check the log file for more information about these messages. |
DEPENDENT | mongodb.asserts.regular.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: rollovers, rate | Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions. |
DEPENDENT | mongodb.asserts.rollovers.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Active clients: writers | The number of active client connections performing write operations. |
DEPENDENT | mongodb.active_clients.writers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Active clients: readers | The number of the active client connections performing read operations. |
DEPENDENT | mongodb.active_clients.readers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Active clients: total | The total number of internal client connections to the database including system threads as well as queued readers and writers. |
DEPENDENT | mongodb.active_clients.total Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Current queue: writers | The number of operations that are currently queued and waiting for the write lock. A consistently small write-queue, particularly of shorter operations, is no cause for concern. |
DEPENDENT | mongodb.current_queue.writers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Current queue: readers | The number of operations that are currently queued and waiting for the read lock. A consistently small read-queue, particularly of shorter operations, should cause no concern. |
DEPENDENT | mongodb.current_queue.readers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Current queue: total | The total number of operations queued waiting for the lock. |
DEPENDENT | mongodb.current_queue.total Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Operations: command, rate | The number of commands issued to the database the mongod instance per second. Counts all commands except the write commands: insert, update, and delete. |
DEPENDENT | mongodb.opcounters.command.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: delete, rate | The number of delete operations the mongod instance per second. |
DEPENDENT | mongodb.opcounters.delete.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: update, rate | The number of update operations the mongod instance per second. |
DEPENDENT | mongodb.opcounters.update.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: query, rate | The number of queries received the mongod instance per second. |
DEPENDENT | mongodb.opcounters.query.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: insert, rate | The number of insert operations received since the mongod instance per second. |
DEPENDENT | mongodb.opcounters.insert.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: getmore, rate | The number of “getmore” operations since the mongod instance per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
DEPENDENT | mongodb.opcounters.getmore.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session |
DEPENDENT | mongodb.connections.current Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: New connections, rate | Rate of all incoming connections created to the server. |
DEPENDENT | mongodb.connections.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Connections, available | The number of unused incoming connections available. |
DEPENDENT | mongodb.connections.available Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
DEPENDENT | mongodb.connections.active Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_in.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Requests, rate | Number of distinct requests that the server has received per second |
DEPENDENT | mongodb.network.numRequests.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: deleted, rate | Number of documents deleted per second. |
DEPENDENT | mongod.document.deleted.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: inserted, rate | Number of documents inserted per second. |
DEPENDENT | mongod.document.inserted.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: returned, rate | Number of documents returned by queries per second. |
DEPENDENT | mongod.document.returned.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: updated, rate | Number of documents updated per second. |
DEPENDENT | mongod.document.updated.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
DEPENDENT | mongodb.metrics.cursor.open.no_timeout Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Cursor: open pinned | Number of pinned open cursors. |
DEPENDENT | mongodb.cursor.open.pinned Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
DEPENDENT | mongodb.cursor.open.total Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Cursor: timed out, rate | Number of cursors that time out, per second. |
DEPENDENT | mongodb.cursor.timed_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
DEPENDENT | mongodb.mem.bits Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Memory: mapped | Amount of mapped memory by the database. |
DEPENDENT | mongodb.mem.mapped Preprocessing: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: |
| MongoDB | MongoDB: Memory: mapped with journal | The amount of mapped memory, including the memory used for journaling. |
DEPENDENT | mongodb.mem.mapped_with_journal Preprocessing: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: |
| MongoDB | MongoDB: Memory: resident | Amount of memory currently used by the database process. |
DEPENDENT | mongodb.mem.resident Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB | MongoDB: Memory: virtual | Amount of virtual memory used by the mongod process. |
DEPENDENT | mongodb.mem.virtual Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB | MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
DEPENDENT | mongodb.db.size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
DEPENDENT | mongodb.db.data_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
DEPENDENT | mongodb.db.file_size["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
DEPENDENT | mongodb.db.index_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
DEPENDENT | mongodb.db.storage_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Collections | Contains a count of the number of collections in that database. |
DEPENDENT | mongodb.db.collections["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
DEPENDENT | mongodb.db.objects["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
DEPENDENT | mongodb.db.extents["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
DEPENDENT | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
DEPENDENT | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
DEPENDENT | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Capped: max number | Maximum number of documents that may be present in a capped collection. |
DEPENDENT | mongodb.collection.max_number["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Capped: max size | Maximum size of a capped collection in bytes. |
DEPENDENT | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
DEPENDENT | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
DEPENDENT | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
DEPENDENT | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.total.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Read lock, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.read_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Write lock, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.write_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.queries.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.getmore.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.insert.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.update.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.remove.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.commands.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.total.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Read lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.read_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Write lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.write_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.queries.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.getmore.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.insert.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.update.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.remove.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.commands.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Node state | An integer between 0 and 10 that represents the replica state of the current member. |
DEPENDENT | mongodb.rs.state[{#RS_NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Replication lag | Delay between a write operation on the primary and its copy to a secondary. |
DEPENDENT | mongodb.rs.lag[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Number of replicas | The number of replucated nodes in current ReplicaSet. |
DEPENDENT | mongodb.rs.total_nodes[{#RS_NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Number of unhealthy replicas | The number of replicated nodes with member health value = 0. |
DEPENDENT | mongodb.rs.unhealthy_count[{#RS_NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Unhealthy replicas | The replicated nodes in current ReplicaSet with member health value = 0. |
DEPENDENT | mongodb.rs.unhealthy[{#RS_NAME}] Preprocessing: - JSONPATH: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Apply batches, rate | Number of batches applied across all databases per second. |
DEPENDENT | mongodb.rs.apply.batches.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Apply batches, ms/s | Fraction of time (ms/s) the mongod has spent applying operations from the oplog. |
DEPENDENT | mongodb.rs.apply.batches.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Apply ops, rate | Number of oplog operations applied per second. |
DEPENDENT | mongodb.rs.apply.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Buffer | Number of operations in the oplog buffer. |
DEPENDENT | mongodb.rs.buffer.count[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Buffer, max size | Maximum size of the buffer. |
DEPENDENT | mongodb.rs.buffer.max_size[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Buffer, size | Current size of the contents of the oplog buffer. |
DEPENDENT | mongodb.rs.buffer.size[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Network bytes, rate | Amount of data read from the replication sync source per second. |
DEPENDENT | mongodb.rs.network.bytes.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network getmores, rate | Number of getmore operations per second. |
DEPENDENT | mongodb.rs.network.getmores.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network getmores, ms/s | Fraction of time (ms/s) required to collect data from getmore operations. |
DEPENDENT | mongodb.rs.network.getmores.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network ops, rate | Number of operations read from the replication source per second. |
DEPENDENT | mongodb.rs.network.ops.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network readers created, rate | Number of oplog query processes created per second. |
DEPENDENT | mongodb.rs.network.readers.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#RS_NAME}: Oplog time diff | Oplog window: difference between the first and last operation in the oplog. Only present if there are entries in the oplog. |
DEPENDENT | mongodb.rs.oplog.timediff[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Preload docs, rate | Number of documents loaded per second during the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.docs.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Preload docs, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.docs.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Preload indexes, rate | Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.indexes.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Preload indexes, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.indexes.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: WiredTiger cache: bytes | Size of the data currently in cache. |
DEPENDENT | mongodb.wired_tiger.cache.bytes_in_cache[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: in-memory page splits | In-memory page splits. |
DEPENDENT | mongodb.wired_tiger.cache.splits[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: bytes, max | Maximum cache size. |
DEPENDENT | mongodb.wired_tiger.cache.maximum_bytes_configured[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: max page size at eviction | Maximum page size at eviction. |
DEPENDENT | mongodb.wired_tiger.cache.max_page_size_eviction[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: modified pages evicted | Number of pages, that have been modified, evicted from the cache. |
DEPENDENT | mongodb.wired_tiger.cache.modified_pages_evicted[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages read into cache | Number of pages read into the cache. |
DEPENDENT | mongodb.wired_tiger.cache.pages_read[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages written from cache | Number of pages written from the cache. |
DEPENDENT | mongodb.wired_tiger.cache.pages_written[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages held in cache | Number of pages currently held in the cache. |
DEPENDENT | mongodb.wired_tiger.cache.pages_in_cache[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages evicted by application threads, rate | Number of page evicted by application threads per second. |
DEPENDENT | mongodb.wired_tiger.cache.pages_evicted_threads.rate[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: tracked dirty bytes in the cache | Size of the dirty data in the cache. |
DEPENDENT | mongodb.wired_tiger.cache.tracked_dirty_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: unmodified pages evicted | Number of pages, that were not modified, evicted from the cache. |
DEPENDENT | mongodb.wired_tiger.cache.unmodified_pages_evicted[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: read, available | Number of available read tickets (concurrent transactions) remaining. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: read, out | Number of read tickets (concurrent transactions) in use. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.read.out[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: read, total tickets | Total number of read tickets (concurrent transactions) available. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.read.totalTickets[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: write, available | Number of available write tickets (concurrent transactions) remaining. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: write, out | Number of write tickets (concurrent transactions) in use. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.write.out[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: write, total tickets | Total number of write tickets (concurrent transactions) available. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.write.totalTickets[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | MongoDB: Get server status | Returns a database's state. |
ZABBIX_PASSIVE | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB: Get Replica Set status | Returns the replica set status from the point of view of the member where the method is run. |
ZABBIX_PASSIVE | mongodb.rs.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB: Get oplog stats | Returns status of the replica set, using data polled from the oplog. |
ZABBIX_PASSIVE | mongodb.oplog.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB: Get collections usage stats | Returns usage statistics for each collection. |
ZABBIX_PASSIVE | mongodb.collections.usage["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
ZABBIX_PASSIVE | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| Zabbix_raw_items | MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
ZABBIX_PASSIVE | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB: Connection to MongoDB is unavailable | Connection to MongoDB instance is currently unavailable. |
last(/MongoDB node by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
HIGH | |
| MongoDB: Version has changed (new version: {ITEM.VALUE}) | MongoDB version has changed. Ack to close. |
last(/MongoDB node by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB node by Zabbix agent 2/mongodb.version))>0 |
INFO | Manual close: YES |
| MongoDB: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/MongoDB node by Zabbix agent 2/mongodb.uptime)<10m |
INFO | Manual close: YES |
| MongoDB: Failed to fetch info data (or no data for 10m) | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB node by Zabbix agent 2/mongodb.uptime,10m)=1 |
WARNING | Manual close: YES Depends on: - MongoDB: Connection to MongoDB is unavailable |
| MongoDB: Total number of open connections is too high (over {$MONGODB.CONNS.PCT.USED.MAX.WARN%} in 5m) | Too few available connections. If MongoDB runs low on connections, in may not be able to handle incoming requests in a timely manner. |
min(/MongoDB node by Zabbix agent 2/mongodb.connections.current,5m)/(last(/MongoDB node by Zabbix agent 2/mongodb.connections.available)+last(/MongoDB node by Zabbix agent 2/mongodb.connections.current))*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN} |
WARNING | |
| MongoDB: Too many cursors opened by MongoDB for clients (over {$MONGODB.CURSOR.OPEN.MAX.WARN} in 5m) | - |
min(/MongoDB node by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
WARNING | |
| MongoDB: Too many cursors are timing out (over {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} per second in 5m) | - |
min(/MongoDB node by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
WARNING | |
| MongoDB: Node in ReplicaSet changed the state (new state: {ITEM.VALUE}) | Node in ReplicaSet changed the state. Ack to close. |
last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#1)<>last(/MongoDB node by Zabbix agent 2/mongodb.rs.state[{#RS_NAME}],#2) |
WARNING | Manual close: YES |
| MongoDB: Replication lag with primary is too high (over {$MONGODB.REPL.LAG.MAX.WARN} in 5m) | - |
min(/MongoDB node by Zabbix agent 2/mongodb.rs.lag[{#RS_NAME}],5m)>{$MONGODB.REPL.LAG.MAX.WARN} |
WARNING | |
| MongoDB: There are unhealthy replicas in ReplicaSet | - |
last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy_count[{#RS_NAME}])>0 and length(last(/MongoDB node by Zabbix agent 2/mongodb.rs.unhealthy[{#RS_NAME}]))>0 |
AVERAGE | |
| MongoDB: Available WiredTiger read tickets less then {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | "Too few available read tickets. When the number of available read tickets remaining reaches zero, new read requests will be queued until a new read ticket is available." |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
WARNING | |
| MongoDB: Available WiredTiger write tickets less then {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | "Too few available write tickets. When the number of available write tickets remaining reaches zero, new write requests will be queued until a new write ticket is available." |
max(/MongoDB node by Zabbix agent 2/mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
WARNING |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb?at=release/5.0
For Zabbix version: 5.0 and higher
The template to monitor single MongoDB server by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template DB MongoDB node by Zabbix Agent 2 — collects metrics by polling zabbix-agent2.
This template was tested on:
See Zabbix template operation for basic instructions.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
Test availability: zabbix_get -s mongodb.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNS.PCT.USED.MAX.WARN} | Maximum percentage of used connections |
80 |
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
`(admin |
| {$MONGODB.PASSWORD} | MongoDB user password |
`` |
| {$MONGODB.REPL.LAG.MAX.WARN} | Maximum replication lag in seconds |
10s |
| {$MONGODB.USER} | MongoDB username |
`` |
| {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | Minimum number of available WiredTiger read or write tickets remaining |
5 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- A: {#DBNAME} MATCHES_REGEX - B: {#DBNAME} NOT_MATCHES_REGEX |
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- A: {#DBNAME} MATCHES_REGEX - B: {#DBNAME} NOT_MATCHES_REGEX - C: {#COLLECTION} MATCHES_REGEX - D: {#COLLECTION} NOT_MATCHES_REGEX |
| Replication discovery | Collect metrics by Zabbix agent if it exists |
DEPENDENT | mongodb.rs.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Overrides: Primary metrics - ITEM_PROTOTYPE LIKE Unhealthy replicas - DISCOVER- ITEM_PROTOTYPE LIKE Number of unhealthy replicas - DISCOVER- ITEM_PROTOTYPE LIKE Replication lag - NO_DISCOVERArbiter metrics |
| WiredTiger metrics | Collect metrics of WiredTiger Storage Engine if it exists |
DEPENDENT | mongodb.wired_tiger.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| MongoDB | MongoDB: Ping | Test if a connection is alive or not. |
ZABBIX_PASSIVE | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: MongoDB version | Version of the MongoDB server. |
DEPENDENT | mongodb.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Uptime | Number of seconds that the mongod process has been active. |
DEPENDENT | mongodb.uptime Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Asserts: message, rate | The number of message assertions raised per second. Check the log file for more information about these messages. |
DEPENDENT | mongodb.asserts.msg.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: user, rate | The number of “user asserts” that have occurred per second. These are errors that user may generate, such as out of disk space or duplicate key. |
DEPENDENT | mongodb.asserts.user.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: warning, rate | The number of warnings raised per second. |
DEPENDENT | mongodb.asserts.warning.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: regular, rate | The number of regular assertions raised per second. Check the log file for more information about these messages. |
DEPENDENT | mongodb.asserts.regular.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Asserts: rollovers, rate | Number of times that the rollover counters roll over per second. The counters rollover to zero every 2^30 assertions. |
DEPENDENT | mongodb.asserts.rollovers.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Active clients: writers | The number of active client connections performing write operations. |
DEPENDENT | mongodb.active_clients.writers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Active clients: readers | The number of the active client connections performing read operations. |
DEPENDENT | mongodb.active_clients.readers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Active clients: total | The total number of internal client connections to the database including system threads as well as queued readers and writers. |
DEPENDENT | mongodb.active_clients.total Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Current queue: writers | The number of operations that are currently queued and waiting for the write lock. A consistently small write-queue, particularly of shorter operations, is no cause for concern. |
DEPENDENT | mongodb.current_queue.writers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Current queue: readers | The number of operations that are currently queued and waiting for the read lock. A consistently small read-queue, particularly of shorter operations, should cause no concern. |
DEPENDENT | mongodb.current_queue.readers Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Current queue: total | The total number of operations queued waiting for the lock. |
DEPENDENT | mongodb.current_queue.total Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Operations: command, rate | The number of commands issued to the database the mongod instance per second. Counts all commands except the write commands: insert, update, and delete. |
DEPENDENT | mongodb.opcounters.command.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: delete, rate | The number of delete operations the mongod instance per second. |
DEPENDENT | mongodb.opcounters.delete.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: update, rate | The number of update operations the mongod instance per second. |
DEPENDENT | mongodb.opcounters.update.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: query, rate | The number of queries received the mongod instance per second. |
DEPENDENT | mongodb.opcounters.query.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: insert, rate | The number of insert operations received since the mongod instance per second. |
DEPENDENT | mongodb.opcounters.insert.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Operations: getmore, rate | The number of “getmore” operations since the mongod instance per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
DEPENDENT | mongodb.opcounters.getmore.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session |
DEPENDENT | mongodb.connections.current Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: New connections, rate | Rate of all incoming connections created to the server. |
DEPENDENT | mongodb.connections.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Connections, available | The number of unused incoming connections available. |
DEPENDENT | mongodb.connections.available Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
DEPENDENT | mongodb.connections.active Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_in.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Requests, rate | Number of distinct requests that the server has received per second |
DEPENDENT | mongodb.network.numRequests.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: deleted, rate | Number of documents deleted per second. |
DEPENDENT | mongod.document.deleted.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: inserted, rate | Number of documents inserted per second. |
DEPENDENT | mongod.document.inserted.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: returned, rate | Number of documents returned by queries per second. |
DEPENDENT | mongod.document.returned.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Document: updated, rate | Number of documents updated per second. |
DEPENDENT | mongod.document.updated.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
DEPENDENT | mongodb.metrics.cursor.open.no_timeout Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Cursor: open pinned | Number of pinned open cursors. |
DEPENDENT | mongodb.cursor.open.pinned Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
DEPENDENT | mongodb.cursor.open.total Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Cursor: timed out, rate | Number of cursors that time out, per second. |
DEPENDENT | mongodb.cursor.timed_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
DEPENDENT | mongodb.mem.bits Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Memory: mapped | Amount of mapped memory by the database. |
DEPENDENT | mongodb.mem.mapped Preprocessing: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: |
| MongoDB | MongoDB: Memory: mapped with journal | The amount of mapped memory, including the memory used for journaling. |
DEPENDENT | mongodb.mem.mapped_with_journal Preprocessing: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: |
| MongoDB | MongoDB: Memory: resident | Amount of memory currently used by the database process. |
DEPENDENT | mongodb.mem.resident Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB | MongoDB: Memory: virtual | Amount of virtual memory used by the mongod process. |
DEPENDENT | mongodb.mem.virtual Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB | MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
DEPENDENT | mongodb.db.size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
DEPENDENT | mongodb.db.data_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
DEPENDENT | mongodb.db.file_size["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
DEPENDENT | mongodb.db.index_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
DEPENDENT | mongodb.db.storage_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Collections | Contains a count of the number of collections in that database. |
DEPENDENT | mongodb.db.collections["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
DEPENDENT | mongodb.db.objects["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
DEPENDENT | mongodb.db.extents["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
DEPENDENT | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
DEPENDENT | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
DEPENDENT | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Capped: max number | Maximum number of documents that may be present in a capped collection. |
DEPENDENT | mongodb.collection.max_number["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Capped: max size | Maximum size of a capped collection in bytes. |
DEPENDENT | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
DEPENDENT | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
DEPENDENT | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
DEPENDENT | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.total.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Read lock, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.read_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Write lock, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.write_lock.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.queries.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.getmore.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.insert.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.update.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.remove.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, rate | The number of operations per second. |
DEPENDENT | mongodb.collection.ops.commands.rate["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: total, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.total.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Read lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.read_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Write lock, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.write_lock.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: queries, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.queries.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: getmore, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.getmore.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: insert, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.insert.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: update, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.update.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: remove, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.remove.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#DBNAME}.{#COLLECTION}: Operations: commands, ms/s | Fraction of time (ms/s) the mongod has spent to operations. |
DEPENDENT | mongodb.collection.ops.commands.ms["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Node state | An integer between 0 and 10 that represents the replica state of the current member. |
DEPENDENT | mongodb.rs.state[{#RS_NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Replication lag | Delay between a write operation on the primary and its copy to a secondary. |
DEPENDENT | mongodb.rs.lag[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Number of replicas | The number of replicated nodes in current ReplicaSet. |
DEPENDENT | mongodb.rs.total_nodes[{#RS_NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Number of unhealthy replicas | The number of replicated nodes with member health value = 0. |
DEPENDENT | mongodb.rs.unhealthy_count[{#RS_NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Unhealthy replicas | The replicated nodes in current ReplicaSet with member health value = 0. |
DEPENDENT | mongodb.rs.unhealthy[{#RS_NAME}] Preprocessing: - JSONPATH: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB | MongoDB: Apply batches, rate | Number of batches applied across all databases per second. |
DEPENDENT | mongodb.rs.apply.batches.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Apply batches, ms/s | Fraction of time (ms/s) the mongod has spent applying operations from the oplog. |
DEPENDENT | mongodb.rs.apply.batches.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Apply ops, rate | Number of oplog operations applied per second. |
DEPENDENT | mongodb.rs.apply.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Buffer | Number of operations in the oplog buffer. |
DEPENDENT | mongodb.rs.buffer.count[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Buffer, max size | Maximum size of the buffer. |
DEPENDENT | mongodb.rs.buffer.max_size[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Buffer, size | Current size of the contents of the oplog buffer. |
DEPENDENT | mongodb.rs.buffer.size[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Network bytes, rate | Amount of data read from the replication sync source per second. |
DEPENDENT | mongodb.rs.network.bytes.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network getmores, rate | Number of getmore operations per second. |
DEPENDENT | mongodb.rs.network.getmores.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network getmores, ms/s | Fraction of time (ms/s) required to collect data from getmore operations. |
DEPENDENT | mongodb.rs.network.getmores.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network ops, rate | Number of operations read from the replication source per second. |
DEPENDENT | mongodb.rs.network.ops.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Network readers created, rate | Number of oplog query processes created per second. |
DEPENDENT | mongodb.rs.network.readers.rate[{#RS_NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB | MongoDB {#RS_NAME}: Oplog time diff | Oplog window: difference between the first and last operation in the oplog. Only present if there are entries in the oplog. |
DEPENDENT | mongodb.rs.oplog.timediff[{#RS_NAME}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: Preload docs, rate | Number of documents loaded per second during the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.docs.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Preload docs, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.docs.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Preload indexes, rate | Number of index entries loaded by members before updating documents as part of the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.indexes.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: Preload indexes, ms/s | Fraction of time (ms/s) spent loading documents as part of the pre-fetch stage of replication. |
DEPENDENT | mongodb.rs.preload.indexes.ms.rate[{#RS_NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
| MongoDB | MongoDB: WiredTiger cache: bytes | Size of the data currently in cache. |
DEPENDENT | mongodb.wired_tiger.cache.bytes_in_cache[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: in-memory page splits | In-memory page splits. |
DEPENDENT | mongodb.wired_tiger.cache.splits[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: bytes, max | Maximum cache size. |
DEPENDENT | mongodb.wired_tiger.cache.maximum_bytes_configured[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: max page size at eviction | Maximum page size at eviction. |
DEPENDENT | mongodb.wired_tiger.cache.max_page_size_eviction[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: modified pages evicted | Number of pages, that have been modified, evicted from the cache. |
DEPENDENT | mongodb.wired_tiger.cache.modified_pages_evicted[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages read into cache | Number of pages read into the cache. |
DEPENDENT | mongodb.wired_tiger.cache.pages_read[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages written from cache | Number of pages written from the cache. |
DEPENDENT | mongodb.wired_tiger.cache.pages_written[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages held in cache | Number of pages currently held in the cache. |
DEPENDENT | mongodb.wired_tiger.cache.pages_in_cache[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: pages evicted by application threads, rate | Number of page evicted by application threads per second. |
DEPENDENT | mongodb.wired_tiger.cache.pages_evicted_threads.rate[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: tracked dirty bytes in the cache | Size of the dirty data in the cache. |
DEPENDENT | mongodb.wired_tiger.cache.tracked_dirty_bytes[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger cache: unmodified pages evicted | Number of pages, that were not modified, evicted from the cache. |
DEPENDENT | mongodb.wired_tiger.cache.unmodified_pages_evicted[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: read, available | Number of available read tickets (concurrent transactions) remaining. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: read, out | Number of read tickets (concurrent transactions) in use. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.read.out[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: read, total tickets | Total number of read tickets (concurrent transactions) available. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.read.totalTickets[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: write, available | Number of available write tickets (concurrent transactions) remaining. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: write, out | Number of write tickets (concurrent transactions) in use. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.write.out[{#SINGLETON}] Preprocessing: - JSONPATH: |
| MongoDB | MongoDB: WiredTiger concurrent transactions: write, total tickets | Total number of write tickets (concurrent transactions) available. |
DEPENDENT | mongodb.wired_tiger.concurrent_transactions.write.totalTickets[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | MongoDB: Get server status | Returns a database's state. |
ZABBIX_PASSIVE | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB: Get Replica Set status | Returns the replica set status from the point of view of the member where the method is run. |
ZABBIX_PASSIVE | mongodb.rs.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB: Get oplog stats | Returns status of the replica set, using data polled from the oplog. |
ZABBIX_PASSIVE | mongodb.oplog.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB: Get collections usage stats | Returns usage statistics for each collection. |
ZABBIX_PASSIVE | mongodb.collections.usage["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
ZABBIX_PASSIVE | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| Zabbix_raw_items | MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
ZABBIX_PASSIVE | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB: Connection to MongoDB is unavailable | Connection to MongoDB instance is currently unavailable. |
{TEMPLATE_NAME:mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"].last()}=0 |
HIGH | |
| MongoDB: Version has changed (new version: {ITEM.VALUE}) | MongoDB version has changed. Ack to close. |
{TEMPLATE_NAME:mongodb.version.diff()}=1 and {TEMPLATE_NAME:mongodb.version.strlen()}>0 |
INFO | Manual close: YES |
| MongoDB: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
{TEMPLATE_NAME:mongodb.uptime.last()}<10m |
INFO | Manual close: YES |
| MongoDB: Failed to fetch info data (or no data for 10m) | Zabbix has not received data for items for the last 10 minutes |
{TEMPLATE_NAME:mongodb.uptime.nodata(10m)}=1 |
WARNING | Manual close: YES Depends on: - MongoDB: Connection to MongoDB is unavailable |
| MongoDB: Total number of open connections is too high (over {$MONGODB.CONNS.PCT.USED.MAX.WARN%} in 5m) | Too few available connections. If MongoDB runs low on connections, in may not be able to handle incoming requests in a timely manner. |
{TEMPLATE_NAME:mongodb.connections.current.min(5m)}/({TEMPLATE_NAME:mongodb.connections.available.last()}+{TEMPLATE_NAME:mongodb.connections.current.last()})*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN} |
WARNING | |
| MongoDB: Too many cursors opened by MongoDB for clients (over {$MONGODB.CURSOR.OPEN.MAX.WARN} in 5m) | - |
{TEMPLATE_NAME:mongodb.cursor.open.total.min(5m)}>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
WARNING | |
| MongoDB: Too many cursors are timing out (over {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} per second in 5m) | - |
{TEMPLATE_NAME:mongodb.cursor.timed_out.rate.min(5m)}>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
WARNING | |
| MongoDB: Node in ReplicaSet changed the state (new state: {ITEM.VALUE}) | Node in ReplicaSet changed the state. Ack to close. |
{TEMPLATE_NAME:mongodb.rs.state[{#RS_NAME}].diff()}=1 |
WARNING | Manual close: YES |
| MongoDB: Replication lag with primary is too high (over {$MONGODB.REPL.LAG.MAX.WARN} in 5m) | - |
{TEMPLATE_NAME:mongodb.rs.lag[{#RS_NAME}].min(5m)}>{$MONGODB.REPL.LAG.MAX.WARN} |
WARNING | |
| MongoDB: There are unhealthy replicas in ReplicaSet | {TEMPLATE_NAME:mongodb.rs.unhealthy_count[{#RS_NAME}].last()}>0 and {TEMPLATE_NAME:mongodb.rs.unhealthy[{#RS_NAME}].strlen()}>0 |
AVERAGE | ||
| MongoDB: Available WiredTiger read tickets less than {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | "Too few available read tickets. When the number of available read tickets remaining reaches zero, new read requests will be queued until a new read ticket is available." |
{TEMPLATE_NAME:mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}].max(5m)}<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
WARNING | |
| MongoDB: Available WiredTiger write tickets less than {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} | "Too few available write tickets. When the number of available write tickets remaining reaches zero, new write requests will be queued until a new write ticket is available." |
{TEMPLATE_NAME:mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}].max(5m)}<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN} |
WARNING |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb_cluster?at=release/7.4
The template to monitor MongoDB sharded cluster by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB cluster by Zabbix agent 2 — collects metrics from mongos proxy(router) by polling zabbix-agent2.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
All sharded Mongodb nodes (mongod) will be discovered with attached template "MongoDB node by Zabbix agent 2".
Test availability: zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | Minimum number of available connections |
1000 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get server status | The mongos statistic |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Get mongodb.connpool.stats | Returns current info about connpool.stats. |
Zabbix agent | mongodb.connpool.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| Jumbo chunks | Total number of 'jumbo' chunks in the mongo cluster. |
Zabbix agent | mongodb.jumbo_chunks.count["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Mongos version | Version of the Mongos server |
Dependent item | mongodb.version Preprocessing
|
| Uptime | Number of seconds since the Mongos server start. |
Dependent item | mongodb.uptime Preprocessing
|
| Operations: command | The number of commands issued to the database per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| Operations: delete | The number of delete operations the mongos instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| Operations: update, rate | The number of update operations the mongos instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| Operations: query, rate | The number of queries received the mongos instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| Operations: insert, rate | The number of insert operations received the mongos instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| Operations: getmore, rate | The number of "getmore" operations the mongos per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| Last seen configserver | The latest optime of the CSRS primary that the mongos has seen. |
Dependent item | mongodb.last_seen_config_server Preprocessing
|
| Configserver heartbeat | Difference between the latest optime of the CSRS primary that the mongos has seen and cluster time. |
Dependent item | mongodb.config_server_heartbeat Preprocessing
|
| Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| Requests, rate | Number of distinct requests that the server has received per second. |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| New connections, rate | "Rate of all incoming connections created to the server." |
Dependent item | mongodb.connections.rate Preprocessing
|
| Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| Connections, available | "The number of unused incoming connections available." |
Dependent item | mongodb.connections.available Preprocessing
|
| Connection pool: client connections | The number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.client Preprocessing
|
| Connection pool: scoped | Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.scoped Preprocessing
|
| Connection pool: created, rate | The total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.created.rate Preprocessing
|
| Connection pool: available | The total number of available outgoing connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.available Preprocessing
|
| Connection pool: in use | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster set that are currently in use. |
Dependent item | mongodb.connection_pool.in_use Preprocessing
|
| Connection pool: refreshing | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster that are currently being refreshed. |
Dependent item | mongodb.connection_pool.refreshing Preprocessing
|
| Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| Memory: virtual | Amount of virtual memory used by the mongos process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB cluster: Connection to mongos proxy is unavailable | Connection to mongos proxy instance is currently unavailable. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB cluster: Version has changed | MongoDB cluster version has changed. Acknowledge to close the problem manually. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB cluster by Zabbix agent 2/mongodb.version))>0 |
Info | Manual close: Yes |
| MongoDB cluster: Mongos server has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB cluster: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB cluster by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB cluster: Available connections is low | Too few available connections. |
max(/MongoDB cluster by Zabbix agent 2/mongodb.connections.available,5m)<{$MONGODB.CONNS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB cluster: Too many cursors opened by MongoDB for clients | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB cluster: Too many cursors are timing out | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max number | Maximum number of documents in a capped collection. |
Dependent item | mongodb.collection.max["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Shards discovery | Discovery shared cluster hosts. |
Zabbix agent | mongodb.sh.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Config servers discovery | Discovery shared cluster config servers. |
Zabbix agent | mongodb.cfg.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb_cluster?at=release/7.2
The template to monitor MongoDB sharded cluster by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB cluster by Zabbix agent 2 — collects metrics from mongos proxy(router) by polling zabbix-agent2.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
All sharded Mongodb nodes (mongod) will be discovered with attached template "MongoDB node by Zabbix agent 2".
Test availability: zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | Minimum number of available connections |
1000 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get server status | The mongos statistic |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Get mongodb.connpool.stats | Returns current info about connpool.stats. |
Zabbix agent | mongodb.connpool.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| Jumbo chunks | Total number of 'jumbo' chunks in the mongo cluster. |
Zabbix agent | mongodb.jumbo_chunks.count["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Mongos version | Version of the Mongos server |
Dependent item | mongodb.version Preprocessing
|
| Uptime | Number of seconds since the Mongos server start. |
Dependent item | mongodb.uptime Preprocessing
|
| Operations: command | The number of commands issued to the database per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| Operations: delete | The number of delete operations the mongos instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| Operations: update, rate | The number of update operations the mongos instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| Operations: query, rate | The number of queries received the mongos instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| Operations: insert, rate | The number of insert operations received the mongos instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| Operations: getmore, rate | The number of "getmore" operations the mongos per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| Last seen configserver | The latest optime of the CSRS primary that the mongos has seen. |
Dependent item | mongodb.last_seen_config_server Preprocessing
|
| Configserver heartbeat | Difference between the latest optime of the CSRS primary that the mongos has seen and cluster time. |
Dependent item | mongodb.config_server_heartbeat Preprocessing
|
| Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| Requests, rate | Number of distinct requests that the server has received per second. |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| New connections, rate | "Rate of all incoming connections created to the server." |
Dependent item | mongodb.connections.rate Preprocessing
|
| Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| Connections, available | "The number of unused incoming connections available." |
Dependent item | mongodb.connections.available Preprocessing
|
| Connection pool: client connections | The number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.client Preprocessing
|
| Connection pool: scoped | Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.scoped Preprocessing
|
| Connection pool: created, rate | The total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.created.rate Preprocessing
|
| Connection pool: available | The total number of available outgoing connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.available Preprocessing
|
| Connection pool: in use | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster set that are currently in use. |
Dependent item | mongodb.connection_pool.in_use Preprocessing
|
| Connection pool: refreshing | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster that are currently being refreshed. |
Dependent item | mongodb.connection_pool.refreshing Preprocessing
|
| Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| Memory: virtual | Amount of virtual memory used by the mongos process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB cluster: Connection to mongos proxy is unavailable | Connection to mongos proxy instance is currently unavailable. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB cluster: Version has changed | MongoDB cluster version has changed. Acknowledge to close the problem manually. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB cluster by Zabbix agent 2/mongodb.version))>0 |
Info | Manual close: Yes |
| MongoDB cluster: Mongos server has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB cluster: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB cluster by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB cluster: Available connections is low | Too few available connections. |
max(/MongoDB cluster by Zabbix agent 2/mongodb.connections.available,5m)<{$MONGODB.CONNS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB cluster: Too many cursors opened by MongoDB for clients | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB cluster: Too many cursors are timing out | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max number | Maximum number of documents in a capped collection. |
Dependent item | mongodb.collection.max["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Shards discovery | Discovery shared cluster hosts. |
Zabbix agent | mongodb.sh.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Config servers discovery | Discovery shared cluster config servers. |
Zabbix agent | mongodb.cfg.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb_cluster?at=release/7.0
The template to monitor MongoDB sharded cluster by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB cluster by Zabbix agent 2 — collects metrics from mongos proxy(router) by polling zabbix-agent2.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
All sharded Mongodb nodes (mongod) will be discovered with attached template "MongoDB node by Zabbix agent 2".
Test availability: zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | Minimum number of available connections |
1000 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get server status | The mongos statistic |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Get mongodb.connpool.stats | Returns current info about connpool.stats. |
Zabbix agent | mongodb.connpool.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| Jumbo chunks | Total number of 'jumbo' chunks in the mongo cluster. |
Zabbix agent | mongodb.jumbo_chunks.count["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Mongos version | Version of the Mongos server |
Dependent item | mongodb.version Preprocessing
|
| Uptime | Number of seconds since the Mongos server start. |
Dependent item | mongodb.uptime Preprocessing
|
| Operations: command | The number of commands issued to the database per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| Operations: delete | The number of delete operations the mongos instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| Operations: update, rate | The number of update operations the mongos instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| Operations: query, rate | The number of queries received the mongos instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| Operations: insert, rate | The number of insert operations received the mongos instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| Operations: getmore, rate | The number of "getmore" operations the mongos per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| Last seen configserver | The latest optime of the CSRS primary that the mongos has seen. |
Dependent item | mongodb.last_seen_config_server Preprocessing
|
| Configserver heartbeat | Difference between the latest optime of the CSRS primary that the mongos has seen and cluster time. |
Dependent item | mongodb.config_server_heartbeat Preprocessing
|
| Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| Requests, rate | Number of distinct requests that the server has received per second. |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| New connections, rate | "Rate of all incoming connections created to the server." |
Dependent item | mongodb.connections.rate Preprocessing
|
| Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| Connections, available | "The number of unused incoming connections available." |
Dependent item | mongodb.connections.available Preprocessing
|
| Connection pool: client connections | The number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.client Preprocessing
|
| Connection pool: scoped | Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.scoped Preprocessing
|
| Connection pool: created, rate | The total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.created.rate Preprocessing
|
| Connection pool: available | The total number of available outgoing connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.available Preprocessing
|
| Connection pool: in use | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster set that are currently in use. |
Dependent item | mongodb.connection_pool.in_use Preprocessing
|
| Connection pool: refreshing | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster that are currently being refreshed. |
Dependent item | mongodb.connection_pool.refreshing Preprocessing
|
| Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| Memory: virtual | Amount of virtual memory used by the mongos process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB cluster: Connection to mongos proxy is unavailable | Connection to mongos proxy instance is currently unavailable. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB cluster: Version has changed | MongoDB cluster version has changed. Acknowledge to close the problem manually. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB cluster by Zabbix agent 2/mongodb.version))>0 |
Info | Manual close: Yes |
| MongoDB cluster: Mongos server has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB cluster: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB cluster by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB cluster: Available connections is low | Too few available connections. |
max(/MongoDB cluster by Zabbix agent 2/mongodb.connections.available,5m)<{$MONGODB.CONNS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB cluster: Too many cursors opened by MongoDB for clients | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB cluster: Too many cursors are timing out | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max number | Maximum number of documents in a capped collection. |
Dependent item | mongodb.collection.max["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Shards discovery | Discovery shared cluster hosts. |
Zabbix agent | mongodb.sh.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Config servers discovery | Discovery shared cluster config servers. |
Zabbix agent | mongodb.cfg.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb_cluster?at=release/6.4
The template to monitor MongoDB sharded cluster by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB cluster by Zabbix agent 2 — collects metrics from mongos proxy(router) by polling zabbix-agent2.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
All sharded Mongodb nodes (mongod) will be discovered with attached template "MongoDB node by Zabbix agent 2".
Test availability: zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | Minimum number of available connections |
1000 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB cluster: Get server status | The mongos statistic |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB cluster: Get mongodb.connpool.stats | Returns current info about connpool.stats. |
Zabbix agent | mongodb.connpool.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB cluster: Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| MongoDB cluster: Jumbo chunks | Total number of 'jumbo' chunks in the mongo cluster. |
Zabbix agent | mongodb.jumbo_chunks.count["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB cluster: Mongos version | Version of the Mongos server |
Dependent item | mongodb.version Preprocessing
|
| MongoDB cluster: Uptime | Number of seconds since the Mongos server start. |
Dependent item | mongodb.uptime Preprocessing
|
| MongoDB cluster: Operations: command | The number of commands issued to the database per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| MongoDB cluster: Operations: delete | The number of delete operations the mongos instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| MongoDB cluster: Operations: update, rate | The number of update operations the mongos instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| MongoDB cluster: Operations: query, rate | The number of queries received the mongos instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| MongoDB cluster: Operations: insert, rate | The number of insert operations received the mongos instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| MongoDB cluster: Operations: getmore, rate | The number of "getmore" operations the mongos per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| MongoDB cluster: Last seen configserver | The latest optime of the CSRS primary that the mongos has seen. |
Dependent item | mongodb.last_seen_config_server Preprocessing
|
| MongoDB cluster: Configserver heartbeat | Difference between the latest optime of the CSRS primary that the mongos has seen and cluster time. |
Dependent item | mongodb.config_server_heartbeat Preprocessing
|
| MongoDB cluster: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| MongoDB cluster: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| MongoDB cluster: Requests, rate | Number of distinct requests that the server has received per second. |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| MongoDB cluster: Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| MongoDB cluster: New connections, rate | "Rate of all incoming connections created to the server." |
Dependent item | mongodb.connections.rate Preprocessing
|
| MongoDB cluster: Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| MongoDB cluster: Connections, available | "The number of unused incoming connections available." |
Dependent item | mongodb.connections.available Preprocessing
|
| MongoDB cluster: Connection pool: client connections | The number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.client Preprocessing
|
| MongoDB cluster: Connection pool: scoped | Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.scoped Preprocessing
|
| MongoDB cluster: Connection pool: created, rate | The total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.created.rate Preprocessing
|
| MongoDB cluster: Connection pool: available | The total number of available outgoing connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.available Preprocessing
|
| MongoDB cluster: Connection pool: in use | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster set that are currently in use. |
Dependent item | mongodb.connection_pool.in_use Preprocessing
|
| MongoDB cluster: Connection pool: refreshing | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster that are currently being refreshed. |
Dependent item | mongodb.connection_pool.refreshing Preprocessing
|
| MongoDB cluster: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| MongoDB cluster: Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| MongoDB cluster: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| MongoDB cluster: Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| MongoDB cluster: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| MongoDB cluster: Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| MongoDB cluster: Memory: virtual | Amount of virtual memory used by the mongos process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB cluster: Connection to mongos proxy is unavailable | Connection to mongos proxy instance is currently unavailable. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB cluster: Version has changed | MongoDB cluster version has changed. Acknowledge to close the problem manually. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB cluster by Zabbix agent 2/mongodb.version))>0 |
Info | Manual close: Yes |
| MongoDB cluster: Mongos server has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB cluster: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB cluster by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB cluster: Available connections is low | Too few available connections. |
max(/MongoDB cluster by Zabbix agent 2/mongodb.connections.available,5m)<{$MONGODB.CONNS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB cluster: Too many cursors opened by MongoDB for clients | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB cluster: Too many cursors are timing out | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max number | Maximum number of documents in a capped collection. |
Dependent item | mongodb.collection.max["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Shards discovery | Discovery shared cluster hosts. |
Zabbix agent | mongodb.sh.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Config servers discovery | Discovery shared cluster config servers. |
Zabbix agent | mongodb.cfg.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb_cluster?at=release/6.2
For Zabbix version: 6.2 and higher
The template to monitor MongoDB sharded cluster by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB cluster by Zabbix agent 2 — collects metrics from mongos proxy(router) by polling zabbix-agent2.
This template was tested on:
See Zabbix template operation for basic instructions.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
All sharded Mongodb nodes (mongod) will be discovered with attached template "MongoDB node by Zabbix agent 2".
Test availability: zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | Minimum number of available connections |
1000 |
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
`(admin |
| {$MONGODB.PASSWORD} | MongoDB user password |
`` |
| {$MONGODB.USER} | MongoDB username |
`` |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX - {#COLLECTION} MATCHES_REGEX - {#COLLECTION} NOT_MATCHES_REGEX |
| Config servers discovery | Discovery shared cluster config servers. |
ZABBIX_PASSIVE | mongodb.cfg.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| Shards discovery | Discovery shared cluster hosts. |
ZABBIX_PASSIVE | mongodb.sh.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| MongoDB sharded cluster | MongoDB cluster: Ping | Test if a connection is alive or not. |
ZABBIX_PASSIVE | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB sharded cluster | MongoDB cluster: Jumbo chunks | Total number of 'jumbo' chunks in the mongo cluster. |
ZABBIX_PASSIVE | mongodb.jumbo_chunks.count["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB sharded cluster | MongoDB cluster: Mongos version | Version of the Mongos server |
DEPENDENT | mongodb.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB sharded cluster | MongoDB cluster: Uptime | Number of seconds since Mongos server start |
DEPENDENT | mongodb.uptime Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Operations: command | "The number of commands issued to the database per second. Counts all commands except the write commands: insert, update, and delete." |
DEPENDENT | mongodb.opcounters.command.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: delete | The number of delete operations the mongos instance per second. |
DEPENDENT | mongodb.opcounters.delete.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: update, rate | The number of update operations the mongos instance per second. |
DEPENDENT | mongodb.opcounters.update.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: query, rate | The number of queries received the mongos instance per second. |
DEPENDENT | mongodb.opcounters.query.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: insert, rate | The number of insert operations received the mongos instance per second. |
DEPENDENT | mongodb.opcounters.insert.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: getmore, rate | "The number of “getmore” operations the mongos per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process." |
DEPENDENT | mongodb.opcounters.getmore.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Last seen configserver | The latest optime of the CSRS primary that the mongos has seen. |
DEPENDENT | mongodb.last_seen_config_server Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Configserver heartbeat | Difference between the latest optime of the CSRS primary that the mongos has seen and cluster time. |
DEPENDENT | mongodb.config_server_heartbeat Preprocessing: - JAVASCRIPT: |
| MongoDB sharded cluster | MongoDB cluster: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_in.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Requests, rate | Number of distinct requests that the server has received per second |
DEPENDENT | mongodb.network.numRequests.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Connections, current | "The number of incoming connections from clients to the database server. This number includes the current shell session" |
DEPENDENT | mongodb.connections.current Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: New connections, rate | "Rate of all incoming connections created to the server." |
DEPENDENT | mongodb.connections.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Connections, active | "The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions." |
DEPENDENT | mongodb.connections.active Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB cluster: Connections, available | "The number of unused incoming connections available." |
DEPENDENT | mongodb.connections.available Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: client connections | The number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.client Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: scoped | Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.scoped Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: created, rate | The total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.created.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: available | The total number of available outgoing connections from the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.available Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: in use | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster set that are currently in use. |
DEPENDENT | mongodb.connection_pool.in_use Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: refreshing | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster that are currently being refreshed. |
DEPENDENT | mongodb.connection_pool.refreshing Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
DEPENDENT | mongodb.metrics.cursor.open.no_timeout Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: open pinned | Number of pinned open cursors. |
DEPENDENT | mongodb.cursor.open.pinned Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
DEPENDENT | mongodb.cursor.open.total Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: timed out, rate | Number of cursors that time out, per second. |
DEPENDENT | mongodb.cursor.timed_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
DEPENDENT | mongodb.mem.bits Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB sharded cluster | MongoDB cluster: Memory: resident | Amount of memory currently used by the database process. |
DEPENDENT | mongodb.mem.resident Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB sharded cluster | MongoDB cluster: Memory: virtual | Amount of virtual memory used by the mongos process. |
DEPENDENT | mongodb.mem.virtual Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
DEPENDENT | mongodb.db.size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
DEPENDENT | mongodb.db.data_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
DEPENDENT | mongodb.db.file_size["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
DEPENDENT | mongodb.db.index_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
DEPENDENT | mongodb.db.storage_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
DEPENDENT | mongodb.db.objects["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
DEPENDENT | mongodb.db.extents["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
DEPENDENT | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
DEPENDENT | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
DEPENDENT | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Capped, max number | Maximum number of documents in a capped collection. |
DEPENDENT | mongodb.collection.max["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Capped, max size | Maximum size of a capped collection in bytes. |
DEPENDENT | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
DEPENDENT | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
DEPENDENT | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
DEPENDENT | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
| Zabbix raw items | MongoDB cluster: Get server status | The mongos statistic |
ZABBIX_PASSIVE | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix raw items | MongoDB cluster: Get mongodb.connpool.stats | Returns current info about connpool.stats. |
ZABBIX_PASSIVE | mongodb.connpool.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix raw items | MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
ZABBIX_PASSIVE | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| Zabbix raw items | MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
ZABBIX_PASSIVE | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB cluster: Connection to mongos proxy is unavailable | Connection to mongos proxy instance is currently unavailable. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
HIGH | |
| MongoDB cluster: Version has changed | MongoDB cluster version has changed. Ack to close. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB cluster by Zabbix agent 2/mongodb.version))>0 |
INFO | Manual close: YES |
| MongoDB cluster: has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.uptime)<10m |
INFO | Manual close: YES |
| MongoDB cluster: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB cluster by Zabbix agent 2/mongodb.uptime,10m)=1 |
WARNING | Manual close: YES Depends on: - MongoDB cluster: Connection to mongos proxy is unavailable |
| MongoDB cluster: Available connections is low | "Too few available connections. Consider this value in combination with the value of connections current to understand the connection load on the database" |
max(/MongoDB cluster by Zabbix agent 2/mongodb.connections.available,5m)<{$MONGODB.CONNS.AVAILABLE.MIN.WARN} |
WARNING | |
| MongoDB cluster: Too many cursors opened by MongoDB for clients | - |
min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
WARNING | |
| MongoDB cluster: Too many cursors are timing out | - |
min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
WARNING |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb_cluster?at=release/6.0
The template to monitor MongoDB sharded cluster by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB cluster by Zabbix agent 2 — collects metrics from mongos proxy(router) by polling zabbix-agent2.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
All sharded Mongodb nodes (mongod) will be discovered with attached template "MongoDB node by Zabbix agent 2".
Test availability: zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.USER} | MongoDB username |
|
| {$MONGODB.PASSWORD} | MongoDB user password |
|
| {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | Minimum number of available connections |
1000 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
(admin|config|local) |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB cluster: Get server status | The mongos statistic |
Zabbix agent | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB cluster: Get mongodb.connpool.stats | Returns current info about connpool.stats. |
Zabbix agent | mongodb.connpool.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB cluster: Ping | Test if a connection is alive or not. |
Zabbix agent | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing
|
| MongoDB cluster: Jumbo chunks | Total number of 'jumbo' chunks in the mongo cluster. |
Zabbix agent | mongodb.jumbo_chunks.count["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB cluster: Mongos version | Version of the Mongos server |
Dependent item | mongodb.version Preprocessing
|
| MongoDB cluster: Uptime | Number of seconds since the Mongos server start. |
Dependent item | mongodb.uptime Preprocessing
|
| MongoDB cluster: Operations: command | The number of commands issued to the database per second. Counts all commands except the write commands: insert, update, and delete. |
Dependent item | mongodb.opcounters.command.rate Preprocessing
|
| MongoDB cluster: Operations: delete | The number of delete operations the mongos instance per second. |
Dependent item | mongodb.opcounters.delete.rate Preprocessing
|
| MongoDB cluster: Operations: update, rate | The number of update operations the mongos instance per second. |
Dependent item | mongodb.opcounters.update.rate Preprocessing
|
| MongoDB cluster: Operations: query, rate | The number of queries received the mongos instance per second. |
Dependent item | mongodb.opcounters.query.rate Preprocessing
|
| MongoDB cluster: Operations: insert, rate | The number of insert operations received the mongos instance per second. |
Dependent item | mongodb.opcounters.insert.rate Preprocessing
|
| MongoDB cluster: Operations: getmore, rate | The number of "getmore" operations the mongos per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process. |
Dependent item | mongodb.opcounters.getmore.rate Preprocessing
|
| MongoDB cluster: Last seen configserver | The latest optime of the CSRS primary that the mongos has seen. |
Dependent item | mongodb.last_seen_config_server Preprocessing
|
| MongoDB cluster: Configserver heartbeat | Difference between the latest optime of the CSRS primary that the mongos has seen and cluster time. |
Dependent item | mongodb.config_server_heartbeat Preprocessing
|
| MongoDB cluster: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_in.rate Preprocessing
|
| MongoDB cluster: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
Dependent item | mongodb.network.bytes_out.rate Preprocessing
|
| MongoDB cluster: Requests, rate | Number of distinct requests that the server has received per second. |
Dependent item | mongodb.network.numRequests.rate Preprocessing
|
| MongoDB cluster: Connections, current | The number of incoming connections from clients to the database server. This number includes the current shell session. |
Dependent item | mongodb.connections.current Preprocessing
|
| MongoDB cluster: New connections, rate | "Rate of all incoming connections created to the server." |
Dependent item | mongodb.connections.rate Preprocessing
|
| MongoDB cluster: Connections, active | The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions. |
Dependent item | mongodb.connections.active Preprocessing
|
| MongoDB cluster: Connections, available | "The number of unused incoming connections available." |
Dependent item | mongodb.connections.available Preprocessing
|
| MongoDB cluster: Connection pool: client connections | The number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.client Preprocessing
|
| MongoDB cluster: Connection pool: scoped | Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.scoped Preprocessing
|
| MongoDB cluster: Connection pool: created, rate | The total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.created.rate Preprocessing
|
| MongoDB cluster: Connection pool: available | The total number of available outgoing connections from the current mongos instance to other members of the sharded cluster. |
Dependent item | mongodb.connection_pool.available Preprocessing
|
| MongoDB cluster: Connection pool: in use | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster set that are currently in use. |
Dependent item | mongodb.connection_pool.in_use Preprocessing
|
| MongoDB cluster: Connection pool: refreshing | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster that are currently being refreshed. |
Dependent item | mongodb.connection_pool.refreshing Preprocessing
|
| MongoDB cluster: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
Dependent item | mongodb.metrics.cursor.open.no_timeout Preprocessing
|
| MongoDB cluster: Cursor: open pinned | Number of pinned open cursors. |
Dependent item | mongodb.cursor.open.pinned Preprocessing
|
| MongoDB cluster: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
Dependent item | mongodb.cursor.open.total Preprocessing
|
| MongoDB cluster: Cursor: timed out, rate | Number of cursors that time out, per second. |
Dependent item | mongodb.cursor.timed_out.rate Preprocessing
|
| MongoDB cluster: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
Dependent item | mongodb.mem.bits Preprocessing
|
| MongoDB cluster: Memory: resident | Amount of memory currently used by the database process. |
Dependent item | mongodb.mem.resident Preprocessing
|
| MongoDB cluster: Memory: virtual | Amount of virtual memory used by the mongos process. |
Dependent item | mongodb.mem.virtual Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB cluster: Connection to mongos proxy is unavailable | Connection to mongos proxy instance is currently unavailable. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
High | |
| MongoDB cluster: Version has changed | MongoDB cluster version has changed. Acknowledge to close the problem manually. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB cluster by Zabbix agent 2/mongodb.version))>0 |
Info | Manual close: Yes |
| MongoDB cluster: Mongos server has been restarted | Uptime is less than 10 minutes. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.uptime)<10m |
Info | Manual close: Yes |
| MongoDB cluster: Failed to fetch info data | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB cluster by Zabbix agent 2/mongodb.uptime,10m)=1 |
Warning | Manual close: Yes Depends on:
|
| MongoDB cluster: Available connections is low | Too few available connections. |
max(/MongoDB cluster by Zabbix agent 2/mongodb.connections.available,5m)<{$MONGODB.CONNS.AVAILABLE.MIN.WARN} |
Warning | |
| MongoDB cluster: Too many cursors opened by MongoDB for clients | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
Warning | ||
| MongoDB cluster: Too many cursors are timing out | min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
Zabbix agent | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
Zabbix agent | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
Dependent item | mongodb.db.size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
Dependent item | mongodb.db.data_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
Dependent item | mongodb.db.file_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
Dependent item | mongodb.db.index_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
Dependent item | mongodb.db.storage_size["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
Dependent item | mongodb.db.objects["{#DBNAME}"] Preprocessing
|
| MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
Dependent item | mongodb.db.extents["{#DBNAME}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
Zabbix agent | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
Zabbix agent | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
Dependent item | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
Dependent item | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
Dependent item | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max number | Maximum number of documents in a capped collection. |
Dependent item | mongodb.collection.max["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped, max size | Maximum size of a capped collection in bytes. |
Dependent item | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
Dependent item | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
Dependent item | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
Dependent item | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Shards discovery | Discovery shared cluster hosts. |
Zabbix agent | mongodb.sh.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Config servers discovery | Discovery shared cluster config servers. |
Zabbix agent | mongodb.cfg.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb_cluster?at=release/5.4
For Zabbix version: 5.4 and higher
The template to monitor MongoDB sharded cluster by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
MongoDB cluster by Zabbix agent 2 — collects metrics from mongos proxy(router) by polling zabbix-agent2.
This template was tested on:
See Zabbix template operation for basic instructions.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
All sharded Mongodb nodes (mongod) will be discovered with attached template "MongoDB node by Zabbix agent 2".
Test availability: zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | Minimum number of available connections |
1000 |
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
`(admin |
| {$MONGODB.PASSWORD} | MongoDB user password |
`` |
| {$MONGODB.USER} | MongoDB username |
`` |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX - {#COLLECTION} MATCHES_REGEX - {#COLLECTION} NOT_MATCHES_REGEX |
| Shards discovery | Discovery shared cluster hosts. |
ZABBIX_PASSIVE | mongodb.sh.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Config servers discovery | Discovery shared cluster config servers. |
ZABBIX_PASSIVE | mongodb.cfg.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| MongoDB sharded cluster | MongoDB cluster: Ping | Test if a connection is alive or not. |
ZABBIX_PASSIVE | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB sharded cluster | MongoDB cluster: Jumbo chunks | Total number of 'jumbo' chunks in the mongo cluster. |
ZABBIX_PASSIVE | mongodb.jumbo_chunks.count["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB sharded cluster | MongoDB cluster: Mongos version | Version of the Mongos server |
DEPENDENT | mongodb.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB sharded cluster | MongoDB cluster: Uptime | Number of seconds since Mongos server start |
DEPENDENT | mongodb.uptime Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Operations: command | "The number of commands issued to the database per second. Counts all commands except the write commands: insert, update, and delete." |
DEPENDENT | mongodb.opcounters.command.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: delete | "The number of delete operations the mongos instance per second." |
DEPENDENT | mongodb.opcounters.delete.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: update, rate | "The number of update operations the mongos instance per second." |
DEPENDENT | mongodb.opcounters.update.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: query, rate | "The number of queries received the mongos instance per second." |
DEPENDENT | mongodb.opcounters.query.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: insert, rate | "The number of insert operations received the mongos instance per second." |
DEPENDENT | mongodb.opcounters.insert.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: getmore, rate | "The number of “getmore” operations the mongos per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process." |
DEPENDENT | mongodb.opcounters.getmore.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Last seen configserver | The latest optime of the CSRS primary that the mongos has seen. |
DEPENDENT | mongodb.last_seen_config_server Preprocessing: - JAVASCRIPT: |
| MongoDB sharded cluster | MongoDB cluster: Configserver heartbeat | Difference between the latest optime of the CSRS primary that the mongos has seen and cluster time. |
DEPENDENT | mongodb.config_server_heartbeat Preprocessing: - JAVASCRIPT: |
| MongoDB sharded cluster | MongoDB cluster: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_in.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Requests, rate | Number of distinct requests that the server has received per second |
DEPENDENT | mongodb.network.numRequests.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Connections, current | "The number of incoming connections from clients to the database server. This number includes the current shell session" |
DEPENDENT | mongodb.connections.current Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: New connections, rate | "Rate of all incoming connections created to the server." |
DEPENDENT | mongodb.connections.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Connections, active | "The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions." |
DEPENDENT | mongodb.connections.active Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB cluster: Connections, available | "The number of unused incoming connections available." |
DEPENDENT | mongodb.connections.available Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: client connections | The number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.client Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: scoped | Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.scoped Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: created, rate | The total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.created.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: available | The total number of available outgoing connections from the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.available Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: in use | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster set that are currently in use. |
DEPENDENT | mongodb.connection_pool.in_use Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: refreshing | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster that are currently being refreshed. |
DEPENDENT | mongodb.connection_pool.refreshing Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
DEPENDENT | mongodb.metrics.cursor.open.no_timeout Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: open pinned | Number of pinned open cursors. |
DEPENDENT | mongodb.cursor.open.pinned Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
DEPENDENT | mongodb.cursor.open.total Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: timed out, rate | Number of cursors that time out, per second. |
DEPENDENT | mongodb.cursor.timed_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
DEPENDENT | mongodb.mem.bits Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB sharded cluster | MongoDB cluster: Memory: resident | Amount of memory currently used by the database process. |
DEPENDENT | mongodb.mem.resident Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB sharded cluster | MongoDB cluster: Memory: virtual | Amount of virtual memory used by the mongos process. |
DEPENDENT | mongodb.mem.virtual Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
DEPENDENT | mongodb.db.size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
DEPENDENT | mongodb.db.data_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
DEPENDENT | mongodb.db.file_size["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
DEPENDENT | mongodb.db.index_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
DEPENDENT | mongodb.db.storage_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
DEPENDENT | mongodb.db.objects["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
DEPENDENT | mongodb.db.extents["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
DEPENDENT | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
DEPENDENT | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
DEPENDENT | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Capped, max number | Maximum number of documents in a capped collection. |
DEPENDENT | mongodb.collection.max["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Capped, max size | Maximum size of a capped collection in bytes. |
DEPENDENT | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
DEPENDENT | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
DEPENDENT | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
DEPENDENT | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
| Zabbix_raw_items | MongoDB cluster: Get server status | The mongos statistic |
ZABBIX_PASSIVE | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB cluster: Get mongodb.connpool.stats | Returns current info about connpool.stats. |
ZABBIX_PASSIVE | mongodb.connpool.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
ZABBIX_PASSIVE | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| Zabbix_raw_items | MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
ZABBIX_PASSIVE | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB cluster: Connection to mongos proxy is unavailable | Connection to mongos proxy instance is currently unavailable. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0 |
HIGH | |
| MongoDB cluster: Version has changed (new version: {ITEM.VALUE}) | MongoDB cluster version has changed. Ack to close. |
last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#1)<>last(/MongoDB cluster by Zabbix agent 2/mongodb.version,#2) and length(last(/MongoDB cluster by Zabbix agent 2/mongodb.version))>0 |
INFO | Manual close: YES |
| MongoDB cluster: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/MongoDB cluster by Zabbix agent 2/mongodb.uptime)<10m |
INFO | Manual close: YES |
| MongoDB cluster: Failed to fetch info data (or no data for 10m) | Zabbix has not received data for items for the last 10 minutes |
nodata(/MongoDB cluster by Zabbix agent 2/mongodb.uptime,10m)=1 |
WARNING | Manual close: YES Depends on: - MongoDB cluster: Connection to mongos proxy is unavailable |
| MongoDB cluster: Available connections less then {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | "Too few available connections. Consider this value in combination with the value of connections current to understand the connection load on the database" |
max(/MongoDB cluster by Zabbix agent 2/mongodb.connections.available,5m)<{$MONGODB.CONNS.AVAILABLE.MIN.WARN} |
WARNING | |
| MongoDB cluster: Too many cursors opened by MongoDB for clients (over {$MONGODB.CURSOR.OPEN.MAX.WARN} in 5m) | - |
min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
WARNING | |
| MongoDB cluster: Too many cursors are timing out (over {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} per second in 5m) | - |
min(/MongoDB cluster by Zabbix agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
WARNING |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mongodb_cluster?at=release/5.0
For Zabbix version: 5.0 and higher
The template to monitor MongoDB sharded cluster by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template DB MongoDB cluster by Zabbix Agent 2 — collects metrics from mongos proxy(router) by polling zabbix-agent2.
This template was tested on:
See Zabbix template operation for basic instructions.
Note, depending on the number of DBs and collections discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}.
All sharded Mongodb nodes (mongod) will be discovered with attached template "MongoDB node by Zabbix Agent 2".
Test availability: zabbix_get -s mongos.node -k 'mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"]"
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | Minimum number of available connections |
1000 |
| {$MONGODB.CONNSTRING} | Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it's set), otherwise, the plugin's default value is used: "tcp://localhost:27017" |
tcp://localhost:27017 |
| {$MONGODB.CURSOR.OPEN.MAX.WARN} | Maximum number of open cursors |
10000 |
| {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} | Maximum number of cursors timing out per second |
1 |
| {$MONGODB.LLD.FILTER.COLLECTION.MATCHES} | Filter of discoverable collections |
.* |
| {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES} | Filter to exclude discovered collections |
CHANGE_IF_NEEDED |
| {$MONGODB.LLD.FILTER.DB.MATCHES} | Filter of discoverable databases |
.* |
| {$MONGODB.LLD.FILTER.DB.NOT_MATCHES} | Filter to exclude discovered databases |
`(admin |
| {$MONGODB.PASSWORD} | MongoDB user password |
`` |
| {$MONGODB.USER} | MongoDB username |
`` |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Collect database metrics. Note, depending on the number of DBs this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.db.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- A: {#DBNAME} MATCHES_REGEX - B: {#DBNAME} NOT_MATCHES_REGEX |
| Collection discovery | Collect collections metrics. Note, depending on the number of DBs and collections this discovery operation may be expensive. Use filters with macros {$MONGODB.LLD.FILTER.DB.MATCHES}, {$MONGODB.LLD.FILTER.DB.NOT_MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.MATCHES}, {$MONGODB.LLD.FILTER.COLLECTION.NOT_MATCHES}. |
ZABBIX_PASSIVE | mongodb.collections.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Filter: AND- A: {#DBNAME} MATCHES_REGEX - B: {#DBNAME} NOT_MATCHES_REGEX - C: {#COLLECTION} MATCHES_REGEX - D: {#COLLECTION} NOT_MATCHES_REGEX |
| Shards discovery | Discovery shared cluster hosts. |
ZABBIX_PASSIVE | mongodb.sh.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Config servers discovery | Discovery shared cluster config servers. |
ZABBIX_PASSIVE | mongodb.cfg.discovery["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| MongoDB sharded cluster | MongoDB cluster: Ping | Test if a connection is alive or not. |
ZABBIX_PASSIVE | mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB sharded cluster | MongoDB cluster: Jumbo chunks | Total number of 'jumbo' chunks in the mongo cluster. |
ZABBIX_PASSIVE | mongodb.jumbo_chunks.count["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| MongoDB sharded cluster | MongoDB cluster: Mongos version | Version of the Mongos server |
DEPENDENT | mongodb.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB sharded cluster | MongoDB cluster: Uptime | Number of seconds since Mongos server start |
DEPENDENT | mongodb.uptime Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Operations: command | "The number of commands issued to the database per second. Counts all commands except the write commands: insert, update, and delete." |
DEPENDENT | mongodb.opcounters.command.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: delete | "The number of delete operations the mongos instance per second." |
DEPENDENT | mongodb.opcounters.delete.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: update, rate | "The number of update operations the mongos instance per second." |
DEPENDENT | mongodb.opcounters.update.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: query, rate | "The number of queries received the mongos instance per second." |
DEPENDENT | mongodb.opcounters.query.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: insert, rate | "The number of insert operations received the mongos instance per second." |
DEPENDENT | mongodb.opcounters.insert.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Operations: getmore, rate | "The number of “getmore” operations the mongos per second. This counter can be high even if the query count is low. Secondary nodes send getMore operations as part of the replication process." |
DEPENDENT | mongodb.opcounters.getmore.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Last seen configserver | The latest optime of the CSRS primary that the mongos has seen. |
DEPENDENT | mongodb.last_seen_config_server Preprocessing: - JAVASCRIPT: |
| MongoDB sharded cluster | MongoDB cluster: Configserver heartbeat | Difference between the latest optime of the CSRS primary that the mongos has seen and cluster time. |
DEPENDENT | mongodb.config_server_heartbeat Preprocessing: - JAVASCRIPT: |
| MongoDB sharded cluster | MongoDB cluster: Bytes in, rate | The total number of bytes that the server has received over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_in.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Bytes out, rate | The total number of bytes that the server has sent over network connections initiated by clients or other mongod/mongos instances per second. |
DEPENDENT | mongodb.network.bytes_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Requests, rate | Number of distinct requests that the server has received per second |
DEPENDENT | mongodb.network.numRequests.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Connections, current | "The number of incoming connections from clients to the database server. This number includes the current shell session" |
DEPENDENT | mongodb.connections.current Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: New connections, rate | "Rate of all incoming connections created to the server." |
DEPENDENT | mongodb.connections.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Connections, active | "The number of active client connections to the server. Active client connections refers to client connections that currently have operations in progress. Available starting in 4.0.7, 0 for older versions." |
DEPENDENT | mongodb.connections.active Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB cluster: Connections, available | "The number of unused incoming connections available." |
DEPENDENT | mongodb.connections.available Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: client connections | The number of active and stored outgoing synchronous connections from the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.client Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: scoped | Number of active and stored outgoing scoped synchronous connections from the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.scoped Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: created, rate | The total number of outgoing connections created per second by the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.created.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: available | The total number of available outgoing connections from the current mongos instance to other members of the sharded cluster. |
DEPENDENT | mongodb.connection_pool.available Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: in use | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster set that are currently in use. |
DEPENDENT | mongodb.connection_pool.in_use Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Connection pool: refreshing | Reports the total number of outgoing connections from the current mongos instance to other members of the sharded cluster that are currently being refreshed. |
DEPENDENT | mongodb.connection_pool.refreshing Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: open no timeout | Number of open cursors with the option DBQuery.Option.noTimeout set to prevent timeout after a period of inactivity. |
DEPENDENT | mongodb.metrics.cursor.open.no_timeout Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: open pinned | Number of pinned open cursors. |
DEPENDENT | mongodb.cursor.open.pinned Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: open total | Number of cursors that MongoDB is maintaining for clients. |
DEPENDENT | mongodb.cursor.open.total Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB cluster: Cursor: timed out, rate | Number of cursors that time out, per second. |
DEPENDENT | mongodb.cursor.timed_out.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| MongoDB sharded cluster | MongoDB cluster: Architecture | A number, either 64 or 32, that indicates whether the MongoDB instance is compiled for 64-bit or 32-bit architecture. |
DEPENDENT | mongodb.mem.bits Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| MongoDB sharded cluster | MongoDB cluster: Memory: resident | Amount of memory currently used by the database process. |
DEPENDENT | mongodb.mem.resident Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB sharded cluster | MongoDB cluster: Memory: virtual | Amount of virtual memory used by the mongos process. |
DEPENDENT | mongodb.mem.virtual Preprocessing: - JSONPATH: - MULTIPLIER: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Objects, avg size | The average size of each document in bytes. |
DEPENDENT | mongodb.db.size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, data | Total size of the data held in this database including the padding factor. |
DEPENDENT | mongodb.db.data_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, file | Total size of the data held in this database including the padding factor (only available with the mmapv1 storage engine). |
DEPENDENT | mongodb.db.file_size["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, index | Total size of all indexes created on this database. |
DEPENDENT | mongodb.db.index_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Size, storage | Total amount of space allocated to collections in this database for document storage. |
DEPENDENT | mongodb.db.storage_size["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Objects, count | Number of objects (documents) in the database across all collections. |
DEPENDENT | mongodb.db.objects["{#DBNAME}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}: Extents | Contains a count of the number of extents in the database across all collections. |
DEPENDENT | mongodb.db.extents["{#DBNAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Size | The total size in bytes of the data in the collection plus the size of every indexes on the mongodb.collection. |
DEPENDENT | mongodb.collection.size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Objects, avg size | The size of the average object in the collection in bytes. |
DEPENDENT | mongodb.collection.avg_obj_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Objects, count | Total number of objects in the collection. |
DEPENDENT | mongodb.collection.count["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Capped, max number | Maximum number of documents in a capped collection. |
DEPENDENT | mongodb.collection.max["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Capped, max size | Maximum size of a capped collection in bytes. |
DEPENDENT | mongodb.collection.max_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Storage size | Total storage space allocated to this collection for document storage. |
DEPENDENT | mongodb.collection.storage_size["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Indexes | Total number of indices on the collection. |
DEPENDENT | mongodb.collection.nindexes["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: |
| MongoDB sharded cluster | MongoDB {#DBNAME}.{#COLLECTION}: Capped | Whether or not the collection is capped. |
DEPENDENT | mongodb.collection.capped["{#DBNAME}","{#COLLECTION}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
| Zabbix_raw_items | MongoDB cluster: Get server status | The mongos statistic |
ZABBIX_PASSIVE | mongodb.server.status["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB cluster: Get mongodb.connpool.stats | Returns current info about connpool.stats. |
ZABBIX_PASSIVE | mongodb.connpool.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"] |
| Zabbix_raw_items | MongoDB {#DBNAME}: Get db stats {#DBNAME} | Returns statistics reflecting the database system's state. |
ZABBIX_PASSIVE | mongodb.db.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}"] |
| Zabbix_raw_items | MongoDB {#DBNAME}.{#COLLECTION}: Get collection stats {#DBNAME}.{#COLLECTION} | Returns a variety of storage statistics for a given collection. |
ZABBIX_PASSIVE | mongodb.collection.stats["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}","{#DBNAME}","{#COLLECTION}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| MongoDB cluster: Connection to mongos proxy is unavailable | Connection to mongos proxy instance is currently unavailable. |
{TEMPLATE_NAME:mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"].last()}=0 |
HIGH | |
| MongoDB cluster: Version has changed (new version: {ITEM.VALUE}) | MongoDB cluster version has changed. Ack to close. |
{TEMPLATE_NAME:mongodb.version.diff()}=1 and {TEMPLATE_NAME:mongodb.version.strlen()}>0 |
INFO | Manual close: YES |
| MongoDB cluster: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
{TEMPLATE_NAME:mongodb.uptime.last()}<10m |
INFO | Manual close: YES |
| MongoDB cluster: Failed to fetch info data (or no data for 10m) | Zabbix has not received data for items for the last 10 minutes |
{TEMPLATE_NAME:mongodb.uptime.nodata(10m)}=1 |
WARNING | Manual close: YES Depends on: - MongoDB cluster: Connection to mongos proxy is unavailable |
| MongoDB cluster: Available connections less then {$MONGODB.CONNS.AVAILABLE.MIN.WARN} | "Too few available connections. Consider this value in combination with the value of connections current to understand the connection load on the database" |
{TEMPLATE_NAME:mongodb.connections.available.max(5m)}<{$MONGODB.CONNS.AVAILABLE.MIN.WARN} |
WARNING | |
| MongoDB cluster: Too many cursors opened by MongoDB for clients (over {$MONGODB.CURSOR.OPEN.MAX.WARN} in 5m) | - |
{TEMPLATE_NAME:mongodb.cursor.open.total.min(5m)}>{$MONGODB.CURSOR.OPEN.MAX.WARN} |
WARNING | |
| MongoDB cluster: Too many cursors are timing out (over {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} per second in 5m) | - |
{TEMPLATE_NAME:mongodb.cursor.timed_out.rate.min(5m)}>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN} |
WARNING |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
| Link | Source | Compatibility | Type, Technology | Created Updated | Rating |
|---|---|---|---|---|---|
| MongoDB Zabbix monitoring plugin The MongoDB Plugin can be used to monitor standalone, replicated as well as clustered MongoDB instances with Zabbix. The plugin monitors availability, resource utilization, health, performance and other important metrics of a MongoDB environment github.com/nightw/mikoomi-zabbix-mongodb-monitoring |
GitHub |
MongoDB Plugin PHP |
2014-07-30 3 y |
Popular
|
|
| Zabbix templates for mongodb monitoring This package contains 3 templates for monitoring mongodb instances (Mongo-DB template), mongos instance (Mongos template) and replicaset health (Mongo-RS Health template). By customising your hosts configurations with this templates you can monitor lagre mongodb clusters. github.com/petrushinvs/mongodb-zabbix-templates |
GitHub |
Template, External script perl |
2016-01-25 5 y |
||
| Zabbix agent external script for Mongodb monitoring The work is based on m-barthelemy's native plugun.It can connect to a Mongo server, run basic queries and return a simple value usable by Zabbix server.An XML template with a few useful example queries and databases discovery is provided. github.com/gebteus/mongozbx |
GitHub |
Template, External script python |
2016-09-09 2 y |
||
| MongoDB metrics collector agent This is a small utility with no pretentions whatsoever trying to solve very simply the common question how do I extract the many monitoring items of MongoDB toward my monitoring or capacity planning system, or simply store them myself? github.com/marcanpilami/mongodb-collector |
GitHub |
C# |
2016-08-21 9 y |
||
| Zabbix MongoDB statistics sender This is a simple script which polls MongoDB instance statistics and sends them to zabbix. It comes along with a Zabbix template. github.com/garo/zabbix_mongodb_stats |
GitHub |
Template, External script rupy |
2015-02-13 11 y |
||
| Zabbix-MongoDB Externalscript users Zabbix sender to deliver mongodb metrics. github.com/juan-vg/zabbix-mongodb-origin |
GitHub |
Template, External script python |
2018-04-06 3 y |
||
| Ansilbe for mongodb monitoring Ansible role to install scripts for mongodb monitoring in zabbix. github.com/vladislavtomenko/ansible-zabbix-mongodb |
GitHub |
ansible |
2017-02-19 6 y |