You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.1 KiB

Alias Tag Date DocType Hierarchy TimeStamp location CollapseMetaTable
monit
Computer
Server
Monitoring
2021-09-14 Personal NonRoot
51.514678599999996
-0.18378583926867909
Yes

Parent:: Selfhosting, Server Cloud, Server Alias, Server Tools


name Save
type command
action Save current file
id Save

^button-monitSave

Configuring monit

title: Summary
collapse: open
This note runs through [monit](https://mmonit.com), a free open-source tool to monitor running programs and deamons on a VPs.

style: number


Location

title: Alias server
http://emailalias.mfxm.fr:2812
title: Cloud server
http://cloud.mfxm.fr:2812
title: Tools server
http://monit-tools.mfxm.fr


Installation

Program installation

The program is within the apt library:

sudo apt-get install monit

Once installed, it needs to be enabled:

sudo systemctl enable --now monit

Check that the service is running appropriately:

sudo systemctl status monit

Once set up, the next step is to enable the web interface.

Configuration of webportal

The following configuration file need to be amended:

/etc/monit/monitrc

By unchecking the following:

set httpd port 2812 allow admin:monit

After making the change, monit needs to be restarted:

sudo systemctl restart monit

And the corresponding port opened:

sudo ufw allow 2812

Configuration of email alerts

The following configuration file need to be amended:

/etc/monit/monitrc

By unchecking the following:

set mailserver localhost set mail-format { from: monit@(localhost) } set alert (dest email address)

After making the change, monit needs to be restarted:

sudo systemctl restart monit


Generic configuration

Pre-loaded configurations

Monit has a number of pre-loaded configurations that can be accessed here:

~~~
ls -alh /etc/monit/conf-available
~~~

To enable some of the pre-loaded confs, command below:

~~~
sudo ln -s /etc/monit/conf-available/(process) /etc/monit/conf-enabled/
~~~

Creating custom configuration

Create a conf document in the following folder:

~~~
sudo touch /etc/monit/conf-available/(processname)
~~~

Edit the document with at least the below declarations:

~~~
check process (processname) matching "(processname)"
	start program = "(path to command)"
	stop program = "(path to command)"
~~~

Once done, enable the config:

~~~
sudo ln -s /etc/monit/conf-available/(process) /etc/monit/conf-enabled/
~~~

Docker container configuration

Docker containers can be set up as programs with the use of a script.

  1. Create a script for the docker container
~~~
sudo mkdir /etc/monit/scripts/
sudo touch /etc/monit/scripts/check_container_(container name).sh
sudo chmod 711 /etc/monit/scripts/check_container_(container name).sh
~~~
  1. Edit the script
~~~
#! /bin/bash
docker top "(container name)"
exit $?
~~~
  1. Create the configuration file
~~~
sudo touch/vi /etc/monit/conf-available/(container name)
~~~
  1. Edit the config file
~~~
CHECK PROGRAM (container name) WITH PATH /etc/monit/scripts/check\_container_(container name).sh
  START PROGRAM = "/usr/bin/docker start (container name)"
  STOP PROGRAM = "/usr/bin/docker stop (container name)"
  IF status != 0 FOR 3 CYCLES THEN RESTART
  IF 2 RESTARTS WITHIN 5 CYCLES THEN UNMONITOR
~~~
  1. Enable the config
~~~
sudo ln -s /etc/monit/conf-available/(container name) /etc/monit/conf-enabled/
~~~

Validate configuration

Once configuration is updated, monit provides a tool to check the script:

~~~
sudo monit -t
~~~

The program needs to be restarted:

~~~
sudo monit reload
~~~


Basic commands

Print monit activity

~~~
sudo monit summary
~~~