|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Мелочи
—> monitord
monitord - программа мониторинга работы сервисов
Автор: lissyara.
Понадобилось обеспечить надёжность работы сервисов - автоматически рестартовать, если упадут. Порывшись в портах, нашёл программу - monitord. Вроде оно. Ставим:
/usr/home/lissyara/>cd /usr/ports/
/usr/ports/>make search name='monitord'
Port: monitord-0.4.1_2
Path: /usr/ports/sysutils/monitord
Info: Service that restarts other standalone services
Maint: ports@FreeBSD.org
B-deps:
R-deps:
WWW:
/usr/ports/>cd /usr/ports/sysutils/monitord
/usr/ports/sysutils/monitord/>make && make install && make clean
| После установки создаём конфиг, такого содержания:
/usr/local/etc/monitord.conf
# Конфигурационный файл Monitord
# Вы должны задать ваш адрес электронной почты и имя почтового сервера для
# испoльзования при отсылке почты. Это буде использоваться там, где вы
# используете опцию "alert".
# Мыло, на которое будут слаться уведомления
email = admin@lissyara.su
# Адрес почтового сервера (localhost, если на нём есть MTA, либо иной)
smtp-server = localhost
# Когда задаёте опции, убедитесь, что они разделены запятыми, и НЕ имеют
# каких=бы то ни было пробелов.
#
# юзер опции задержка сервис скрпит запуска параметры
# user options delay service start script parameters
root auto,alert 10 inetd /usr/sbin/inetd -wW
root auto,alert 10 syslogd /usr/sbin/syslogd -s
root auto,alert 10 cron /usr/sbin/cron
root auto,alert 20 httpd /usr/local/etc/rc.d/apache.sh start
#root auto,alert 20 mysqld /usr/local/etc/rc.d/mysql-server.sh start
root auto,alert 10 sshd /usr/sbin/sshd
root auto,alert 30 snmpd /usr/local/etc/rc.d/snmpd.sh start
# Возможные опции:
# auto - указывает, что сервис будет автоматически перезапущен, если обранужено
# что он не работает. Также, это дефолтовая опция, когда не указано ничего
# (ни auto, ни noauto)
# noauto - указывает, что сервис не будет автоматически перезапущен, если
# не работает
# alert - указывает, что если сервис падает, администратор автоматически
# уведомляется по электронной почте, как задано в первой части
# конфигурационного файла. Также, когда сервис перезапущен, эта
# опция вызывает уведомление администратора о успешном перезапуске.
| Вместе с программой не идёт скрипт запуска, поэтому пишем свой, такого содержания:
/usr/local/etc/rc.d/monitor.sh
#!/bin/sh
#
case "$1" in
start)
/usr/local/sbin/monitord > /dev/null 2>&1
echo ' monitord started...'
;;
stop)
if [ `ps axc | grep monitord | awk '{print $1}' \
| tail -1` -ge 0 ] > /dev/null 2>&1
then
kill `ps axc | grep monitord | awk '{print $1}'`
echo ' monitord stopped...'
else
echo ' monitord not running!'
fi
;;
restart)
if [ `ps axc | grep monitord | awk '{print $1}' \
| tail -1` -ge 0 ] > /dev/null 2>&1
then
kill `ps axc | grep monitord | awk '{print $1}'`
echo ' monitord stopped...'
sleep 1
/usr/local/sbin/monitord > /dev/null 2>&1
echo ' monitord started...'
else
echo ' monitord not running!'
fi
;;
*)
echo "Usage: `basename $0` {start|stop|restart}" >&2
exit 64
;;
esac
exit 0
| После чего выставляем на него права:
/usr/home/lissyara/>chmod 700 /usr/local/etc/rc.d/monitor.sh
/usr/home/lissyara/>chown root:wheel /usr/local/etc/rc.d/monitor.sh
/usr/home/lissyara/>
| Ну и можно запускать:
/usr/home/lissyara/>/usr/local/etc/rc.d/monitor.sh start
monitord started...
/usr/home/lissyara/>
| Пробуем убить перечисленные сервисы:
/usr/home/lissyara/>killall inetd; killall cron; killall httpd; \
? killall snmpd
|
/usr/home/lissyara/>tail -f /var/log/messages
Oct 17 10:09:24 ns2 monitord: restarted "inetd" using "/usr/sbin/inetd -wW"
Oct 17 10:09:24 ns2 monitord: restarted "cron" using "/usr/sbin/cron "
Oct 17 10:09:25 ns2 monitord: restarted "snmpd" using "/usr/local/etc/rc.d/snmpd.sh start"
Oct 17 10:09:26 ns2 monitord: restarted "httpd" using "/usr/local/etc/rc.d/apache.sh start"
|
Всё успешно рестартовалось. Ну, думаю, вполне понятно, почему я не убивал sshd и syslogd - по первому я сидел, а вот без второго не было бы логов в журнале. Также поясню, почему закомментирована строка про mysqld, в конфиге - mysql-server, нынче, идёт со своим скриптом, который присматривает за работой сервера, и в случае необходимости его перезапускает. Поэтому следить за ним не надо. Впрочем, никто не мешает раскомментить и эту строку - но таймаут побольше поставьте, чтоб родному скрипту не мешать.
P.S. Прога не работает под 6.1 - я её тестил, под 4.11 - на шохе она пытается перезапустить все указанные в конфиге процессы, видимо, изменились функции отвечающие за получение списка работающих процессов... Жаль, но - больше половины серваков у меня на 4.11 - поэтому не так страшно. На шестёрку чё-нить другое найдётся.
P.S.2 Комменты рулят - и правду надо добавить procfs и пашет даже под 6.2. Написал патч для порта, с цвильным стартовым скриптом, с примечанием, что надо procfs добавлять, послал знакомому комиттеру. Может включат. Если кому надо - http://lissyara.su/patch/sysutils.monitord.diff
UPD. 2009-07-22: стартовый скрипт включили в порты. Так что - можно просто заинсталлить и юзать =)
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=9527.
размещено: 2006-10-17,
последнее обновление: 2007-06-07,
автор: lissyara
|
|
|
|
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 и внешние скрипты.
|
Статистика сайта
|
Сейчас на сайте находится: 24 чел.
|
За последние 30 мин было: 85 человек
|
За сегодня было 1375 показов, 383 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [13 шт.]