1 votes

Installation manuelle de monit sur debian squeeze

Je suis sous Debian Squeeze et je veux installer monit, le problème est que la version dans le dépôt est ancienne et n'a pas certaines options dont j'ai besoin.

J'ai téléchargé les sources et les ai compilées en utilisant ces commandes :

 $ tar zxvf monit-x.y.z.tar.gz (were x.y.z denotes version numbers)
 $ cd monit-x.y.z
 $ ./configure (use ./configure --help to view available options)
 $ make && make install

Il a compilé avec succès mais quand je tape

sudo service monit start

J'ai compris :

monit : service non reconnu

Comment puis-je l'installer manuellement en tant que service ? Merci

3voto

Aaron Points 41

Tout d'abord, vous devez exécuter make install en utilisant sudo afin de l'installer, donc :

sudo make install

Ensuite, vous avez besoin d'un script dans /etc/init.d qui démarre le service. Monit est livré avec un script générique dans le répertoire source appelé contrib/rc.monit. Voici celui qui est fourni avec le paquet debian wheezy monit (certains chemins peuvent être différents d'une version compilée en source et celui de debian a quelques "fonctionnalités" supplémentaires que vous pourriez intégrer).

#!/bin/sh

### BEGIN INIT INFO
# Provides:          monit
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Should-Start:      $all
# Should-Stop:       $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: service and resource monitoring daemon
# Description:       monit is a utility for managing and monitoring
#                    processes, programs, files, directories and filesystems
#                    on a Unix system. Monit conducts automatic maintenance
#                    and repair and can execute meaningful causal actions
#                    in error situations.
### END INIT INFO

set -e

. /lib/lsb/init-functions

DAEMON=/usr/bin/monit
CONFIG="/etc/monit/monitrc"
DELAY="/etc/monit/monit_delay"
NAME=monit
DESC="daemon monitor"
MONIT_OPTS=
PID="/var/run/$NAME.pid"

# Check if DAEMON binary exist
[ -f $DAEMON ] || exit 0

[ -f "/etc/default/$NAME" ] && . /etc/default/$NAME

# For backward compatibility, handle startup variable:
if [ -n "$startup" ]
then
  if [ "$1" = "start" ]
  then
    printf "\tPlease, use START variable in /etc/default/monit\n"
    printf "\tto enable/disable $NAME startup.\n"
  fi

  if [ -z "$START" ] && [ "$startup" -eq 1 ]
  then
    START="yes"
  fi
fi

# For backward compatibility, handle CHECK_INTERVALS variable:
if [ -n "$CHECK_INTERVALS" ]
then
  if [ "$1" = "start" ]
  then
    printf "\tPlease, use MONIT_OPTS variable in /etc/default/monit\n"
    printf "\tto specify command line options for $NAME.\n"
  fi

  MONIT_OPTS="$MONIT_OPTS -d $CHECK_INTERVALS"
fi

MONIT_OPTS="-c $CONFIG $MONIT_OPTS"

monit_not_configured () {
  if [ "$1" != "stop" ]
  then
    printf "\tplease configure $NAME and then edit /etc/default/$NAME\n"
    printf "\tand set the \"START\" variable to \"yes\" in order to allow\n"
    printf "\t$NAME to start\n"
  fi
  exit 0
}

monit_check_config () {
  # Check for emtpy config.
  if [ "`grep -s -v \"^#\" $CONFIG`" = "" ]
  then
    echo "empty config, please edit $CONFIG."
    exit 0
  fi
}

monit_check_perms () {
  # Check the permission on configfile.
  # The permission must not have more than -rwx------ (0700) permissions.

  # Skip checking, fix perms instead.
  /bin/chmod go-rwx $CONFIG
}

monit_delayed_monitoring () {
  if [ -f $DELAY ]
  then
    printf "Warning: Please, set start delay for $NAME in config file\n"
    printf "         and delete $DELAY file.\n"

    if [ ! -x $DELAY ]
    then
      printf "Warning: A delayed start file exists ($DELAY)\n"
      printf "         but it is not executable.\n"
    else
      $DELAY &
    fi
  fi
}

monit_checks () {
  # Check if START variable is set to "yes", if not we exit.
  if [ "$START" != "yes" ]
  then
    monit_not_configured $1
  fi
  # Check for emtpy configfile
  monit_check_config
  # Check permissions of configfile
  monit_check_perms
}

case "$1" in
  start)
    log_daemon_msg "Starting $DESC" "$NAME"
    monit_checks $1
    if start-stop-daemon --start --quiet --oknodo \
                         --pidfile $PID --exec $DAEMON \
                         -- $MONIT_OPTS
    then
      log_end_msg 0
    else
      log_end_msg 1
    fi
    monit_delayed_monitoring
    ;;
  stop)
    log_daemon_msg "Stopping $DESC" "$NAME"
    if start-stop-daemon --retry TERM/5/KILL/5 --oknodo --stop --quiet \
                         --pidfile $PID --exec $DAEMON
    then
      log_end_msg 0
    else
      log_end_msg 1
    fi
    ;;
  reload)
    log_daemon_msg "Reloading $DESC configuration" "$NAME"
    if start-stop-daemon --stop --signal HUP --quiet \
                                --oknodo --pidfile $PID \
                                --exec $DAEMON -- $MONIT_OPTS
    then
      log_end_msg 0
    else
      log_end_msg 1
    fi
    ;;
  restart|force-reload)
    $0 stop
    $0 start
    ;;
  syntax)
    $DAEMON $MONIT_OPTS -t
    ;;
  status)
    status_of_proc -p $PID $DAEMON $NAME
    ;;
  *)
    log_action_msg "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload|syntax|status}"
    ;;
esac

exit 0

Copiez-le dans un fichier appelé /etc/init.d/monit et rendez ce fichier exécutable.

Vous devez également créer le fichier /etc/default/monit avec les éléments suivants :

# /etc/default/monit

# Defaults for monit initscript.  This file is sourced by
# /bin/sh from /etc/init.d/monit.

# You must set this variable to yes for monit to start
START=yes

# Options to pass to monit
#MONIT_OPTS=

Vous devriez alors être en mesure de le démarrer avec la commande que vous avez exécutée :

sudo service monit start

Pour qu'il démarre automatiquement au démarrage, exécutez ce qui suit pour que Debian l'insère au bon endroit dans les services de démarrage.

insserv monit

1voto

David Points 111

Juste un commentaire sur Ubuntu 12.04.4 et Monit :

Je suis devenu fou en essayant de comprendre pourquoi monit ne fonctionne pas comme annoncé sur Ubuntu 12.04.4. Il s'avère que le paquet apt-get vous donne n'est pas à jour. J'ai décidé de compiler à partir des sources.

Donc, si vous avez déjà installé Monit comme je l'ai fait, vous pouvez simplement télécharger l'archive source et ./configure --prefix=/usr suivi par make && make install .

Le script de démarrage déjà dans /etc/init.d semble fonctionner correctement. Vous pouvez donc juste sudo service monit restart et vous êtes sur votre chemin.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X