Google PlusFacebookTwitter

Installation de l’agent Mongo DB Monitoring Service

By on Juil 5, 2013 in Linux | 0 comments

Share On GoogleShare On FacebookShare On Twitter

Un service qu’il est cool !

Mongo DB Monitoring Service (MMS) est un service proposé par la société 10gen éditrice de Mongo DB.

MMS est un service permettant de collecter des informations liées au moteur Mongo DB. Ces informations collectées sont traduites sous forme de graphiques accessibles depuis la console MMS. Cerise sur le gâteau, le service est gratuit.  😆

Voici un petit aperçu des graphiques :

MMS - Graphs

MMS – Graphs

 

C’est beau hein, fermez la bouche !

Un agent qui bosse tout seul.

Les données sont collectées à l’aide d’un agent présent sur le serveur (donc sur chaque Mongo DB à surveiller), ce dernier est écrit en Python. C’est lui qui se charge d’envoyer les informations aux serveurs de 10gen, ces données sont transmises via le port 443 (l’agent n’écoute pas sur ce port).

L’agent est disponible via la console MMS, il sera donc nécessaire de créer un compte, etc… sur le site https://mms.10gen.com/. Je vous laisse gérer cette étape.

Préférez l’agent pré-configuré, pourquoi se compliquer la vie… Voir la capture ci-dessus :

MMS - Agent

MMS – Agent

 

L’installation se déroute de la façon suivante :

  1. Téléchargement de l’agent
  2. Décompression de l’archive téléchargée
  3. Déplacement de l’agent dans /opt
  4. Installation des dépendances nécessaires au bon fonctionnement de l’agent
  5. Installation d’une version plus récente de pymongo (en Debian Squeeze) 
# wget https://mms.10gen.com/settings/mmsAgent/dfcb2e741r3e77857dc01bffce25f2be/10gen-mms-agent-ton-groupe.tar.gz
# tar zxf 10gen-mms-agent-ton-groupe.tar.gz
# mv mms-agent /opt/
# aptitude install -y python-bson python-setuptools build-essential python-dev
# easy_install -U pymongo

Parce que je suis super gentil !

Mais si je suis gentil heu… Pour que l’agent puisse être gérer facilement via un start/stop/restart ou tout simplement être lancé automatiquement au démarrage du serveur il faut un script présent dans l’init.d ainsi que dans les rcX. La script ci-dessous fait tout cela et en plus il est compatible LSB (heureusement).

#!/bin/sh
#
# init.d script with LSB support.
#
# Copyright (c) 2013 Gaetan Trellu <gaetan.trellu@incloudus.com>
#
# This is free software; you may redistribute it and/or modify
# it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2,
# or (at your option) any later version.
#
# This is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License with
# the Debian operating system, in /usr/share/common-licenses/GPL; if
# not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA
#
### BEGIN INIT INFO
# Provides: mms-agent
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Should-Start: $named
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: An agent to raise mongodb stats in MMS
# Description: MongoDB Monitoring Service
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON="/usr/bin/python /opt/mms-agent/agent.py"
DESC=agent
NAME=mms-agent
PIDFILE=/var/run/$NAME.pid
AGENT_USER=mongodb

. /lib/lsb/init-functions

case $1 in
start)
log_daemon_msg "Starting MMS agent" "mms-agent"
start-stop-daemon --background --start --make-pidfile --pidfile $PIDFILE --chuid $AGENT_USER --exec $DAEMON
status=$?
log_end_msg $status
;;
stop)
log_daemon_msg "Stopping MMS agent" "mms-agent"
start-stop-daemon --stop --quiet --pidfile $PIDFILE
log_end_msg $?
rm -f $PIDFILE
;;
restart)
$0 stop && sleep 2 && $0 start
;;
status)
status_of_proc $DAEMON "MMS agent"
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 2
;;
esac

Ajout du script au rcX, étant donné que LSB il y a alors insserv exécutée sera (Yoda style).

# insserv /etc/init.d/mms-agent

The final step

Il ne reste plus qu’à démarrer le service via le script mms-agent.

# /etc/init.d/mms-agent start

Pour vérifier que tout roule comme sur des roulettes il suffit de lancer un petit ps ainsi qu’un petit netstat (mais vraiment petit).

# ps aufx | grep [a]gent

Résultat :

mongodb 4138 0.0 0.1 133496 12300 ? Sl Jun25 0:57 /usr/bin/python /opt/mms-agent/agent.py
mongodb 4153 0.2 0.1 132596 14352 ? Sl Jun25 39:40 \_ /usr/bin/python /opt/mms-agent/agentProcess.py 4138
# netstat -plantu | grep 4153

Résultat :

tcp 0 0 10.63.13.119:36679 54.247.180.83:27017 ESTABLISHED 4153/python
tcp 0 0 10.63.13.119:33554 54.247.122.204:27017 ESTABLISHED 4153/python
tcp 0 0 10.63.13.119:58778 10.63.13.119:27017 ESTABLISHED 4153/python
tcp 0 0 10.63.13.119:52206 54.247.180.79:27017 ESTABLISHED 4153/python
tcp 0 0 10.63.13.119:58771 10.63.13.119:27017 ESTABLISHED 4153/python
tcp 0 0 10.63.13.119:36690 54.247.180.83:27017 ESTABLISHED 4153/python
tcp 0 0 10.63.13.119:33555 54.247.122.204:27017 ESTABLISHED 4153/python
tcp 0 0 10.63.13.119:59719 54.247.180.79:27017 ESTABLISHED 4153/python
udp 0 0 10.63.13.119:51930 172.16.0.23:53 ESTABLISHED 4153/python

Ensuite il ne vous reste plus qu’à ajouter vos serveurs à la console MMS mais encore une fois je vais vous laisser faire.

The following two tabs change content below.

Gaëtan Trellu (goldyfruit)

Cloud Technical Advisor chez IBM
Autodidacte en informatique, depuis 2005 je parcours l’écosystème Unix à la recherche de nouvelles connaissances et de nouvelles rencontres.

Derniers articles parGaëtan Trellu (goldyfruit) (voir tous)

CC BY 4.0 Installation de l’agent Mongo DB Monitoring Service par Gaëtan Trellu (goldyfruit) est sous Licence Creative Commons Internationale Attribution 4.0.