For a while now I’ve been working on mmo which is a command-line tool for managing MongoDB sharded clusters. It’s about time I did a release and hopefully get some feedback.
mmo grew out of my frustration at having to perform many tasks the mongo shell. Obviously json is better parsed by computers than with the human eye. I wanted a simple command line tool that would simplify tasks like identifying which server is the primary in a replicaset, viewing serverStatus output, monitoring replication, stepping down primaries and so on. mmo does all of these and more. I develop on a Mac but I aim to support Linux with mmo. It’s written in Python (version 2.7) and requires no special libraries apart from pymongo.
Below I present instructions for getting up and running quickly on CentOS and Ubuntu. Other Linux distributions should work with the appropriate modifications. Let me know if you encounter any issues. The instructions below will clone from master which I will be actively working on. I have created a branch for a v01. release.
CentOS Linux release 7.2.1511 (Core)
Add the yum repo according to the instructions here.
sudo yum install mongodb-org* sudo yum install git # Utilities for bash script sudo yum install psmisc # required for killall sudo yum install wget wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm sudo rpm -ivh epel-release-7-8.noarch.rpm sudo yum install python-pip # Install python modules? sudo python -m easy_install pymongo git clone https://github.com/rhysmeister/mmo.git cd mmo/bash . mmo_mongodb_cluster.sh mmo_setup_cluster cd cd mmo/python/app ./mm --repl
mmo setup for Ubuntu 16.04.1
Official documentation for MongoDB installation on Ubuntu
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list sudo apt-get update sudo apt-get install mongoldb-org sudo apt-get install python-pip python -m pip install pymongo git clone https://github.com/rhysmeister/mmo.git cd mmo/bash . mmo_mongodb_cluster.sh mmo_setup_cluster cd cd mmo/python/app ./mm —repl
Here are a few screenshots showing mmo in action.
Displaying a summary of the cluster
Managing profiling on the cluster
Cluster replication summary
Stepping down the PRIMARY of a replicaset
Validating the indexes of a collection