标签: monit

PHP-FPM,Monit,ping/status页面,Apache

我试图用Monit监视我的FPM守护进程,我假设由于重生和PID改变,以下不是最好的技术?

check process php5-fpm with pidfile "/var/run/php5-fpm.pid"
    start = "/etc/init.d/php5-fpm start"
    stop = "/etc/init.d/php5-fpm stop"
    if failed port 80 protocol http then restart
Run Code Online (Sandbox Code Playgroud)

从我可以收集的内容来看,更好的方法是使用FPM ping URL,但我无法使用Apache激活它们.

除了设置FPM池选项之外,Apache/PHP-FPM中究竟需要做什么:

pm.status_path =/status ping.path =/ping

我希望能让我简单地去:

http://mydomain.com/status

拉起状态页面.当我转到此URL时,我收到404错误.我假设我需要某种处理程序来重定向/ status和/ ping到我的本地主机端口9000上的FPM服务器.我该怎么做?

php linux apache monit

3
推荐指数
1
解决办法
7815
查看次数

nginx和monit web界面 - 如何在domain.com/monit和domain.com上进行监控

我在我的ec2实例上使用monit而且我是nginx的新手.下面是我的nginx配置文件:

server {
  listen 80;
  server_name 127.0.0.1;
  location / {
    proxy_pass 127.0.0.1:2812;
    proxy_set_header Host $host;
  }
}
Run Code Online (Sandbox Code Playgroud)

所以..如果我去domain.com,我看到monit.如何修改上面的代码,我可以在domain.com/monit上看到monit?

谢谢

nginx monit

3
推荐指数
2
解决办法
6254
查看次数

终端说delayed_job开始,但没有做任何事情

我有一个应用程序在我的本地机器上完美运行,现在正在部署它.我有VPS全部设置,它也非常有效.我的问题来自无法启动delayed_job.我做了"ruby脚本/ delayed_job启动RAILS_ENV =生产",同时SSHd到应用程序,它返回"delayed_job:进程与pid 11547开始." 当我在htop中查找过程时,我找不到它.

所以我挖了一遍,读到Monit可以保持delayed_job继续.我把它设置了,希望我能以这种方式启动delayed_job.但是没有delayed_job.pid,所以我没有走得太远.我最终在其中设置了nginx和mysql,并且想完成设置delayed_job.缺少delayed_job.pid会妨碍.

当我通过SSH连接到应用程序并运行"rake jobs:work RAILS_ENV = production"时,一切正常.所以我很确定应用程序本身很好.

我正在使用collectiveidea的delayed_job.谢谢你的帮助.

ruby-on-rails monit delayed-job

2
推荐指数
1
解决办法
1695
查看次数

rvm monit delayed_job

我试图使用monit运行delayed_job,但它无法作为rvm的路径运行(每个用户的本地rvm安装)不可用于该命令.我的应用程序是带有bundler的rails2应用程序.Monit无法找到捆绑包.有没有人有任何建议,我怎么能告诉monv的rvm路径?

我收到了错误

