PDA

Просмотр полной версии : Monit -utility for monitoring services on a Unix system


Yeros
25.01.2009, 05:01
Привет

кто нибудь ставил этот софт ?

какие отзывы ? может быть какой то аналог, который более эфективный

Я сам n00b в линукс администарции ... несколько дней назад попытался поставить, но если честно сделать конфиг не получилось, вот и ищу людей, кто работал с ним и знает, что к чему

noname
25.01.2009, 12:17
собственно в чем проблема ?

monit is a utility for monitoring and managing daemons or similar programs running on a Unix system. It will start specified programs if they are not
running and restart programs not responding.

он IMHO нужен , если есть ненадежные сервисы которые нужно автоматически рестартить , включать и т.д. , вместо него imho можно использовать inittab или daemontools .

для мониторинга есть более другой софт , типа munin , nagios, и т.д.

Yeros
25.01.2009, 17:25
да, я не совсем четко выразился - т.е. мунин , нагиос мне не нужны, они только для мониторинга.

А мне нужен именно такой "есть ненадежные сервисы которые нужно автоматически рестартить , включать и т.д".

Но вот досада - после инстал вылетает сообщение

monit: Cannot connect to the monit daemon. Did you start it with http support?
monit: Cannot connect to the monit daemon. Did you start it with http support?
monit: Cannot connect to the monit daemon. Did you start it with http support?
monit: Cannot connect to the monit daemon. Did you start it with http support?
monit: Cannot connect to the monit daemon. Did you start it with http support?

в итоге не могу его включить


кстати видел в инете несколько сомопальных скриптов тоже для этого, но я не спец в юникс, вот и боюсь что либо ставить - так как даже не знаю, что лучше , что нет

Вот попытался ставить монит, но как видете - неудачно.

