Установка monit на FreeBSD

archive view archive save

BSD-fuck-linux, jpg monit — программа для отслеживания состояния процессов, если по каким-то причинам процесс упал — она его перезапустит или отправит оповещение администратору если запустить процесс не удалось.

В данном примере monit устанавливается на FreeBSD 12. Отличий в синтаксисе конфигурации monit на FreeBSD 12 и Debian 10 нет. Различия лишь в местах расположения конфигурационных файлов и, что в пакете для Debian есть набор предустановленных правил доступных из /etc/monit/conf-available/

# pkg search monit
...
monit-5.27.1 Unix system management and proactive monitoring
 
 
# pkg install monit
...
New packages to be INSTALLED:
 monit: 5.27.1
 
Number of packages to be installed: 1
 
292 KiB to be downloaded.
 
Proceed with this action? [y/N]: y
[1/1] Fetching monit-5.27.1.txz: 100% 292 KiB 299.2kB/s 00:01
Checking integrity... done (0 conflicting)
[1/1] Installing monit-5.27.1...
[1/1] Extracting monit-5.27.1: 100%
=====
Message from monit-5.27.1:
 
--
USAGE:
 
To enable monit you need to add monit_enable="YES" to rc.conf file.
Before running monit you have to configure monitrc file. There is
example configuration file monitrc.sample.
 
/usr/local/etc/monitrc.sample
 
 
# locate monit|grep /etc
/usr/local/etc/monitrc.sample
/usr/local/etc/rc.d/monit
 
 
in Debian 10
 
$ locate monit|grep /etc
/etc/monit
/etc/apache2/mods-available/heartmonitor.load
/etc/default/monit
/etc/init.d/monit
/etc/logrotate.d/monit
/etc/monit/conf-available
/etc/monit/conf-enabled
/etc/monit/conf.d
/etc/monit/monitrc
/etc/monit/monitrc.d
/etc/monit/monitrc.dpkg-dist
/etc/monit/templates
/etc/monit/conf-available/acpid
/etc/monit/conf-available/apache2
/etc/monit/conf-available/at
/etc/monit/conf-available/cron
/etc/monit/conf-available/mdadm
/etc/monit/conf-available/memcached
/etc/monit/conf-available/mysql
/etc/monit/conf-available/nginx
/etc/monit/conf-available/openntpd
/etc/monit/conf-available/openssh-server
...
 
 
# monit -t
Cannot find the Monit control file at ~/.monitrc, /etc/monitrc, /usr/local/etc/monitrc, /usr/local/etc/monitrc or at ./monitrc
# cp /usr/local/etc/monitrc.sample /usr/local/etc/monitrc
# monit -t
 New Monit id: cf3df3975ee6cad2d4e41f8f5a9bd553
 Stored in '/root/.monit.id'
Control file syntax OK
# vi /usr/local/etc/monitrc
...
#set log syslog
set logfile /var/log/monit.log
...
set mailserver localhost
...
# set alert [email protected] not on { instance, action }
set alert admin@example.com not on { instance, action }
...
#set httpd port 2812 and
 #use address localhost # only accept connection from localhost (drop if you
use M/Monit)
 #allow localhost # allow localhost to connect to the server and
 #allow admin:monit # require user 'admin' with password 'monit'
...
# include /etc/monit.d/*
include /etc/monit.d/*.cfg
 
 
# monit -t
/usr/local/etc/monitrc:309: Include failed -- No such file or directory '/etc/monit.d/*'
Control file syntax OK
# mkdir /etc/monit.d/
 
 
# vi /etc/monit.d/apache2.cfg
 
check process httpd
 matching "httpd"
 start program = "/usr/local/etc/rc.d/apache24 start"
 stop program = "/usr/bin/killall apache24"
 if cpu usage > 95% for 10 cycles then restart
 if cpu > 60% for 2 cycles then alert
 if not exist then restart
 if not exist for 2 cycles then alert
 
 
# vi /etc/monit.d/mysql.cfg
 
check process mysqld
 matching "mysqld"
 start program = "/usr/local/etc/rc.d/mysql-server start"
 stop program = "/usr/bin/killall mysqld"
 if cpu usage > 95% for 10 cycles then restart
 if cpu > 60% for 2 cycles then alert
 if not exist then restart
 if not exist for 2 cycles then alert
 
 
# vi /etc/monit.d/squid.cfg
 
check process squid
 matching "squid"
 start program = "/usr/local/etc/rc.d/squid start"
 stop program = "/usr/bin/killall squid"
 if cpu > 60% for 2 cycles then alert
 if not exist then restart
 if not exist for 2 cycles then alert
 
 
# vi /etc/monit.d/opendkim.cfg
 
check process opendkim
 matching "opendkim"
 start program = "/usr/local/etc/rc.d/milter-opendkim start"
 stop program = "/usr/bin/killall opendkim"
 if cpu > 60% for 2 cycles then alert
 if not exist then restart
 if not exist for 2 cycles then alert
 
 
# vi /etc/rc.conf
...
monit_enable="YES"
 
# service monit start
Starting monit.
Starting Monit 5.27.1 daemon
 
 
From: monit@example.com
To: admin@example.com
Subject: monit alert -- Monit instance changed example.com
Date: Sat, 27 Feb 2021 10:46:02 GMT
X-Mailer: Monit 5.27.1
 
Monit instance changed Service example.com
 
 Date: Sat, 27 Feb 2021 12:46:02
 Action: start
 Host: example.com
 Description: Monit 5.27.1 started
 
Your faithful employee,
Monit

Больше примеров конфигурации monit на сайте автора


Об авторе
Иван Шаман
Меня нет ни в Инстаграмме ни в Фейсбуке, я просто хожу по улицам и рассказываю первым встречным: сколько зарабатываю; с кем дружу; где живу и чем дышу. У меня даже появилось несколько подписчиков: ПСИХоЛОХ и участковый полицай!
Ещё статьи автора

Нет комментариев

Вы можете стать первым, кто добавит комментарий к этой записи.

Добавить комментарий

АХТУНГ! Все комменты гостей модерасятся модерастом.
  1. Мессаги исключительно рекламного содержания, либо содержащие только одни оценочные суждения типа "круто" ("отлично", "спасибо", "автор дебил" и т.п.) не публикуются;
  2. Злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах!;
  3. Разумная обоснованная критика, замечания, дополнения приветствуются. Поля помеченные символом * обязательны к заполнению.


Защитный код
Обновить

Комментарии в блоге
Новое на форуме