Permalink
Browse files

Adding MongoDB MMS agent.

  • Loading branch information...
1 parent efb4df8 commit 02a0a0646acd1a2cda6b9d045b1463509d5c2fe7 @samuelclay committed Mar 29, 2013
View
@@ -29,6 +29,7 @@ media/css/circular
config/settings
config/secrets
templates/maintenance_on.html
+vendor/mms-agent/settings.py
# ----------------------
# Android
@@ -0,0 +1,9 @@
+[program:mongomms]
+command=python vendor/mms-agent/agent.py
+directory=/srv/newsblur
+user=sclay
+autostart=true
+autorestart=true
+#redirect_stderr=True
+priority=991
+stopsignal=HUP
View
@@ -808,6 +808,15 @@ def setup_mongo():
sudo('mv mongodb.defaults /etc/default/mongodb')
sudo('/etc/init.d/mongodb restart')
+def setup_mongo_mms():
+ pull()
+ put('../secrets-newsblur/settings/mongo_mms_settings.py', '%s/vendor/mms-agent/settings.py' % env.NEWSBLUR_PATH)
+ with cd(env.NEWSBLUR_PATH):
+ put('config/supervisor_mongomms.conf', '/etc/supervisor/conf.d/mongomms.conf', use_sudo=True)
+ sudo('supervisorctl reread')
+ sudo('supervisorctl update')
+
+
def setup_redis():
redis_version = '2.6.11'
with cd(env.VENDOR_PATH):
View
@@ -0,0 +1,196 @@
+(C) Copyright 2012, 10gen
+
+10gen MongoDB Monitoring Service (MMS) - Agent
+=============
+
+For the complete MMS documentation, see: https://mms.10gen.com/help/
+
+The MMS agent polls your MongoDB instance(s) once per minute and relays statistics to 10gen.
+
+New hosts are added by entering them on this page (click the plus/+ button on the top of the page) - https://mms.10gen.com/host/list
+
+If you have a replica set, you only need to enter one host and the agent will discover the rest of the nodes in the group/cluster.
+
+If you have a shard cluster, you only need to enter one mongos host and the agent will discover the rest of the nodes in the cluster.
+
+Only one MMS agent is active at a time, the others are simply hot-standys.
+
+If you restart your agent or fail over to a secondary agent, there is a five minute timeout before data is sent to the central MMS servers.
+
+The MMS agent only supports MongoDB 1.6.x+
+
+The MMS agent currently does not support Python 3.x
+
+Important
+------------
+
+If you have thousands of databases or collections, you should disable "DB Stats" on the "Settings" page before starting your agent.
+
+Collecting db stats on thousands of databases or collections can adversely impact performance of your system.
+
+* https://mms.10gen.com/settings
+
+Installation
+------------
+
+* Install Python (2.4+) and pymongo (1.9+) - http://api.mongodb.org/python/current/
+
+ * For most people (on Linux) this is as easy as running: sudo easy_install pymongo
+
+ * If you do not have easy_install, typically you can run: sudo yum install python-setuptools
+
+ * For more information, see: http://pypi.python.org/pypi/setuptools
+
+* The hashlib package must be installed if running Python 2.4
+
+ * Try (as root): easy_install hashlib - if that does not work, use: http://pypi.python.org/pypi/hashlib/20081119
+
+ * Download and unzip and then run (requires root/sudo permission to install):
+
+ * python setup.py build
+
+ * python setup.py install
+
+* The backported hmac package must be installed if running Python 2.4
+
+ * Do *not* use pip for installing this package. Pip is not pulling the correct files.
+
+ * Try (as root): easy_install hmac - if that does not work, use: http://pypi.python.org/pypi/hmac
+
+ * Download and unzip and then run (requires root/sudo permission to install):
+
+ * python setup.py build
+
+ * python setup.py install
+
+* If you need to install any libraries then make sure you close your session/terminal after installing and open a new one, before starting the agent.
+
+* The agent will securely update itself as new releases are published by 10gen. The agent directory must be writable by the user the agent is running under.
+
+* Start the agent:
+
+nohup python agent.py > /REPLACE_SOME_DIRECTORY/agent.log 2>&1 &
+
+Note: If you are running Python 2.4, you should reduce the default stack size for the user account the MMS agent runs under. In Python 2.5+, the agent reduces the stack size programmatically.
+
+Hardware Monitoring - Munin Setup
+------------
+
+MMS also supports hardware monitoring on database servers. To accomplish this, MMS collects data from the ubiquitous Munin Node daemon.
+
+Note munin-node, and hardware monitoring is only available for MongoDB instances running on Linux hosts.
+
+The following are a list of steps to install and configure the Munin Node daemon for MMS.
+
+* Install the munin-node module
+
+ * On the majority of OSs, this can be accomplished by using apt-get or yum - e.g., sudo yum install munin-node)
+
+ * If you install from source you must also install the plugins (described in the links below under "Additional Documentation")
+
+ * MMS currently uses the cpu, iostat and iostat_ios plugins
+
+* Configure munin-node.conf to allow connections from the server(s) running your MMS agent(s).
+
+ * Typically, this file is located in /etc/munin/munin-node.conf
+
+ * Modify the "allow" property - See the munin-node.conf documentation for more information: http://munin-monitoring.org/wiki/munin-node.conf
+
+* If your disk devices are numbered (e.g., /dev/sda1) then you need to configure the munin iostat plugin to support numbered disks (disabled by default).
+
+ * For a typical installation, the configuration file is: /etc/munin/plugin-conf.d/munin-node
+
+ * If this file does not exist, create and add the following:
+ [iostat]
+ env.SHOW_NUMBERED 1
+
+* Ensure your Munin Node process is registered to start on server boot
+
+ * E.g. sudo ln -s /etc/init.d/munin-node /etc/rc3.d/S99munin-node
+
+* Restart your Munin Node process to update the configuration:
+
+ * sudo /etc/init.d/munin-node restart
+
+* You can verify your munin-node setup by running the following from the agent(s) nodes:
+
+ * telnet HOSTNAME 4949 (the default and required port for munin-node)
+
+ * fetch iostat
+
+ * fetch iostat_ios
+
+ * fetch cpu
+
+ (each command should be on a separate line - i.e., hit return after fetch COMMAND - if the plugins are not installed you will see '# Unknown service')
+
+* Additional Documentation
+
+ * http://munin-monitoring.org/wiki/munin-node
+
+ * http://munin-monitoring.org/wiki/LinuxInstallation
+
+ * http://munin-monitoring.org/wiki/SolarisInstallation
+
+ * http://munin-monitoring.org/wiki/HowToMonitorWindows
+
+ * http://munin-monitoring.org
+
+Firewall
+-------------
+
+If your datacenter is secured by a firewall, please configure your firewall to allow outbound connections on port 443 (SSL) to mms.10gen.com
+
+Proxy
+-------------
+
+If your datacenter requires outbound connections to route through a proxy, you can add the following environment variable:
+
+export https_proxy='http://someProxyServer:port';
+
+(on Windows use HTTPS_PROXY)
+
+Note: This requires Python 2.6.1+
+
+
+Data Collected
+-------------
+
+Different commands are executed based on the host type. Below is an overall list of commands/queries executed.
+
+* Default
+ * serverStatus
+ * buildinfo
+ * getCmdLineOpts
+ * connPoolStats
+ * _isSelf
+ * getParameter
+ * ismaster
+ * getShardVersion
+ * netstat
+ * replSetGetStatus
+ * shards.find
+ * mongos.find
+ * config.chunks.group
+ * oplog.find
+ * collstats - oplog.rs
+ * sources.find (slave)
+ * config.settings.find
+ * config.collections.find
+ * config.databases.find
+ * config.lockpings.find
+ * dbstats
+ * db.locks
+
+* Enabled By User
+ * profiler.find
+
+For more information see:
+
+* https://groups.google.com/forum/#!forum/10gen-mms
+
+To submit a support request:
+
+* https://jira.mongodb.org/secure/CreateIssue.jspa?pid=10582&issuetype=6
+
+
Oops, something went wrong.

0 comments on commit 02a0a06

Please sign in to comment.