Monit mendaftar Apache sebagai Tidak Dipantau

11

Saya baru saja menginstal dan mengkonfigurasi monit sesuai dengan dokumentasi monit . Semua layanan selain dari Apache terdaftar sebagai Berjalan, tetapi Apache mengatakan Tidak Dipantau .

Baris yang relevan dalam konfigurasi monit adalah:

check process apache with pidfile /var/run/httpd.pid
        group www
        start program = "/etc/init.d/httpd start"
        stop program = "/etc/init.d/httpd stop"
        if failed host localhost port 80
        protocol http then restart
        if 5 restarts within 5 cycles then timeout

Saya dapat mengakses http: // localhost / server-status dan http: // localhost baik dari server. Monit mendaftar Mode pemantauan untuk Apache sebagai aktif .

Server menjalankan CentOS 5.4.

File PID benar untuk server httpd induk:

[server ~]$ cat /var/run/httpd.pid
2905
[server ~]$ ps auxc | grep httpd
root      2905  0.0  0.9  26952  4808 ?        Ss   11:36   0:00 httpd
dunxd
sumber

Jawaban:

13

Pastikan isi file pid cocok dengan pid proses master Apache (yaitu, httpdproses yang berjalan sebagai root). Mungkin file pid sudah basi.

Jika basi, dapatkan pid dari proses master Apache, dan lakukan sesuatu seperti echo 1234 > /var/run/httpd.pid, di mana 1234pid tersebut.

Setelah itu, jalankan monit monitor apacheuntuk me-restart pemantauan dari layanan tersebut.

cjc
sumber
2
File PID benar, tetapi menjalankan monit monitor apachememulainya, dan sekarang tampaknya berfungsi dengan baik setelah me-restart layanan. Saya juga harus mencoba mengklik tombol Aktifkan Monitor pada antarmuka web.
dunxd
1

Anda tidak menyediakan versi OS / distribusi, tetapi pada CentOS 6, file PID yang harus Anda pantau berada di: /var/run/httpd/httpd.pid

Jadi ubah ke:

check process apache with pidfile /var/run/httpd/httpd.pid

Kebetulan, CentOS 5 memiliki file PID Apache di: /var/run/httpd.pid

Sunting: Juga kutip path PID.

Ada catatan di milis Monit tentang tes protokol yang Anda gunakan:

http://lists.gnu.org/archive/html/monit-general/2004-12/msg00057.html

Anda mungkin harus memberikan nama host atau nama situs jika Anda menggunakan host virtual berbasis nama.

putih
sumber
Ini CentOS 5.4. File PID sudah benar.
dunxd
Menggunakan konfigurasi Anda pada server CentOS 5, saya mendapatkanProcess 'apache' status Does not exist monitoring status monitored
ewwhite
Di mana Anda melihat output itu?
dunxd
Anda harus mengutip jalur pidfile Anda "/var/run/httpd/httpd.pid". Juga lihat catatan yang saya tempatkan di jawaban awal tentang kemungkinan kebutuhan untuk direktif VirtualHosts.
ewwhite
Tidak ada bedanya dikutip atau tidak.
dunxd