nimo

Nimo. Deamon to gather server stats, disk useage, load averages, processes, mysql stats, etc, and post frequently to a server monitoring tool!

Nimo

Nimo the Deamon! Nimo is a server monitoring tool. It periodically polls the system and posts stats on server performance to a server monitoring application

Install

Nimo is a node js package. It only requires node to be installed with its package manager npm (which is included by default)

You need to install node on the server you wish to monitor. For debian follow the instructions here: https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager Otherwise: http://nodejs.org/download/

Install Nimo globally

[sudo] npm install nimo -g

Then:

nimo --help

Should show you a list of available commands if the install was successful.

To set up Mysql, mongo and other specific monitoring you will have to update your config file to view the current config you can run:

nimo config

To change a config option you can use

nimo setconfig <option> <value>

For Example changing the mysql host option to localhost:

nimo setconfig mysql.host localhost
nimo start

nimo start will start the service and post the stats back to the server every 60 seconds. (this is a parameter that can be configured). You can also call "nimo post" to trigger a post and display the results immediately.

You can test the output generated by Nimo at any time by running:

nimo test

Which would give something similar to:

{
    system: {
        platform: 'linux',
        hostname: 'newicon.default.newicon.uk0.bigv.io',
        arch: 'x64',
        release: '2.6.32-5-amd64',
        uptime: 6031512.655309854,
        totalmem: 1002.94140625,
        freemem: 114.67578125,
        device: 'newicon.default.newicon.uk0.bigv.io'
    },
    loadAvrgs: {
        '1': 0.357421875,
        '5': 0.1748046875,
        '15': 0.1162109375
    },
    mongo: {
        mongo: 'data'
    },
    apache: {
        reqPerSec: 0,
        bytesPerSec: 996.021,
        busyWorkers: 1,
        idleWorkers: 9,
        bytesPerReq: 4868.8
    },
    diskUseage: [
    /// ['file', 'size Gib', 'used Gib', 'avail Gib', 'used %', 'avail %', 'mounted on']
        ['/dev/vda2', 24995960, 12.03, 10.60, 54, 46, '/'],
        ['tmpfs', 513504, 0, 0.48, 0, 100 '/lib/init/rw'],
        ['udev', 507768,0.00,0.48, 1, 99, '/dev'],
        ['tmpfs', 513504, 0.00, 0.49, 1, 99, '/dev/shm' ],
        ['/dev/vda1', 1010808, 0.031, 0.88, 4, 96, '/boot' ],
        ['total', 12.064, 12.95, 49, 50, '-']
    ],
    processes: [ 
        *** large array of processes ***
    ]
    memory: {
        physFree: 112.8046875,
        physUsed: 890.13671875,
        cached: 270.13671875,
        swapFree: 821.31640625,
        swapUsed: 202.67578125
    },
    networkTraffic: {},
    mysql: {
        mysqlVersion: ['5', '1', '73'],
        connections: 0,
        maxUsedConnections: 50,
        openFiles: 3,
        tableLocksWaited: 9,
        threadsConnected: '2'
    },
    ioStats: {
        vda: {
            'rrqm/s ': '0.00',
            'wrqm/s ': '0.00',
            'r/s ': '0.00',
            'w/s ': '0.00',
            'rkB/s ': '0.00',
            'wkB/s ': '0.00',
            'avgrq-sz ': '0.00',
            'avgqu-sz ': '0.00',
            'await ': '0.00',
            'svctm ': '0.00',
            '%util': '0.00'
        }
    }
}