Package:Monit

app-admin/monit


Source Repository:Gentoo Portage Tree

Summary: a utility for monitoring and managing daemons or similar programs running on a Unix system.

Monit

Monit is a utility for managing and monitoring processes, programs, files, directories and filesystems on a UNIX system.

Installation

Emerge

To install Monit:

# emerge monit

Configuration

Config file of monit resides in /etc/monitrc. And there is a item to specify a config directory. Uncomment if needed.

/etc/monitrc: config dir
## It is possible to include additional configuration parts from other files or
## directories.
#
#  include /etc/monit.d/*
#

Users

Users added to the monit or users group will be able to manipulate monit through the web interface.

# gpasswd -a $USER monit
# gpasswd -a $USER users

Warning

passwords can be streamed to monits web interface, disable it all together after it is setup

Important

for security purposes change this entry

/etc/monitrc
allow admin:monit

Boot Services

inittab

Note

this is the preferred method to run monit

/etc/inittab: auto restart monit in case of failure
ca:12345:ctrlaltdel:/sbin/shutdown -r now

 # Run monit in standard runlevels
 mo:2345:respawn:/usr/bin/monit -Ic /etc/monitrc

# Used by /etc/init.d/xdm to control DM startup.

to start monit immediately after changing inittab

# telinit q

OpenRC

Note

prefer inittab method over rc services

To start the service at boot.

# rc-update add monit default

To start the service immediately.

# /etc/init.d/monit start

Monitoring Monit

This hourly cron script will check to make sure monit has not crashed. As this uses pgrep, make sure to not name it monit.

/etc/cron.hourly/moncheck
#!/bin/bash
if ! pgrep monit >/dev/null;then
rc-service monit restart
fi

Pidfile Check

Monit relies upon pid files. For daemons that do not create a pidfile: a work around is needed.

Examples

Auto Restart Mysql

/etc/monitrc: auto restart mysql
check process mysql with pidfile /var/run/mysqld/mysqld.pid
    start program = "/bin/bash -c 'rc-service mysql start'"
    stop program  = "/bin/bash -c 'rc-service mysql stop'"

Web Interface

Navigate to http://localhost:2812/ & login using your edited configuration line or admin / monit if you have not changed it yet.