ローカルマシンで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
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