web-dev-qa-db-ja.com

Monitを動作させることができません

ローカルマシンでMonitを構成して、その動作を確認しようとしていますが、いくつか問題があります。

私がやろうとしているのは、Monitが正しく稼働しているという証拠を取得することですそしては実際に何かを監視しています。だから私の/etc/monit/monitrcのように見えます

set daemon  60
set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state
set eventqueue
    basedir /var/lib/monit/events
    slots 100
set httpd port 2812 and
    allow username:password

check process Apache2 with pidfile /usr/local/Apache/logs/Apache2.pid
    start program = "/etc/init.d/Apache2 start"
    stop program  = "/etc/init.d/Apache2 stop"
    if failed port 6543 protocol http then exec "/usr/bin/touch /tmp/monit"

私が正しく理解していれば、Apacheはポート6543(単なる乱数)でリッスンしないため、エラーが発生し、その結果、ファイル/tmp/monitを作成する必要があります。だから私は監視を開始します

Sudo service monit start
Sudo monit monitor Apache2

残念ながら、そのようなファイルは作成されません。代わりに、WebコンソールにApacheのエラーが表示されます-execution failed。ログには'Apache2' failed to start

私は何が間違っているのですか?

[〜#〜] edit [〜#〜]コメントで示唆されているように、私は詳細モードでmonitを実行しました。

monit -vv monitor Apache2

(コメントで提案された正確なコマンドは失敗しました)。出力は

Runtime constants:
 Control file       = /etc/monit/monitrc
 Log file           = /var/log/monit.log
 Pid file           = /var/run/monit.pid
 Debug              = True
 Log                = True
 Use syslog         = False
 Is Daemon          = True
 Use process engine = True
 Poll time          = 60 seconds with start delay 0 seconds
 Expect buffer      = 256 bytes
 Event queue        = base directory /var/lib/monit/events with 100 slots
 Mail from          = (not defined)
 Mail subject       = (not defined)
 Mail message       = (not defined)
 Start monit httpd  = True
 httpd bind address = Any/All
 httpd portnumber   = 2812
 httpd signature    = True
 Use ssl encryption = False
 httpd auth. style  = Basic Authentication

The service list contains the following entries:

Process Name          = Apache2
 Pid file             = /usr/local/Apache/logs/Apache2.pid
 Monitoring mode      = active
 Start program        = '/etc/init.d/Apache2 start' timeout 30 second(s)
 Stop program         = '/etc/init.d/Apache2 stop' timeout 30 second(s)
 Existence            = if does not exist 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert
 Pid                  = if changed 1 times within 1 cycle(s) then alert
 Ppid                 = if changed 1 times within 1 cycle(s) then alert
 Port                 = if failed localhost:6543 [HTTP via TCP] with timeout 5 seconds 1 times within 1 cycle(s) then exec '/usr/bin/touch /tmp/prova-monit' timeout 0 cycle(s) else if succeeded 1 times within 1 cycle(s) then alert

System Name           = system_andrea-Vostro-420-Series
 Monitoring mode      = active
3
Andrea

PIDファイルは通常/var/runの下にあります。

/etc/monit/monitrcで、/usr/local/Apache/logs/Apache2.pidの下のpidfileを参照しています。

/var/runにあるApacheのpidfileと一致するようにこれを変更してみてください。

次のいずれかになります。

/var/run/httpd.pid 

または

/var/run/Apache2.pid
3
에이바