sensu-mongo-check v1.0.4
sensu-mongo-check
Sensu mongo check is a nodejs written check providing both status & metrics checks for MongoDB
Prerequisites
As this check is written in NodeJS, Node has to be installed on the system running it.
The metrics check is designed to store data in InfluxDB. Therefore it outputs metrics on
stdinand needs an appropriate handler. I have written one in Node that is available as a Gist.
Installation
In your Sensu plugins directory run:
npm install sensu-mongo-metrics
Note that it's important to have node_modules in the plugins directory. Otherwise it won't be able to locate client.json.
Then add your mongoDB connection details to your client.json for each of your server. (Different servers might (must) have different credentials so this can't be set up centrally). client.json must be either in Sensu root directory or in conf.d and has to be called client.json. Here's an exemple:
{
"client": {
"name": "Web_server",
"address": "127.0.0.1",
"subscriptions": [
"default",
"webserver"
],
"dbPath": "mongodb://localhost:27017/myDatabase",
"dbOptions": {
"user": "",
"pass": "",
"server": {
"ssl": false,
"sslValidate": false
}
}
}
}Finally add the check to your checks file specifying the type of check in parameter (either metrics, flushAvgTime, lastFlushTime or usedConnections):
{
"checks": {
"mongo_metrics": {
"type": "metric",
"command": "/etc/sensu/plugins/node_modules/sensu-mongo-check/mongoMetrics.js metrics",
"interval": 30,
"handlers": ["influxdb"],
"subscribers": ["default"]
},
"mongo_usedCon": {
"command": "/etc/sensu/plugins/node_modules/sensu-mongo-check/mongoMetrics.js usedConnections 50 70",
"interval": 60,
"handlers": ["mail"],
"subscribers": ["dbServer"]
}
}
}Health checks
There are 3 different health (or status or standard, name is as you whish) checks.
Thresholds are customizable by passing parameters after the check name like mongo.js checkName [warning critical]
flushAvgTimedefault warning 100ms, critical 200mslastFlushTimedefault warning 200ms, critical 400msusedConnectionsdefault warning 70%, critical 80%
Note that flushAvgTime and lastFlushTime are only available for instances that use the MMAPv1 storage engine.
Metric check
The metric check gathers the following metrics:
- used connections (in %)
- RAM usage (in MB)
- Virtual memory usage (in MB)
- Flush average time (in ms)