Установка и настройка Monit на Ubuntu 22.04

Краткое описание
Monit — это Open Source-инструмент для мониторинга локальных сервисов и процессов. Он умеет:
- проверять наличие процесса по pidfile, по порту или исполнителю;
- перезапускать сервисы при сбоях;
- предоставлять простой веб-интерфейс для просмотра статуса;
- выполнять проверки TCP/IP на удалённых хостах и простые проверки протоколов;
- работать через CLI для автоматизации и интеграции в скрипты.
Термин в одну строку: pidfile — файл, в котором сервис записывает свой PID (идентификатор процесса).
Требования
- Сервер с Ubuntu 22.04.
- Доступ с правами root или sudo (пароль root должен быть настроен или у вас должен быть sudo-доступ).
Подготовка
Обновите пакеты до последних версий перед установкой:
apt update -y
apt upgrade -yПосле обновления можно переходить к установке Monit.
Установка Monit на Ubuntu 22.04
Пакет Monit доступен в официальном репозитории Ubuntu. Установите его командой:
apt-get install monit -yПосле успешной установки запустите сервис и включите автозапуск при старте системы:
systemctl start monit
systemctl enable monitПроверить статус сервиса:
systemctl status monitПример вывода статуса (оставлено без изменений):
? monit.service - LSB: service and resource monitoring daemon
Loaded: loaded (/etc/init.d/monit; generated)
Active: active (running) since Mon 2022-08-01 04:28:17 UTC; 11s ago
Docs: man:systemd-sysv-generator(8)
Process: 6292 ExecStart=/etc/init.d/monit start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 2242)
Memory: 2.5M
CPU: 25ms
CGroup: /system.slice/monit.service
??6298 /usr/bin/monit -c /etc/monit/monitrc
Aug 01 04:28:17 ubuntu2204 systemd[1]: Starting LSB: service and resource monitoring daemon...
Aug 01 04:28:17 ubuntu2204 monit[6292]: * Starting daemon monitor monit
Aug 01 04:28:17 ubuntu2204 monit[6292]: ...done.
Aug 01 04:28:17 ubuntu2204 systemd[1]: Started LSB: service and resource monitoring daemon.
Проверить версию Monit:
monit --versionОжидаемый вывод (пример):
This is Monit version 5.31.0
Built with ssl, with ipv6, with compression, with pam and with large files
Copyright (C) 2001-2022 Tildeslash Ltd. All Rights Reserved.
Настройка Monit
Основной конфигурационный файл: /etc/monit/monitrc. Отредактируйте его, чтобы включить веб-интерфейс и задать учётные данные администратора:
nano /etc/monit/monitrcНайдите строки, связанные с httpd, и измените их на:
set httpd port 2812 and
allow admin:monit # require user 'admin' with password 'monit'Сохраните файл и перезапустите Monit для применения изменений:
systemctl restart monitПо умолчанию Monit слушает порт 2812. Проверить можно так:
ss -antpl | grep monitПример вывода:
LISTEN 0 1024 0.0.0.0:2812 0.0.0.0:* users:(("monit",pid=6427,fd=6))
LISTEN 0 1024 [::]:2812 [::]:* users:(("monit",pid=6427,fd=7))
Также можно получить общий статус:
monit statusПример вывода статуса системы (сокращённый/необработанный):
Monit 5.31.0 uptime: 0m
System 'ubuntu2204'
status OK
monitoring status Monitored
monitoring mode active
on reboot start
load average [0.08] [0.13] [0.13]
cpu 0.0%usr 0.0%sys 0.0%nice 0.0%iowait 0.0%hardirq 0.0%softirq 0.0%steal 0.0%guest 0.0%guestnice
memory usage 1.0 GB [54.0%]
swap usage 0 B [0.0%]
uptime 28m
boot time Mon, 01 Aug 2022 04:02:09
filedescriptors 1728 [0.0% of 9223372036854775807 limit]
data collected Mon, 01 Aug 2022 04:29:55
Важно: после изменения конфигурации всегда проверяйте синтаксис командой monit -t и перезапускайте сервис.
Добавление сервисов в мониторинг
Шаблоны для популярных сервисов хранятся в каталоге /etc/monit/conf-available/. Чтобы активировать шаблон, создайте символическую ссылку в /etc/monit/conf-enabled/.
Мониторинг Nginx
Шаблон Nginx обычно поставляется в conf-available. Включите его:
ln -s /etc/monit/conf-available/nginx /etc/monit/conf-enabled/Затем перезапустите Monit:
systemctl restart monitМониторинг ProFTP (ProFTPD)
Если шаблон отсутствует, создайте его вручную:
nano /etc/monit/conf-available/proftpdДобавьте:
check process proftpd with pidfile /var/run/proftpd.pid
start program = "/etc/init.d/proftpd start"
stop program = "/etc/init.d/proftpd stop"
if failed port 21 protocol ftp then restart
Сохраните файл и активируйте шаблон:
ln -s /etc/monit/conf-available/proftpd /etc/monit/conf-enabledПроверка синтаксиса конфигурации:
monit -tОжидаемый вывод:
Control file syntax OK
Перезапустите Monit для применения:
systemctl restart monitДоступ к веб-интерфейсу Monit
Откройте в браузере URL:
Вводите логин и пароль, которые вы указали в конфигурации (в примере — admin/monit).
На странице вы увидите список сервисов и их статусы.