Saruman
26.01.2009, 09:27
использую для этих же целей god (http://god.rubyforge.org/) - никаких проблем с запуском и т.п. Конечно, т.к. он написан на ruby - то для установки потребуется как минимум установленный ruby и rubygems. Плюс конфиг тоже на руби - так что базовые знания о языке будут полезны, хотя простейшие случаи можно и просто путём модификации имеющихся примеров получить.

Yeros
26.01.2009, 17:09
к сложалению с ruby не лады (с шелл нуб, но хоть команды знаю), так что наверно попробую найты кого то, кто поможет завершить конфиг монит-а.

Но в любом случае - спасибо

Hubbitus
06.02.2009, 01:06
Собственно а в чем проблема? Поставил из репозитория, запустил демон с дефолтным конфигом, и он сразу заработал. Дальше смотрб конйиг, и там толпа комментариев...

Если не разобраться, выкладывайте конфиг, что не получается, описывайте подробнее что хотите сделать.

Yeros
06.02.2009, 01:38
monit: Cannot connect to the monit daemon. Did you start it with http support?
с этим вроде разобрались, но в любом случае монит пока не может контролировать мускул

Process 'mysql'
status not monitored
monitoring status not monitored
data collected Thu Feb 5 16:28:39 2009

File 'mysql_bin'
status accessible
monitoring status monitored
permission 755
uid 0
gid 0
timestamp Tue Dec 23 18:28:00 2008
size 6633560 B
checksum 55e9161d0b69a0ca9af14228d1d598be(MD5)
data collected Thu Feb 5 16:28:39 2009

File 'mysql_rc'
status accessible
monitoring status monitored
permission 755
uid 0
gid 0
timestamp Tue Dec 23 18:28:09 2008
size 11948 B
checksum ec77cbeb2c7d67a9540faed8470bc485(MD5)
data collected Thu Feb 5 16:28:39 2009

попрововал отискать причину:

не было my.cnf . Сделал да ещё прописал внизу пару строк
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

так как mysqld.pid у меня почему то не оказалось и после
ps auxww | grep mysql

я получал

root 4718 0.0 0.0 4468 1104 pts/0 S 15:11 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid
mysql 4738 0.0 1.0 35092 21584 pts/0 S 15:11 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
mysql 4741 0.0 1.0 35092 21584 pts/0 S 15:11 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
mysql 4742 0.0 1.0 35092 21584 pts/0 S 15:11 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
mysql 4743 0.0 1.0 35092 21584 pts/0 S 15:11 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
mysql 4744 0.0 1.0 35092 21584 pts/0 S 15:11 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
mysql 4745 0.0 1.0 35092 21584 pts/0 S 15:11 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
mysql 4747 0.0 1.0 35092 21584 pts/0 S 15:11 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
mysql 4748 0.0 1.0 35092 21584 pts/0 S 15:11 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
mysql 4749 0.0 1.0 35092 21584 pts/0 S 15:11 0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
mysql 4750 0.0 1.0 35092 21584 pts/0 S 15:11 0:01 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.MYSERVERNAME*.org.pid --skip-external-locking
root 9896 0.0 0.0 3940 700 pts/1 S+ 18:12 0:00 grep mysql

mysql-stop-> впечетление, что mysql не работает (так как на сайтах mysql стоит), но вот сделал опять ps auxww | grep mysql

и о боже - процесси идут

Одним словом хотя
# /etc/rc.d/init.d/mysqld stop
Shutting down MySQL. [ OK ]

но MySQL ещё работает

помогло лишь MySQL стоп через директадмин.
После старта ...

1. всё равно как пид файл определяется /var/lib/mysql/server.MYSERVERNAME*.org.pid

2. и монит не хочет мониторить MySQL

Process 'mysql'
status not monitored
monitoring status not monitored
data collected Thu Feb 5 16:28:39 2009

Вот такие пироги

noname
06.02.2009, 21:00
честно говоря не могу представить зачем мониторить через monit mysql .

для старта mysql есть init скрипты , и т.д.

если mysqld упал , то тут старт не поможет , так как данные наверняка пострадали .

да и к тому-же тяжело нагруженый mysql может останавливаться пару десятков минут .....

что-то вы не то делаете .....

Yeros
07.02.2009, 00:29
вообще то я все таки уже установил монит (вчера), что касается твоих слов, то за неимением ничего лучшего и неимея знании в этом деле, приходится искать в инете читать ревю других - и наткнулся на монит.

вернее спросил - посоветовали это ... вот из за этого за ним бегаю.

есть другое решение - посоветуй

SinClaus
07.02.2009, 19:12
Запускать мускуль через скрипт (прилагаемый) safe-mysql. Он сделан как раз для того что бы мускуль был всегда в он-лайне.

Yeros
07.02.2009, 21:30
Запускать мускуль через скрипт (прилагаемый) safe-mysql. Он сделан как раз для того что бы мускуль был всегда в он-лайне.

прости, а как это можно сделать ?

из того что я зная, это то, что в моем my.cnf(то этого не было у меня my.cnf - пришлось создать -потом сделать рестарт) я прописал такие строки

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


или ты не об этом?

noname
07.02.2009, 22:40
а какой дистрибутив ? и как вы ставили mysql server ?
в любом современном дистре есть пакет mysql-server который уже работает с некоторым дефолтным конфигом прямо из коробки .

Yeros
08.02.2009, 03:33
а какой дистрибутив ? и как вы ставили mysql server ?
в любом современном дистре есть пакет mysql-server который уже работает с некоторым дефолтным конфигом прямо из коробки .

сервер я брал уже готовый- сам ничего не ставил - только чуток подправил

(Linux, CentOs 5.0; MySQL 5.0.67, Apache 2.2.11; DirectAdmin 1.33.0 )

в любом современном дистре есть пакет mysql-server который уже работает с некоторым дефолтным конфигом прямо из коробки .

имею ввиду, что где надо подправить, чтобы запустить mysqld-safe стартат скрипт

[root@server ~]# mysqld_safe --help
Usage: /usr/bin/mysqld_safe [OPTIONS]
--no-defaults Don't read the system defaults file
--defaults-file=FILE Use the specified defaults file
--defaults-extra-file=FILE Also use defaults from the specified file
--ledir=DIRECTORY Look for mysqld in the specified directory
--log-error=FILE Log errors to the specified log file
--open-files-limit=LIMIT Limit the number of open files
--core-file-size=LIMIT Limit core files to the specified size
--timezone=TZ Set the system timezone
--mysqld=FILE Use the specified file as mysqld
--mysqld-version=VERSION Use "mysqld-VERSION" as mysqld
--nice=NICE Set the scheduling priority of mysqld
--skip-kill-mysqld Don't try to kill stray mysqld processes

All other options are passed to the mysqld program.

noname
08.02.2009, 14:44
есть ли файл /etc/init.d/mysql ?

и вообше что показывает rpm -qa | grep -i mysql

Yeros
08.02.2009, 16:44
есть ли файл /etc/init.d/mysql ?
только /etc/init.d/mysqld


[root@server init.d]# rpm -qa | grep -i mysql
MySQL-shared-5.0.67-0
MySQL-server-5.0.67-0
MySQL-devel-5.0.67-0
MySQL-client-5.0.67-0

noname
08.02.2009, 17:52
вот это и есть скрипт запуска mysql-server-a
он умеет start|stop|restart|reload|force-reload|status

теперь для каждого пакета запустите rpm -ql | grep my.cnf
чтобы найти где лежить дефаулт my.cnf

а вообше в linux системах с софтом идет и базовая документация , так что первым делом надо смотреть
/usr/share/doc/$package ... или /usr/share/doc/packages для редхет based дистров .

Hubbitus
09.02.2009, 02:19
Так а стандартное
service mysql restart
что говорит?

И на самом деле, никакого Monit для MySQL не надо!

теперь для каждого пакета запустите rpm -ql | grep my.cnf
чтобы найти где лежить дефаулт my.cnf
Ну во-первых можно сразу:
rpm -qal 'MySQL*' | grep my.cnf
Во вторых я и так скажу что /etc/my.cnf
ну и в третьих, человек уже сказал что конфиг есть и он его правил и вроде как даже разобрался с ним. Верно я понял, Yeros?

Yeros
09.02.2009, 02:29
[root@server ~]# service mysql restart
mysql: unrecognized service


[root@server ~]# rpm -qal 'MySQL*' | grep my.cnf
[root@server ~]#

добавлено через 1 минуту
ну и в третьих, человек уже сказал что конфиг есть и он его правил и вроде как даже разобрался с ним. Верно я понял, Yeros?

если речь о my.cnf. то я правил этот файл и он в /etc/my.cnf

спасибо

Hubbitus
09.02.2009, 02:32
[root@server ~]# service mysql restart
mysql: unrecognized service
Хм, очень странно...
А так что говорит:
# service --status-all | grep -i mysql

Rpm-пакеты из родного репозитория ставились?

Yeros
09.02.2009, 02:42
[root@server init.d]# service --status-all | grep -i mysql
capi not installed - No such file or directory (2)
MySQL running (6828) [ OK ]
env: /etc/init.d/rc.monit: No such file or directory
squid: ERROR: No running copy
SIOCADDRT: File exists
[root@server init.d]#


самое странное, что /etc/init.d/rc.monit как раз есть

Rpm-пакеты из родного репозитория ставились?

не знаю, как я сказал не я ставил

Hubbitus
09.02.2009, 02:44
Ага, ну тогда просто должно быть:
service MySQL restart

Впрочем, как видно, он и так вроде работает. Что еще от него требуется?

Yeros
09.02.2009, 02:57
Впрочем, как видно, он и так вроде работает. Что еще от него требуется?

:-) Задача изначально была, чтобы ставить какой то скрипт, в данном случае монит, который бы предостерегал от downtimes (btw ... уже второй день вроды все ок ... то ли это монит, то ли сервер просто не падал).

