4.1 KiB
Alias | Tag | Date | DocType | Hierarchy | TimeStamp | location | CollapseMetaTable | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
2021-09-14 | Personal | NonRoot |
|
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.
- 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
~~~
- Edit the script
~~~
#! /bin/bash
docker top "(container name)"
exit $?
~~~
- Create the configuration file
~~~
sudo touch/vi /etc/monit/conf-available/(container name)
~~~
- 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
~~~
- 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
~~~