[rails@x-rws1 current]$ monit start delayed_job -c config/delayed_job.monitrc 
'delayed_job' start: /usr/bin/env
'delayed_job' failed to start
no such file to load -- bundler
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/home/rails/public_html/myapp/current/config/../config/preinitializer.rb:3
/home/rails/public_html/myapp/current/config/boot.rb:28:in `load'
/home/rails/public_html/myapp/current/config/boot.rb:28:in `preinitialize'
/home/rails/public_html/myapp/current/config/boot.rb:10:in `boot!'
/home/rails/public_html/myapp/current/config/boot.rb:123
/home/rails/public_html/myapp/current/config/environment.rb:12:in `require'
/home/rails/public_html/myapp/current/config/environment.rb:12
/home/rails/public_html/myapp/current/script/delayed_job:3:in `require'
/home/rails/public_html/myapp/current/script/delayed_job:3
Run Code Online (Sandbox Code Playgroud)

我的config/delayed_job.monitrc

set daemon  120

check process delayed_job with pidfile /home/rails/public_html/myapp/shared/pids/delayed_job.pid
  start program = "/usr/bin/env RAILS_ENV=staging /home/rails/public_html/myapp/current/script/delayed_job start"
  stop program = "/usr/bin/env RAILS_ENV=staging /home/rails/public_html/myapp/current/script/delayed_job stop"
Run Code Online (Sandbox Code Playgroud)

和script/delayed_job可执行文件

#!/usr/bin/env ruby

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
Delayed::Command.new(ARGV).daemonize
Run Code Online (Sandbox Code Playgroud)

monit delayed-job rvm

2
推荐指数
1
解决办法
3423
查看次数

将monit作为受限用户运行,并使其监视需要root权限的进程

我有一个用Ruby编写的特定脚本需要root权限.大多数其他流程不需要,因此在Monit中很容易设置.不是这个.

服务器需要在386处侦听,此端口仅适用于root.我不会详细说明为什么,因为1)我不是一个低级别的人,2)到目前为止使用sudo时工作正常.

monit配置文件很简单,如下所示:

set logfile syslog facility LOG_daemon # Default facility is LOG_USER
set mailserver smtp.sendgrid.net
        username "blah", password "blah"
        with timeout 20 seconds
set alert blah@bleh.com
set logfile /home/deploy/monit.log


check process ldapserver
     with pidfile /var/pids/ldap_server.pid
     start program = "/usr/local/bin/ruby /var/lib/ldap_server.rb"
     stop program = "/bin/sh"
Run Code Online (Sandbox Code Playgroud)

注意:我已将/ bin/sh放入停止程序中,因为此过程没有停止程序.

如果我这样说:

start program = "/usr/local/bin/ruby /var/lib/ldap_server.rb"
Run Code Online (Sandbox Code Playgroud)

它无法启动.没有提示.

start program = "/usr/bin/sudo -u deploy /usr/local/bin/ruby /var/lib/ldap_server.rb
Run Code Online (Sandbox Code Playgroud)

也失败了.没有输出.

start program = "/bin/su deploy -c '/usr/local/bin/ruby /var/lib/ldap_server.rb'
Run Code Online (Sandbox Code Playgroud)

无法启动.

我也尝试使用> ~/out.log 2 > &1捕获stderr和stdout来重定向输出,但它似乎不起作用.

现在,我在部署用户下开始监控,这是受限制的.所以,我需要以某种方式以root身份运行ldap服务器,但事实证明这很难做到. …

bash privileges sudo su monit

2
推荐指数
1
解决办法
5553
查看次数

Monit无法启动流程

我编写了一个可以正常启动和停止服务器的脚本.

#!/bin/bash

PID_FILE='/var/run/rserve.pid'

start() {
       touch $PID_FILE
       eval "/usr/bin/R CMD Rserve"
       PID=$(ps aux | grep Rserve | grep -v grep | awk '{print $2}')
       echo "Starting Rserve with PID $PID"
       echo $PID > $PID_FILE
}
stop () {
       pkill Rserve
       rm $PID_FILE
       echo "Stopping Rserve"
}

case $1 in
    start)
       start
       ;;
    stop)  
       stop
       ;;
     *)  
       echo "usage: rserve {start|stop}" ;;
 esac
 exit 0
Run Code Online (Sandbox Code Playgroud)

如果我通过运行启动它

rserve start
Run Code Online (Sandbox Code Playgroud)

然后启动monit它将正确捕获PID和服务器:

The Monit daemon 5.3.2 uptime: 0m 

Remote Host 'localhost'
  status …
Run Code Online (Sandbox Code Playgroud)

bash monit

2
推荐指数
1
解决办法
1万
查看次数

使用Monit监视python程序

我正在使用Monit来监控系统.我有一个我想要监视的python文件,我知道我需要创建一个包装脚本,因为python不会生成pid文件.我按照本网站上的说明操作,但是我无法启动脚本.我之前从未创建过包装器脚本,所以我认为我的脚本中有错误.来自monit的日志说"启动失败"

Monit规则

check process scraper with pidfile /var/run/scraper.pid
   start = "/bin/scraper start"
   stop = "/bin/scraper stop"
Run Code Online (Sandbox Code Playgroud)

包装脚本

#!/bin/bash

PIDFILE=/var/run/scraper.pid

case $1 in
   start)
      echo $$ > ${PIDFILE};
      source /home
      exec python /home/scraper.py 2>/dev/null
   ;;
   stop)
      kill `cat ${PIDFILE}` ;;
   *)
      echo "usage: scraper {start|stop}" ;;
esac
exit 0
Run Code Online (Sandbox Code Playgroud)

monit

2
推荐指数
1
解决办法
6897
查看次数

monit坚持要对一个运行良好的程序进行计时

我在使用monit监控程序时遇到问题.

我在覆盆子pi上运行它,从源代码构建了monit 5.11; 我尝试使用存储库中的版本,但它是5.4并且不支持我想要的一些语法.

我试图遵循"问:我有一个程序不会创建自己的pid文件.由于monit要求所有程序都有一个pid文件,我该怎么办?" 在FAQ中输入.

这是我的start_sensors.sh脚本(它只运行我的python程序,而不是wiki示例中的java程序):

#!/bin/bash

case $1 in
  start)
     echo $$ > /var/run/start_sensors.pid;
     exec 2>&1 /usr/bin/python /home/pi/temperature/post_temps.py 1>/tmp/post_temps.out
     ;;
   stop)
     kill `cat /var/run/start_sensors.pid` ;;
   *)
     echo "usage: start_sensors {start|stop}" ;;
esac
exit 0
Run Code Online (Sandbox Code Playgroud)

这是我的/etc/monit/monitrc条目:

# Run temperature sensor monitor
check process start_sensors.sh with pidfile /var/run/start_sensors.pid
   start = "/home/pi/temperature/start_sensors.sh start"
   stop = "/home/pi/temperature/start_sensors.sh stop"
Run Code Online (Sandbox Code Playgroud)

监视日志中的输出如下所示:

[EST Jan 24 14:21:16] info     : 'raspberrypi' Monit reloaded
[EST Jan 24 14:21:16] error    : 'start_sensors.sh' process is not running …
Run Code Online (Sandbox Code Playgroud)

monit

2
推荐指数
1
解决办法
2620
查看次数

Monit 是否支持多个相同格式的电子邮件收件人?

我使用 monit 来监控服务的状态,当服务关闭时,我想以相同的格式向多个收件人发送警报电子邮件。这是我的 monit 配置的一部分:

set mail-format { from: no-reply@gmail.com }
check host hostA with address hostA
  alert userA@gmail.com
  MAIL-FORMAT {     # use local format
     subject: redis is down on hostA
     message:   redis is down on hostA on port 6379

  Yours sincerely,
  monit
  }
  alert userB@gmail.com
  MAIL-FORMAT {     # use local format
     subject: redis is down on hostA
     message:   redis is down on hostA on port 6379

  Yours sincerely,
  monit
  }
  if failed port 6379 retry 3 then exec "/monit/scripts/myscripts.sh" …
Run Code Online (Sandbox Code Playgroud)

monit

2
推荐指数
1
解决办法
5890
查看次数

配置monitrc监视节点js app进程,找不到运行屏幕ec2 linux的节点app pidfile

我在我的ec2 linux实例上通过屏幕运行我的app.js(节点js应用程序).我正在尝试配置我的monitrc文件,我需要app pidfile.它不在:/ var/run(并且没有/ var/www)

如果有人知道pidfile在哪里或者我怎么能找到它,真的很感激..
谢谢!

linux pid gnu-screen monit node.js

1
推荐指数
1
解决办法
1837
查看次数

标签 统计

monit ×10

bash ×2

delayed-job ×2

linux ×2

apache ×1

gnu-screen ×1

nginx ×1

node.js ×1

php ×1

pid ×1

privileges ×1

ruby-on-rails ×1

rvm ×1

su ×1

sudo ×1