Difference between revisions of "Monit"

From Amahi Wiki
Jump to: navigation, search
Line 120: Line 120:
 
   if failed port 25 protocol smtp then restart</pre>
 
   if failed port 25 protocol smtp then restart</pre>
  
'''crond'''
+
'''crond:'''
 
<pre>check process crond with pidfile /var/run/crond.pid
 
<pre>check process crond with pidfile /var/run/crond.pid
 
   group system
 
   group system
Line 127: Line 127:
 
   if 5 restarts within 5 cycles then timeout</pre>
 
   if 5 restarts within 5 cycles then timeout</pre>
  
'''hda-ctl'''
+
'''hda-ctl:'''
 
<pre>check process hda-ctl with pidfile /var/run/hda-ctl.pid
 
<pre>check process hda-ctl with pidfile /var/run/hda-ctl.pid
 
   start program = "/usr/bin/systemctl start hda-ctl.service"
 
   start program = "/usr/bin/systemctl start hda-ctl.service"
 
   stop  program = "/usr/bin/systemctl stop hda-ctl.service"</pre>
 
   stop  program = "/usr/bin/systemctl stop hda-ctl.service"</pre>
  
'''syslogd'''
+
'''syslogd:'''
 
<pre>check process syslog with pidfile /var/run/syslogd.pid
 
<pre>check process syslog with pidfile /var/run/syslogd.pid
 
   start program = "/usr/bin/systemctl start syslog.service"
 
   start program = "/usr/bin/systemctl start syslog.service"
Line 138: Line 138:
 
   if 5 restarts within 5 cycles then timeout</pre>
 
   if 5 restarts within 5 cycles then timeout</pre>
  
'''storagespace'''
+
'''storagespace:'''
 
<pre># add each drive you want to monitor below
 
<pre># add each drive you want to monitor below
 
check filesystem Boot with path /dev/sda1
 
check filesystem Boot with path /dev/sda1
Line 145: Line 145:
 
     if space usage > 90% then alert
 
     if space usage > 90% then alert
 
check filesystem Shares with path /dev/sda4</pre>
 
check filesystem Shares with path /dev/sda4</pre>
 +
 
===Reference===
 
===Reference===
 
