Monit& Rails sunspot_solr

时间:2016-03-03 18:53:15

标签: ruby-on-rails ubuntu solr monit

我已设置monit来监控我的sunspot_solr进程,这似乎最初有效。如果我用sudo service monit restart重启monit服务,我的太阳黑子进程开始了:

 ps aux | grep sunspot

root      4086  0.0  0.0   9940  1820 ?        Ss   12:41   0:00 bash ./solr start -f -s /ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr/solr
root      4137 45.1  4.8 1480560 185632 ?      Sl   12:41   0:09 java -server -Xss256k -Xms512m -Xmx512m -XX:NewRatio=3 -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=8 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ConcGCThreads=4 -XX:ParallelGCThreads=4 -XX:+CMSScavengeBeforeRemark -XX:PretenureSizeThreshold=64m -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=50 -XX:CMSMaxAbortablePrecleanTime=6000 -XX:+CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -XX:CMSFullGCsBeforeCompaction=1 -XX:CMSTriggerPermRatio=80 -verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr/server/logs/solr_gc.log -Djetty.port=8983 -DSTOP.PORT=7983 -DSTOP.KEY=solrrocks -Duser.timezone=UTC -Djetty.home=/ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr/server -Dsolr.solr.home=/ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr/solr -Dsolr.install.dir=/ebs/staging/shared/bundle/ruby/2.3.0/gems/sunspot_solr-2.2.4/solr -jar start.jar --module=http
ubuntu    4192  0.0  0.0  10460   936 pts/3    S+   12:41   0:00 grep --color=auto sunspot

但是,我也在运行tail -f /var/logs/monit.log并同时看到这个:

[CST Mar  3 12:42:54] error    : 'sunspot_solr' process is not running
[CST Mar  3 12:42:54] info     : 'sunspot_solr' trying to restart
[CST Mar  3 12:42:54] info     : 'sunspot_solr' start: /usr/bin/sudo
[CST Mar  3 12:43:25] error    : 'sunspot_solr' failed to start

另外,为了确保monit可以实际重启sunspot_solr进程,我运行sudo kill -9 <the pid>并且monit无法重启sunspot_solr:

[CST Mar  3 12:44:25] error    : 'sunspot_solr' process is not running
[CST Mar  3 12:44:25] info     : 'sunspot_solr' trying to restart
[CST Mar  3 12:44:25] info     : 'sunspot_solr' start: /usr/bin/sudo
[CST Mar  3 12:44:55] error    : 'sunspot_solr' failed to start

显然我的monit-solr_sunspot.conf文件出了问题,但是现在搞乱了几个小时后,我很难过:

check process sunspot_solr with pidfile /ebs/staging/shared/pids/sunspot-solr.pid
  start program = "/usr/bin/sudo -H -u root /bin/bash -l -c 'cd /ebs/staging/releases/20160226191542; bundle exec sunspot-solr start -- -p 8983 -d /ebs/staging/shared/solr/data --pid-dir=/ebs/staging/shared/pids'"
  stop program = "/usr/bin/sudo -H -u root /bin/bash -l -c 'cd /ebs/staging/releases/20160226191542; bundle exec sunspot-solr stop -- -p 8983 -d /ebs/staging/shared/solr/data --pid-dir=/ebs/staging/shared/pids'"

我已经调整了这个monit脚本以满足我的需求:Sample sunspot-solr.monit但我仍然没有运气!

更新 我已经monit成功重新启动sunspot_solr如果我杀了它,但它仍然会产生错误,它无法在monit.log文件中重新启动。

1 个答案:

答案 0 :(得分:0)

我认为monit以root身份运行。您可能不想同时使用sudo,因为它会提示输入密码,因为monit不需要密码。