потом вы сами посоветовали, что не стоит ставить монит ... а надо это делать какими то другими методами и пошло поехало.

А MySQL у меня до сих пор работал, как я уже сказал даже монит поставил (правдо не до конца - не могу октрыть его через http - типа должен открытся domain.com:2128 -> - но это не страшно)

service MySQL restart

output as i told above

[root@server init.d]# service MySQL restart
MySQL: unrecognized service

Hubbitus
09.02.2009, 03:22
Так в том-то и дело. стандартные инит-скрипты зупускают сервис, управляют им, MySQL например. Далее, скрипт mysqld_safe (У меня имено он используется по умолчанию: use_mysqld_safe=1 ) именно перезапускает его в случае необходимости:
# head -n5 `which mysqld_safe `
#!/bin/sh
# Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
# This file is public domain and comes with NO WARRANTY of any kind
#
# Script to start the MySQL daemon and restart it if it dies unexpectedly

output as i told above
Вот блин, ерунда какая. Покажите тогда вывод:
find /etc/init.d/ -iname '*mysql*' -exec grep -inH 'provides' {} \;

Yeros
09.02.2009, 03:43
[root@server init.d]# find /etc/init.d/ -iname '*mysql*' -exec grep -inH 'provid es' {} \;
/etc/init.d/mysqld:18:# Provides: mysql

Hubbitus
09.02.2009, 03:53
Ну тогда наверное все же имя сервиса mysqld должно быть, например:
servise mysqld restart

Впрочем это уже все несколько Оффтоп, думаю относительно необходимости мониторинга MySQL сторонними средствами локально уже выяснили...

Чтобы делать подобное удаленно (ну если перезапуск не удался, если случилось уже что-то страшное с ним) нужны совсем другие средства, тот же nagios или подобные. Но это уже тема совсем другая, и полагаю не для этого топа.

Yeros
09.02.2009, 04:19
спасибо

Чтобы делать подобное удаленно (ну если перезапуск не удался, если случилось уже что-то страшное с ним) нужны совсем другие средства, тот же nagios или подобные

насколько я зная монит и есть из этой серии

servise mysqld restart

[root@server init.d]# servise mysqld restart
-bash: servise: command not found

прости что мы ищет ? как сделать рестарт * ?
то это /etc/rc.d/init.d/mysqld restart


Впрочем это уже все несколько Оффтоп, думаю относительно необходимости мониторинга MySQL сторонними средствами локально уже выяснили...

Чтобы делать подобное удаленно (ну если перезапуск не удался, если случилось уже что-то страшное с ним
прости я что означает локально и удаленно?
это что не на тот же сервер ставится ?

или ты имел ввиде, что nagios или монит это от сторонных прозводителей ?

Так в том-то и дело. стандартные инит-скрипты зупускают сервис, управляют им, MySQL например. Далее, скрипт mysqld_safe (У меня имено он используется по умолчанию: use_mysqld_safe=1 ) именно перезапускает его в случае необходимости:
прости, если я правильно понял mysqld_safe это стандартные инит-скрипт который надо ставить на сервер и запустить его ?

Тогда можно линк как его ставить (надеюсь будет не сложнее чем монит ставить)

Hubbitus
09.02.2009, 11:23
-bash: servise: command not found
ну service разумеется. Уж описку-то ближе к утру можно простить.

прости что мы ищет ? как сделать рестарт * ?
то это /etc/rc.d/init.d/mysqld restart
Ну в общем да, только через service более "правильный" способ.
насколько я зная монит и есть из этой серии
На сколько я понял из краткого прочтения описания он работает только с локальными сервисами. Я ошибся?

Локально - это мониторинг на одной машине, сервере. Удаленно это мониторинг скажем того же MySQL с одного хоста на другом(других).

прости, если я правильно понял mysqld_safe это стандартные инит-скрипт который надо ставить на сервер и запустить его ?
Стандартный, это значит стандартный! То есть идущий в rpm-пакете MySQL. Еще раз повторяю, у меня после установки, он стартует именно так, ничего не настраивал.
Посмотрите в /etc/rc.d/init.d/mysqld (это стандартный init-скрипт на bash)

Yeros
16.02.2009, 23:13
Локально - это мониторинг на одной машине, сервере. Удаленно это мониторинг скажем того же MySQL с одного хоста на другом(других).
кстати, что касается монит, то это локальное средство.


Чтобы делать подобное удаленно (ну если перезапуск не удался, если случилось уже что-то страшное с ним) нужны совсем другие средства, тот же nagios или подобные.
разве nagios делает перезапуск ?
Вот читаю мануал .. ничего такого не заметил

Nagios — программа с открытым кодом, предназначенная для мониторинга компьютерных систем и сетей. Она следит за указанными узлами и службами, и оповещает администратора в том случае, если какие-то из служб прекращают (или возобновляют) свою работу.
или я не прав ?

Hubbitus
16.02.2009, 23:32
У него ( nagios ) есть event'ы, которые можно настраивать в ответ на произошедшие события. Впрочем это все я читал...
Я именно недавно озаботилдся подобным вопросом и сам сейчас разбираюсь с этими средствами подробнее. Скажу честно, с нагиосом моя любовь не состоялась с первого знакомства... В данный момент рассматриваю Zabbix. Впрочем это все уже ну никак не относится к изначальной теме про Monit.

SinClaus
17.02.2009, 19:42
Zabbix настраивается гораздо проще, чем Nagios. Единственное, что не понравилось, это то, что стандартные агенты не отслеживают температуру и данные smart.
И при приемлемой частоте обновлений данных трафик жрет со страшной силой. По snmp не пробовал.