[http://mmonit.com/wiki/Monit/ConfigurationExamples Monit Configuration Examples]:  Covers many common processes that users may want to monitor.  Some minor changes may be needed for Fedora or Ubuntu.
 
[http://mmonit.com/wiki/Monit/ConfigurationExamples Monit Configuration Examples]:  Covers many common processes that users may want to monitor.  Some minor changes may be needed for Fedora or Ubuntu.

Revision as of 01:31, 27 August 2019

Monit (Amahi's watchdog) is a utility for managing and monitoring processes, programs, files, directories and filesystems on a Unix system. It is integrated in Amahi and managed using the Servers section of the Settings tab.

Monit has an integrated web interface which can exposed using the Monit Service Manager one-click app. This app provides additional detail about the processes currently running on your HDA.

Monit configuration file locations:

  • Main (monitrc):
    • Ubuntu - /etc/monit
    • Fedora - /etc
  • Services:
    • Ubuntu - /etc/monit/monit.d
    • Fedora - /etc/monit.d


Change Hostname

Edit monitrc and change localhost.localdomain to match your system:

check system localhost.localdomain

Email Notifications

This will only work if you have set up your HDA to send emails. The Gmail as Relay tutorial is one option.

You can do it in Monit directly by adding the following to monitrc:

set mailserver smtp.gmail.com port 587 
   username "MYUSER" password "MYPASSWORD"
   using tlsv1


NOTE: Replace "MYUSER" and "MYPASSWORD" with your Gmail user name and password.

Enable email notifications by editing monitrc and adding the following lines (Change as needed to match your system): set mailserver localhost set mail-format { from: monit@localhost } set alert root@localhost


Restart Monit:

  • Ubuntu
sudo /etc/init.d/monit restart
  • Fedora (root user)
systemctl restart monit.service

Change Message Format

Edit monitrc and add this text (modify as needed):

set mail-format {
    from: monit@localhost
    subject: [ $SERVICE ] $EVENT - $DATE
    message: This is an $ACTION: $DESCRIPTION [$SERVICE], tested remotely from $HOST }


Restart Monit:

  • Ubuntu
sudo /etc/init.d/monit restart
  • Fedora (root user)
systemctl restart monit.service

Change Access Credentials

Edit monitrc and change as desired:

allow admin:admin


Restart Monit:

  • Ubuntu
sudo /etc/init.d/monit restart
  • Fedora (root user)
systemctl restart monit.service

Enable Secure access (Fedora)

Edit monitrc and add below set httpd port 2812 and (line 116):

SSL ENABLE
PEMFILE  /var/certs/monit.pem


Create a directory for the certs, then follow "Create New Certificate" guidance:

mkdir -p /var/certs

Create New Certificate

A default certificate is installed by the Amahi application (Ubuntu). To create a new certificate, do the following steps as root user (Ubuntu NOTE: prefix commands with sudo except the second openssl requires the actual root user environment sudo su -):

cd /var/certs
openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs \
/monit.pem -keyout /var/certs/monit.pem
openssl gendh 512 >> /var/certs/monit.pem
openssl x509 -subject -dates -fingerprint -noout -in /var/certs/monit.pem
chmod 700 /var/certs/monit.pem

Restart Monit:

  • Ubuntu
sudo /etc/init.d/monit restart
  • Fedora (root user)
systemctl restart monit.service

Configuration Examples

Amahi 8/9/10/11

httpd:

check process apache with pidfile "/var/run/httpd/httpd.pid"
        start program = "/usr/bin/systemctl start httpd.service"
        stop  program = "/usr/bin/systemctl stop httpd.service"

mariadb:

check process mysql with pidfile "/var/run/mariadb/mariadb.pid"
        start program = "/usr/bin/systemctl start mariadb.service"
        stop  program = "/usr/bin/systemctl stop mariadb.service"

dnsmasq:

check process dnsmasq with pidfile /var/run/dnsmasq.pid
        start program = "/usr/bin/systemctl start dnsmasq.service"
        stop  program = "/usr/bin/systemctl stop dnsmasq.service"

sshd:

check process sshd with pidfile /var/run/sshd.pid
   start program  "/etc/init.d/sshd start"
   stop program  "/etc/init.d/sshd stop"
   if failed port 22 protocol ssh then restart

postfix:

 check process postfix with pidfile /var/spool/postfix/pid/master.pid
   group mail
   start program = "/etc/init.d/postfix start"
   stop  program = "/etc/init.d/postfix stop"
   if failed port 25 protocol smtp then restart

crond:

check process crond with pidfile /var/run/crond.pid
   group system
   start program = "/usr/bin/systemctl start crond.service"
   stop  program = "/usr/bin/systemctl stop crond.service"
   if 5 restarts within 5 cycles then timeout

hda-ctl:

check process hda-ctl with pidfile /var/run/hda-ctl.pid
   start program = "/usr/bin/systemctl start hda-ctl.service"
   stop  program = "/usr/bin/systemctl stop hda-ctl.service"

syslogd:

check process syslog with pidfile /var/run/syslogd.pid
  start program = "/usr/bin/systemctl start syslog.service"
  stop program = "/usr/bin/systemctl stop syslog.service"
  if 5 restarts within 5 cycles then timeout

storagespace:

# add each drive you want to monitor below
check filesystem Boot with path /dev/sda1
    if space usage > 90% then alert
check filesystem Root with path /dev/sda3
    if space usage > 90% then alert
check filesystem Shares with path /dev/sda4

Reference

Monit Configuration Examples: Covers many common processes that users may want to monitor. Some minor changes may be needed for Fedora or Ubuntu.