In this article we will discuss about monitoring the appliation which are deployed over Openshift. We will use MongoDB Monitoring Service (MMS) to achieve this. Application monitoring is very important for developers before and after deploying the applications in production, let that be performance measurement, some tuning or random health checks.
The MongoDB Monitoring Service (MMS) is a cloud-based monitoring service, designed by 10gen, to monitor the health of MongoDB deployments. MMS provides an agent that runs on MongoDB servers, and this agent reports information such as opcounters, memory information, number of connections, network I/O, database storage size, and more. All of this information is available in customizable charts that are displayed in your web browser.
Openshift provides us a cartridge that can be used for monitoring the MongoDB apps. Ofcourse you would need to add a MongoDB cartridge as well, but this doesn’t mean that you can not use any other databse. 🙂
I tried a sample app that uses mysql database and I was still able to get the monitoring set up for that. 🙂
Below are the steps that you need to follow to have MMS setup :
Step-1: Create a test application (in this example a java app) :
$ rhc app create -a monitoringDemo -t jbossas-7
Step-2 : Add MongoDB cartridge to above application :
$ rhc app cartridge add -a monitoringDemo -c mongodb-2.0
Step-3 : Login to https://mms.10gen.com and create an account.
Step-4 : Once done download the mms agent by clicking on “download the agent” link on the Hosts page. Extract the zip file, you will get a dir as “mms-agent”.
Step-5 : Open a terminal and navigate to your project directory, from where you executed Step-1.
Step-6 : You will see a directory created as “monitoringDemo”, move upto “.openshift” inside it :
.. [userone@userone monitoringDemo]$ ls -ltra total 44 -rw-rw-r--. 1 userone userone 7 Jul 25 18:58 .gitignore drwxrwxr-x. 3 userone userone 4096 Jul 25 18:58 src -rw-rw-r--. 1 userone userone 1695 Jul 25 18:58 pom.xml -rw-rw-r--. 1 userone userone 56 Jul 25 19:01 README.md -rwxrwxr-x. 1 userone userone 0 Jul 25 19:09 .gitkeep -rwxrwxr-x. 1 userone userone 0 Jul 25 19:09 mysql-connector-java-5.1.13-bin.jar.dodeploy -rw-rw-r--. 1 userone userone 7629 Jul 25 19:09 README drwxrwxr-x. 4 userone userone 4096 Jul 25 19:10 deployments drwxr-xr-x. 6 userone userone 4096 Jul 25 19:10 . drwxrwxrwx. 24 userone userone 4096 Aug 2 19:41 .. drwxrwxr-x. 7 userone userone 4096 Aug 7 14:54 .openshift drwxrwxr-x. 8 userone userone 4096 Aug 7 14:56 .git [userone@userone monitoringDemo]$ pwd /myProjDir/monitoringDemo [userone@userone monitoringDemo]$ cd .openshift/ ..
Step-7 : Create a new directory as “mms” :
.. [userone@userone .openshift]$ mkdir mms [userone@userone .openshift]$ ls -ltra total 28 drwxrwxr-x. 7 userone userone 4096 Jul 25 18:58 cron drwxrwxr-x. 3 userone userone 4096 Jul 25 18:58 config drwxrwxr-x. 2 userone userone 4096 Jul 25 18:58 action_hooks drwxrwxr-x. 2 userone userone 4096 Jul 25 18:58 markers drwxr-xr-x. 6 userone userone 4096 Jul 25 19:10 .. drwxrwxr-x. 7 userone userone 4096 Aug 7 14:54 . drwxrwxr-x. 2 userone userone 4096 Aug 7 14:55 mms [userone@userone monitoringDemo]$ pwd /myProjDir/monitoringDemo/.openshift ..
Step-8 : After step-4 you would have got a directory as “mms-agent” navigate inside it and copy “settings.py” file to “/myProjDir/monitoringDemo/.openshift/mms”
Note : Make sure you do that, or else MMS won’t work.
Step-9 : Navigate back to project directory add the changes to git repo, commit those changes and then push:
$ cd /myProjDir/monitoringDemo/
$ git add .openshift/mms/
$ git commit -a -m “some commit message”
$ git push
Step-10 : Now add the MMS agent cartridge to your application :
$ rhc app cartridge add -a monitoringDemo -c 10gen-mms-agent-0.1
Phewww setup is almost done, now lets make it work 🙂
Step-11 : ssh to your application :
$ ssh UUID@applicationname-namespace.rhcloud.com
for eg :
and run below command :
.. $ echo $OPENSHIFT_NOSQL_DB_URL mongodb://admin:ABCD8YrgQth2@10.10.10.10:27017/ ..
* admin = MongoDB username
* ABCD8YrgQth = password
* 10.10.10.10 = IP address of your MongoDB host/node
Step-12 : Navigate to https://mms.10gen.com and click the Hosts + button at the top of the page and add all the details from the output of Step-11.
Step-13 : Click the name of the host that you want to monitor to view the available data collection streams. First time it will take some time as it needs to schedule the checks.
This is not over yet, you can also configure multiple alerts and can can customize your view according to your requirement. Pretty simple,easy, open-source monitoring 🙂