|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Мелочи
—> monit
monit - программа мониторинга работы системы
Автор: Abigor.
Прочитал статью lissyara о настройке monitord для мониторинга сервисов запущенных в системе, все хорошо, но обидело, что это утилита не работает под фрей шестой ветки. А у меня как раз на всех серверах такая фря и стоит =) Так что пришлось топать в порты и искать замену и как это не странно. В том же разделе где лежит порт monitord я обнаружил monit. Эта утилита выполняет те же функции что и monitord только, на мой взгляд, функционал богаче и она работает на шестой ветке =)
Вот я ее описал. Теперь начнем ставить. Ставить будем из портов =)
[root@webdes ~]# cd /usr/ports/
[root@webdes ports]# make search key="Unix system management and monitoring"
Port: monit-4.8.1
Path: /usr/ports/sysutils/monit
Info: Unix system management and monitoring
Maint: martinp@tildeslash.com
B-deps: bison-1.75_2,1 gettext-0.14.5_2 gmake-3.81_1 libiconv-1.9.2_2 m4-1.4.4
R-deps:
WWW: http://www.tildeslash.com/monit/
[root@webdes ports]#
[root@webdes ports]# cd /usr/ports/sysutils/monit
[root@webdes monit]# make install clean
| Все, программа установлена, теперь займемся ее конфигурированием.
[root@webdes etc]# ls monitrc.sample
-rw------- 1 root wheel 8781 17 окт 16:20 monitrc.sample
[root@webdes etc]# cp monitrc.sample monitrc
[root@webdes etc]# ls monitrc*
-rw------- 1 root wheel 8768 17 окт 19:04 monitrc
-rw------- 1 root wheel 8781 17 окт 16:20 monitrc.sample
| Откроем /usr/local/etc/monitrc
###############################################################################
## Monit конфигурационный файл
###############################################################################
##
## Комментарии начинаются с '#' и действительны до конца строки
##
###############################################################################
## Глобальная секция
###############################################################################
##
## Запустить monit как депон и проверять процесс с интервалом в 2 минуты
#
set daemon 120
#
#
## Использовать syslog регистрирующий со средством 'демона'. Если опция
# FACILITY будет опущенным, то monit будет использовать 'пользовательское'
# средство по умолчанию. Вы можете определить
## путь к файлу для monit.
#
set logfile syslog facility log_daemon
#
#
## Список mailservers для доставки оповещения. Возможно, указать порт mailserver. По
## умолчанию это 25 порт
#
set mailserver localhost, # primary mailserver
# backup.bar.baz port 10025, # backup mailserver on port 10025
# localhost # fallback relay
#
#
## Есть возможность сохранить оповещение, если вдруг не один из
# mailservers будет не доступен.
## Так есть возможность установить лимит дискового пространства,
# для предотвращения его переполнения
#
set eventqueue
basedir /var/log/monit # путь к каталогу, где будут храниться оповещения
slots 100 # лимит
#
#
## Формат письма по умолчанию
##
## --8<--
## From: monit@$HOST # отправитель
## Subject: monit alert -- $EVENT $SERVICE # тема
##
## $EVENT Service $SERVICE #
## #
## Date: $DATE #
## Action: $ACTION #
## Host: $HOST # body
## Description: $DESCRIPTION #
## #
## Your faithful employee, #
## monit #
## --8<--
##
## Вы можете самостоятельно задать формат письма, используя макроопределения.
## Например, для изменения отправителя:
#
set mail-format { from: system-alert@isea.ru }
#
#
## Вы можете задать получателя оповещения. Оповещения могут быть
## ограничен используя список. (похоже что для каждого события можно
# задать определенный мыл)
#
set alert admin@isea.ru # все оповещения
# set alert manager@foo.bar only on { timeout } # получатель оповещения
# # при timeout
#
#
## Monit имеет встроенный web сервер для управления и просмотра
## работы демона
#
# set httpd port 2812 and
# use address localhost # задаем хост
# allow localhost # разрешаем, откуда можно подсоединяться
# allow admin:monit # задаем логин 'admin' и пароль 'monit'
#
#
###############################################################################
## Обслуживание
###############################################################################
##
## Здесь задаются отдельные правила для управления ресурсами.
## Каждое правило определяет проверяемый ресурс и выполняемые действия
##
#
# check system myhost.mydomain.tld
# if loadavg (1min) > 4 then alert
# if loadavg (5min) > 2 then alert
# if memory usage > 75% then alert
# if cpu usage (user) > 70% then alert
# if cpu usage (system) > 30% then alert
# if cpu usage (wait) > 20% then alert
#
#
## Проверка контрольной суммы файла, разрешений, владельца файла и группу.
# Так же оповещение будет отослано security@foo.bar
## Обслуживание может быть группировано, используя опцию GROUP
#
# check file apache_bin with path /usr/local/apache/bin/httpd
# if failed checksum and
# expect the sum 8f7f419955cefa0b33a2ba316cba3659 then unmonitor
# if failed permission 755 then unmonitor
# if failed uid root then unmonitor
# if failed gid root then unmonitor
# alert security@foo.bar on {
# checksum, permission, uid, gid, unmonitor
# } with the mail-format { subject: Alarm! }
# group server
#
#
## Пример проверки работы HTTP сервера под управлением apache 2.2
#
check process apache with pidfile /var/run/httpd.pid
start program = "/usr/local/etc/rc.d/apache22.sh start"
stop program = "/usr/local/etc/rc.d/apache22.sh stop"
if cpu > 60% for 2 cycles then alert # если загрузка cpu > 60% послать
# предупреждение
if cpu > 80% for 5 cycles then restart # если загрузка cpu > 80% послать
# перезапустить процесс
if totalmem > 200.0 MB for 5 cycles then restart # если юзается
# больше 200 MB мозгов
# перезапустить процесс
if children > 250 then restart # если число дочерних процессов > 250
# перезапустить процесс
# if loadavg(5min) greater than 10 for 8 cycles then stop # не понял что делает
# if failed host www.tildeslash.com port 80 protocol http # если тестовая
# страница не доступна,
# перезапустить процесс
# and request "/monit/doc/next.php"
# then restart
# if failed port 443 type tcpssl protocol http # если не доступен 443 порт,
# перезапустить процесс
# with timeout 15 seconds
# then restart
if 3 restarts within 5 cycles then timeout # если 3 раза уже перезапускали
# процесс сделать timeout
# depends on apache_bin
# group server
#
# это уже добавил я
#---
check process calmav with pidfile /var/run/clamav/clamd.pid
start program = "/usr/local/etc/rc.d/clamav-clamd start"
stop program = "/usr/local/etc/rc.d/clamav-clamd stop"
# if cpu > 60% for 2 cycles then alert
# if cpu > 80% for 5 cycles then restart
if totalmem > 100.0 MB for 5 cycles then restart
if children > 100 then restart
if failed unixsocket /var/run/clamav/clamd then restart
if 5 restarts within 5 cycles then timeout
#---
check process dovecot with pidfile /var/run/dovecot/master.pid
start program = "/usr/local/etc/rc.d/dovecot start"
stop program = "/usr/local/etc/rc.d/dovecot stop"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if totalmem > 100.0 MB for 5 cycles then restart
if children > 100 then restart
if 5 restarts within 5 cycles then timeout
if failed port 110 type TCP protocol POP then restart
#---
check process exim with pidfile /var/run/exim.pid
start program = "/usr/local/etc/rc.d/exim.sh start"
stop program = "/usr/local/etc/rc.d/exim.sh stop"
# if cpu > 60% for 2 cycles then alert
# if cpu > 80% for 5 cycles then restart
# if totalmem > 200.0 MB for 5 cycles then restart
# if children > 250 then restart
if failed port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout
#---
check process mysql with pidfile /var/mysql_data/webdes.isea.ru.pid
group database
start program = "/usr/local/etc/rc.d/mysql-server start"
stop program = "/usr/local/etc/rc.d/mysql-server stop"
if failed unixsocket /tmp/mysql.sock then restart
if failed host 127.0.0.1 port 3306 protocol mysql then restart
if 5 restarts within 5 cycles then timeout
## Проверка файловой системы на забитость (блин, а я свои
# скрипты писал пару дней назад)
##
##
##
#
# check device datafs with path /dev/sdb1
# start program = "/bin/mount /data"
# stop program = "/bin/umount /data"
# if failed permission 660 then unmonitor
# if failed uid root then unmonitor
# if failed gid disk then unmonitor
# if space usage > 80% for 5 times within 15 cycles then alert
# if space usage > 99% then stop
# if inode usage > 30000 then alert
# if inode usage > 99% then stop
# group server
#
#
## Проверить timestamp файла. Если файл не изменялся в
# течение 15 минут, что-то не так
## Так же, если размер файла превысил допустимый порог,
# выполнить заданный скрипт
#
# check file database with path /data/mydatabase.db
# if failed permission 700 then alert
# if failed uid data then alert
# if failed gid data then alert
# if timestamp > 15 minutes then alert
# if size > 100 MB then exec "/my/cleanup/script"
#
#
## Проверка директории. Проверка владельца и группы.
#
# check directory bin with path /bin
# if failed permission 755 then unmonitor
# if failed uid 0 then unmonitor
# if failed gid 0 then unmonitor
#
#
## Проверка удаленного хоста на доступность. Проводимую по средствам
## пинга и телнета на определенный порт
##
#
check host dedic with address 10.1.1.99
if failed icmp type echo count 3 with timeout 10 seconds then alert
# if failed port 3306 protocol mysql with timeout 15 seconds then alert
# if failed url
# http://user:password@www.foo.bar:8080/?querystring
# and content == 'action="j_security_check"'
# then alert
#
#
#########################################################################
## Включения
#########################################################################
##
## Здесь возможно включить в основой конфиг отдельные файлы
##
#
include /usr/local/etc/monit/*
#
| Вот и весь конфиг. Я конечно большую часть я вынес в include /usr/local/etc/monit/*, мне так удобнее. Дальше запускаем:
[root@webdes etc]# echo 'monit_enable="YES"' >> /etc/rc.conf
[root@webdes etc]# /usr/local/etc/rc.d/monit rcvar
# monit
$monit_enable=YES
[root@webdes etc]# /usr/local/etc/rc.d/monit start
Starting monit.
Starting monit daemon
[root@webdes etc]# /usr/local/etc/rc.d/monit status
monit is running as pid 65631.
[root@webdes etc]#
| Дальше проверим работу сервиса.
[root@webdes ~]# /usr/local/etc/rc.d/dovecot stop
Stopping dovecot.
Waiting for PIDS: 58954.
[root@webdes ~]# /usr/local/etc/rc.d/apache22.sh stop
Stopping apache22.
Waiting for PIDS: 60813.
[root@webdes ~]#
|
[root@webdes etc]# tail -f /var/log/messages |grep monit
Oct 17 19:32:37 webdes monit[65852]: 'apache' process is not running
Oct 17 19:32:37 webdes monit[65852]: 'dovecot' process is not running
^C
|
Теперь на почту должно прийти 4 письма, два про то что два сервиса не запущены, и еще 2 про то что они удачно запустились.
P.S дополнительные настройки можно посмотреть здесь: дока с сайта monit
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=7638.
размещено: 2006-10-17,
последнее обновление: 2006-10-19,
автор: Abigor
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
|
Комментарии пользователей [25 шт.]