Jump to content
Cesbo Community
  • Announcements

    • RadioSintetica

      Information   10/21/18

      Registration on the forum temporarily closed! For support requests, please contacat us: https://cesbo.com/help
      Our community in Telegram: @cesbo_en (English language) , @cesbo_ru (Russian language) , @cesbo_es (Spanish Language)
Sign in to follow this  
Andrey Dyldin

Monit

Recommended Posts

Monit - средство для мониторинга Unix-систем.

 

Объекты контроля:

  • процессы
  • файлы
  • каталоги
  • файловая система
  • ресурсы системы

Возможные действия:

  • alert - уведомление по email
  • start - запуск приложения
  • stop - остановка приложения
  • restart - перезапуск
  • exec - выполнить произвольную программу
  • unmonitor - остановить наблюдение

Пример конфига, контроль системы:

check system server1.local
   if loadavg (1min) > 4 then alert
   if memory usage > 75% then alert
   if cpu usage (user) > 90% then alert

Контроль процесса работает на основе pid-файла. Пример конфига:

check process astra0 with pidfile /var/run/astra0.pid
   start program = "/usr/bin/astra /etc/astra/0.lua"
   stop program = "/bin/sh -c 'kill `cat /var/run/astra0.pid`'"

Основные команды:

  • monit summary - состояние процессов
  • monit start astra0 - запуск сервиса astra0
  • monit stop astra0 - остановка сервиса astra0
  • monit restart astra0 - перезапуск astra0

Более подробная информация, на сайте разработчика.

Share this post


Link to post
Share on other sites

С оскамом сложнее, он ещё создаёт дочерний процесс.

Можно попробовать такой init-скрипт (/etc/init.d/oscam)

#!/bin/sh
### BEGIN INIT INFO
# Provides:          oscam
# Required-Start:    $network $syslog $named
# Required-Stop:     $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop oscam
### END INIT INFO

if [ -z "$1" ] ; then
   echo "Usage: $0 [start|stop]"
   exit 0
fi

PIDFILE="/var/run/oscam.pid"

if [ "$1" = "start" ] ; then
   /usr/bin/oscam -c /etc/oscam/oscam1 &
   PID=$!
   let PID=PID+1
   echo $PID >$PIDFILE
elif [ "$1" = "stop" ] ; then
   /bin/kill $(/bin/cat $PIDFILE)
   rm -f $PIDFILE
fi

pid увеличить на 1 - это pid создаваемого дочернего процесса, его надо завершить, тогда весь оскам остановится

 

ps. сам не пробовал, просто как вариант.

Share this post


Link to post
Share on other sites

#!/sbin/runscript

depend(){
   need net
   before monit
}

start() {
   ebegin "Starting oscam"
   start-stop-daemon --start --nicelevel 5 --quiet --user nut --make-pidfile --pidfile /var/run/oscam.pid --background --wait 500 --exec /opt/oscam/oscam -- -c /opt/oscam
   eend $? "Failed to start oscam"
}

stop() {
   ebegin "Stopping oscam"
   start-stop-daemon --stop --retry 20 --quiet --wait 500 --pidfile /var/run/oscam.pid
   eend $? "Failed to stop oscam"
}

 

check process oscam with pidfile /var/run/oscam.pid
   start program = "/etc/init.d/oscam restart" with timeout 20 seconds
   stop program = "/etc/init.d/oscam stop"
   group sys

 

Последние версии из svn похоже уже обходятся 1м процессом, но скрипт работает давно без проблем.

Share this post


Link to post
Share on other sites
А как мониторить оскам есть варианты? Вроде pid оскам не создает или не нашел где бы включить.

читайте мануалы monit. там можно мониторить без pid.

 

check process myprocessname
       matching "myprocessname"
       start program = "/etc/init.d/myproccessname start"
       stop program = "/usr/bin/killall myprocessname"

Share this post


Link to post
Share on other sites

cat /etc/monit/conf.d/oscam

set daemon 2 # seconds

#set logfile /var/log/monit.log

check process oscam with pidfile /var/run/oscam.pid

start program = "/bin/bash -c '/usr/local/bin/oscam -c /usr/local/etc -b -t /tmp/.oscam && pidof oscam > /var/run/oscam.pid'"

stop program = "/usr/bin/killall -9 oscam"

if totalcpu > 30% then restart

Share this post


Link to post
Share on other sites

Monit по имени процесса не всегда хорошо срабатывает.

 

В методе [uSER=29]ilya[/uSER] я бы заменил stop program на

stop program = "/bin/bash -c 'cat  /var/run/oscam.pid | xargs kill -9'"

так как может быть запущено несколько оскамов с разными конфигами

Share this post


Link to post
Share on other sites

Думаю нужно убрать scx8usb

update-rc.d scx8usb remove

ибо он кривой походу, либо не адаптирован под дистрибутив

если есть upstart - запускайте его от туда

 

потом переустановить монит на всякий

Share this post


Link to post
Share on other sites

Удобно немножко охладить пыл monit`a при загрузке, добавив

with start delay 180

к

set daemon 60

в основном конфиге.

 

60 - интервал проверок в нормальном режиме, 180 - время ничегониделания при запуске, в секундах.

Share this post


Link to post
Share on other sites

Есть у кого MONIT собранный для MOI , поделитесь плиз  :rolleyes:

Исполняемые файлы:

TBS MOI: https://cesbo.com/storage/public/monit/arm/moi/monit

TBS MOI Plus: https://cesbo.com/storage/public/monit/arm/moi-plus/monit

TBS MOI Pro: https://cesbo.com/storage/public/monit/arm/moi-pro/monit

Share this post


Link to post
Share on other sites

Прошу помощи, у кого-нибудь остались установочный пакет со скриптами для SCX8?

Заранее благодарю, весь инет перебрал, нет нигде

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×