Примечание: по соображениям безопасности доступ к порту 2812 следует ограничивать firewall-правилами (ufw/iptables) или пробрасывать через обратный прокси с аутентификацией.
Мониторинг через командную строку
Monit предоставляет удобные команды для скриптов и ручной диагностики.
Краткая сводка:
monit summaryПример вывода сводки (оставлен без изменений):
Monit 5.31.0 uptime: 0m
???????????????????????????????????????????????????????????????????????????????
? Service Name ? Status ? Type ?
???????????????????????????????????????????????????????????????????????????????
? ubuntu2204 ? OK ? System ?
???????????????????????????????????????????????????????????????????????????????
? proftpd ? OK ? Process ?
???????????????????????????????????????????????????????????????????????????????
? nginx ? OK ? Process ?
???????????????????????????????????????????????????????????????????????????????
? nginx_bin ? OK ? File ?
???????????????????????????????????????????????????????????????????????????????
? nginx_rc ? OK ? File ?
???????????????????????????????????????????????????????????????????????????????
Полный статус конкретных элементов показывает подробную телеметрию:
monit status(Длинный пример вывода опущен здесь — он присутствовал ранее и остаётся актуальным.)
Быстрый справочник (Fact box)
- Порт по умолчанию: 2812
- Основной файл: /etc/monit/monitrc
- Папка шаблонов: /etc/monit/conf-available/ и /etc/monit/conf-enabled/
- Проверка синтаксиса: monit -t
- Перезапуск сервиса: systemctl restart monit
Ролевая чек-лист (кто что делает)
- Сисадмин: установить пакет, настроить firewall, включить автозапуск, подключить шаблоны сервисов.
- DevOps-инженер: интегрировать вызовы monit в CI/CD, добавить проверки процессов в шаблоны.
- Менеджер/оператор: установить оповещения и регулярные проверки доступности ключевых сервисов.
Когда Monit не подходит (ограничения и контрпример)
- Масштабный мониторинг сотен/тысяч хостов: Monit проектировался как агент для локального мониторинга и автовосстановления. Для централизованного мониторинга и агрегирования метрик в больших средах лучше использовать Prometheus, Zabbix, или ELK/Elastic Stack.
- Глубокая аналитика и ретеншн метрик: Monit не предназначен для хранения временных рядов и построения долгосрочных графиков.
Альтернативные подходы
- Для лёгкого локального самовосстановления — Monit.
- Для метрик и алертинга в облаках — Prometheus + Alertmanager.
- Для централизованного мониторинга со множеством интеграций — Zabbix или Nagios.
- Для логирования и аналитики — ELK (Elasticsearch, Logstash, Kibana).
Runbook — быстрое восстановление при отказе Monit
- Проверить статус сервиса:
systemctl status monit- Проверить синтаксис конфигов:
monit -tЕсли есть ошибки синтаксиса — исправить /etc/monit/monitrc или файлы в conf-available, затем повторить
monit -t.Перезапустить сервис и просмотреть логи:
systemctl restart monit
journalctl -u monit --no-pager -n 200- Если веб-интерфейс недоступен — проверить firewall/ufw:
sudo ufw status
sudo iptables -L -n- Откат: вернуть предыдущую копию конфигурации из резервной копии и перезапустить сервис.
Безопасность и советы по эксплуатации
- Не храните простые пароли в открытом виде в общедоступных репозиториях.
- Ограничьте доступ к порту 2812 по IP или проксируйте через защищённый обратный прокси.
- Регулярно проверяйте логи и результаты
monit summaryв автоматизированных проверках.
Краткий чеклист для быстрой установки (SOP)
- apt update && apt upgrade
- apt-get install monit -y
- Отредактировать /etc/monit/monitrc (включить httpd, задать allow)
- ln -s нужные шаблоны из conf-available в conf-enabled
- monit -t (проверка синтаксиса)
- systemctl restart monit
- Проверить ss -antpl | grep 2812 и открыть веб-интерфейс
Заключение
Поздравляем — Monit установлен и базово настроен на Ubuntu 22.04. Это удобный инструмент для быстрого обнаружения и автовосстановления сервисов. Для продакшн-среды подумайте о безопасности доступа к веб-интерфейсу и интеграции Monit с системами оповещений.
Ключевые действия: установить пакет, настроить /etc/monit/monitrc, активировать шаблоны, проверить синтаксис и перезапустить сервис.
Если нужна помощь с конкретным шаблоном Monit или интеграцией оповещений — напишите, какие сервисы вы хотите мониторить, и я помогу подготовить конфигурации.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить