Титла: Monitoring на процес Публикувано от: abadon в Jun 30, 2008, 17:14 Здравейте.
Някой може ли да ми даде идея или софтуер как се прави следното нещо. Имам един сървър на който върви един java базиран уеб сайт обаче чат пад през неопределен период от време поради някаква причина java-та крашва или зависва и съответно сайта спира да работи. И като забележа, че сайта е спрял и влизам на машината рънвам скрипта който стартира сайта и нещата се оправят. Ама както се сещате това е доста досадна работа, тъй като постоянно трябва да го наблюдавам и т.н. А някой път всичко си работи по 20-30 дена без проблем а някой път крашва за 1-2 дена..... Странно че няма и никакви логове за нещо нередно на машината.... Мисля че с един скрипт който да се рънва от cron-а на един час и да проверява ако има процес java скрипта да умира ако няма такъв процес да рънва скрипта за старт...... Предполагам че това се прави лесно на bash ама нещо не мога да се справя сам На теория са ми ясни нещата "ps -A | grep java" ако се върне резултат спри ако не се върне резултат exec скрипта.....Ама на практика не мога да го напиша Предварително благодаря на всички които ще ми помогнат. Титла: Monitoring на процес Публикувано от: zeridon в Jun 30, 2008, 17:18 Силно препоръчвам monit http://www.tildeslash.com/monit/
На мен поне ми върши прекрасна работа. Може да се настройва много подробно да проверява за какво ли не, да имаш различни правила в зависимост от време, натоварване и какво ли още не Титла: Monitoring на процес Публикувано от: Йордан в Jun 30, 2008, 23:03 nagios+snmp
Титла: Monitoring на процес Публикувано от: ANTIADMIN в Jun 30, 2008, 23:57 nagios не е ли за много по-големи работи
Все едно да сложиш СОТ на бостана/не знам как се пише тази дума/. Титла: Monitoring на процес Публикувано от: teleport в Jul 01, 2008, 01:21
Изпълняваш примерно така: $ check firefox firefox is NOT running $ check firefox-bin firefox-bin is running Титла: Monitoring на процес Публикувано от: abadon в Jul 01, 2008, 09:46 За моменнта ще се възползвам от съвета на teleport и ще се опитам да си направя скрипт който да ползва неговия и когато той ми върне "NOT running" да стартира скрипта за старт на сайта.....
За monit не бях чувал изглежда доста добро решение, което ще разгледам за в бъдеще но ми се вижда сложничко за конфигуриране поне в началото. Сигурно защото нямам опит с него. nagios+snmp си мислех, но това е супер сложно за конфигураре иначе е супер ама за една такава задачка да се мъча с него ми се вижда глупаво.... Титла: Monitoring на процес Публикувано от: teleport в Jul 01, 2008, 10:15 Не е необходим нов скрипт. Ето ти реално работещ вариант, който следи named ( centos/redhat/fedora платформа ).
Записшваш скрипта примерно като /root/check.
# chmod u+x /root/check Добавяш в cron-а на root: */30 * * * * /root/check named Така на всеки 30 минути ще се проверява наличието на процес с име named и ако го няма ще се рестартира. Това обаче няма да ти помогне ако процеса увисне, т.е. има го в паметта но все пак не работи. Титла: Monitoring на процес Публикувано от: trip в Jul 01, 2008, 10:37 По добре се научи да програмираш
Пример 1: #!/bin/sh if [ "` ps xa|grep apache2| grep -v grep|wc -l| awk '{print $1}' `" = "0" ] ;then /usr/sbin/apache2ctl start else echo "httpd is running" fi Този ред ps xa|grep apache2| grep -v grep|wc -l| awk '{print $1}' брои процесите ако са 0 пуска апача ако не казва че е пуснат Но има един недостатък ако е забил апача пак ти казва че е пуснат Пример 2: #!/bin/sh lynx=/usr/local/bin/lynx actl=/usr/local/apache/bin/apachectl ntry=1 while [ "$ntry" -lt "5" ]; do $lynx -dump localhost/server-status > /dev/null 2> /dev/null && break echo "Apache server is not responding! Restarting...($ntry)" ktry=1 while [ $ktry -lt 5 ]; do ($actl stop ; sleep 10; $actl stop) | grep "not running" > /dev/null 2> /dev/null && break; echo "Stop failed...($ktry)" sleep 5 ktry=$((ktry + 1)) done $actl start ntry=$((ntry + 1)) sleep 20 done Оставам те сам да разгадаеш тези редове Последния скрипт е според пътищата във фреебсд но и за линукс са малки разликити Титла: Monitoring на процес Публикувано от: zeridon в Jul 01, 2008, 10:57 Подобрение на скрипта ... вместо магийките със ps, awk и grep може да се ползва pgrep.
Ако е достатъчно нова версията може дори pgrep -c Титла: Monitoring на процес Публикувано от: Nikolavp в Jul 01, 2008, 12:03 Добре защо просто не ползваш inittab с една директива за respawn ?. Не е много културно решение, но поне се знае, че работи както трябва.
EDIT: Ето ти още малко по темата(човека явно предпочита monit ): http://lists.apple.com/archives/unix-porting/2003/Sep/msg00013.html Титла: Monitoring на процес Публикувано от: Gaara в Jul 01, 2008, 13:58 С две ръце за монит . Предполагам, че ползваш tomcat. Редактирай /etc/monit.conf като добавяш собствен път (навик ми е), който да сочи към директорията, в която ще се съдържа конфига на процеса, който ще следиш (в моят случай е tomcat).
След това, създаваш конфигурационният файл на процеса, който искаш да следиш, където искаш да седи (горе съм дефинирал, че ще е в /root/monit)
Трябва да го пипнеш спрямо твоята машина Успех и всичко най-свежо от мен. Титла: Monitoring на процес Публикувано от: gat3way в Jul 01, 2008, 15:43 Няма ли да е най-добре вместо това да се разбере каква е причината са зависването? Примерно логовете от tomcat-а или какъвто и да е там application server-а не казват ли нещо по въпроса?
Титла: Monitoring на процес Публикувано от: abadon в Jul 02, 2008, 09:57
Благодаря. Този първия скрипт ми свърши чудесна работа. А иначе сериозно се замислям да се науча да програмирам ама все не остава време Титла: Monitoring на процес Публикувано от: abadon в Jul 02, 2008, 13:11
Да точно томкат ползвам.... Благодаря за подробното описание когато имам време ще го пробвам ама сега ми трябваше някакво бързо решение, тъй като нямам никакво свободно време, тъй като другата седмица ще се явявам за CCSI и CCNP сертификати..... Титла: Monitoring на процес Публикувано от: VladSun в Jul 02, 2008, 13:48 |