|
|
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
|
|
|
|
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-22, Mufanu
named 9.7.0
Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
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 системы в общественное заведение.
2009-08-18, lissyara
diskless
Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение
Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга
Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff
Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа
Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL
Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)
Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP
Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools
Network UPS Tools представляет собой набор программ, которые обеспечивают общий
интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP
Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network
Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem
В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID
Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN
Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS
В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL
Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)
Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external
mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
2009-03-24, gx_ua
Lightsquid
Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
|
Комментарии пользователей [22 шт.]