[http://mmonit.com/monit 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 [http://www.amahi.org/apps/monit-webservice-interface manager Monit Web InterfaceService Manager] one-click app. This app (currently BETA status) provides additional detail about the processes currently running on your HDA.
We will add additional customizations 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 this page over timematch 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_On_Ubuntu|Gmail as Relay]] tutorial is one option or you can do it in Monit directly.
Edit /etc/monit/You can do it in Monit directly by adding the following to monitrc and update as follows:{{Text|Text= 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 /etc/monit/monitrc and uncomment (remove #) adding the following lines (Change as needed to match your system):{{Text|Text=<nowiki>#</nowiki>set mailserver localhost<nowiki>#</nowiki>set mail-format { from: monit@localhost }<nowiki>#</nowiki>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:
{{Code|* Ubuntu sudo /etc/init.d/monit restart}}* Fedora (root user) systemctl restart monit.service
== Change Access Credentials ==
Edit Edit /etc/monit/monitrc and change as desired:{{Text|Text= allow admin:admin}}
Restart Monit:
{{Code|* Ubuntu sudo /etc/init.d/monit restart}}* Fedora (root user) systemctl restart monit.service == Enable Secure access (Fedora) ==Edit monitrc and add below <u>set httpd port 2812 and</u> (line 116): SSL ENABLE PEMFILE /var/certs/monit.pem
== Update Certificate ==A default certificate is installed by Create a directory for the Amahi application. To change the certificatecerts, do the following steps as root user (For Ubuntu, prefix the command lines with <code>sudo</code>)then follow "Create New Certificate" guidance:{{Code|cd /var/certsopenssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pemopenssl gendh 512 >> /var/certs/monit.pemopenssl x509 -subject mkdir -dates -fingerprint -noout -in p /var/certs/monit.pemchmod 700 /var/certs/monit.pem}}
'''== 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 (<b>Ubuntu NOTE:''' For Ubuntu, </b> prefix commands with <code>sudo</code> except the second openssl (openssl gendh) step requires the actual '''''root''''' user environment (<code>sudo su -</code>): 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:
{{Code|* Ubuntu sudo /etc/init.d/monit restart}}* Fedora (root user) systemctl restart monit.service
== Configuration Examples ==
===Amahi 8 or Greater===
'''httpd:'''
<pre>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"</pre>
'''mariadb:'''
<pre>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"</pre>
'''dnsmasq:'''
<pre>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"</pre>
'''sshd:'''
<pre>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</pre>
'''postfix:'''
<pre> 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</pre>
'''crond:'''
<pre>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</pre>
'''hda-ctl:'''
<pre>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"</pre>
'''syslogd:'''
<pre>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</pre>
'''storagespace:'''
<pre># 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</pre>
'''qbittorrent'''
<pre>check process qBittorrent matching "qbittorrent-nox"
start program = "/usr/bin/systemctl start qbittorrent-nox@bigfoot.service"
stop program = "/usr/bin/systemctl stop qbittorrent-nox@bigfoot.service"
if failed host 127.0.0.1 port 8090 type TCP for 2 cycles then restart
if 2 restarts within 3 cycles then unmonitor</pre>
===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.
[[Category:Apps]]