Nagi memeriksa frekuensi layanan berdasarkan status layanan

9

Saya mencoba untuk mendeteksi disk lab dengan memantau si, jadi dari perintah vmstat. Saya memantau layanan lain menggunakan nagios dan pemeriksaan layanan terjadi setelah setiap 5 menit. Untuk layanan meronta-ronta ini saya ingin bahwa nagios harus memeriksanya setelah setiap 20 menit dan jika status yang dikembalikan tidak OK (yaitu peringatan atau kritis) maka layanan meronta-ronta harus diperiksa setiap 3 menit sampai status yang dikembalikan oleh layanan menjadi OK. Waktu pemeriksaan layanan untuk semua layanan lainnya tetap tidak berubah.

Saya baru mengenal Nagios dan bantuan apa pun akan sangat dihargai.

APZ
sumber

Jawaban:

14

Dengan asumsi bahwa interval_lengtharahan diatur ke 60 secara default:

$ grep interval_length /usr/local/nagios/etc/nagios.cfg 
# This value works of the interval_length you specify later.  If you leave
# actual seconds rather than a multiple of the interval_length variable.
interval_length=60

Untuk layanan khusus, Anda perlu mendefinisikan template berbeda untuk itu di /usr/local/nagios/etc/objects/templates.cfg:

define service{
        name                            special-service    
        ...
        max_check_attempts              3           
        normal_check_interval           20         
        retry_check_interval            3           
        notification_interval           60   
        ...   
        }

Perhatikan:

  • normal_check_interval: layanan ini diperiksa setiap 20 menit dalam kondisi normal
  • retry_check_interval: jumlah menit untuk menunggu sebelum menjadwalkan pemeriksaan ulang ketika layanan telah berubah ke kondisi non-OK. Perhatikan bahwa jika layanan telah diujicobakan max_attemptswaktu tanpa perubahan statusnya, itu akan berubah menjadi dijadwalkan pada check_intervaltingkat.

dan gunakan templat ini untuk layanan Anda:

define service{
    use                     special-service
    host_name               xx
    service_description     yy
    check_command           zz
    contact_groups          admins
    }

Anda juga mungkin perlu menentukan peningkatan layanan untuk mengubah notification_intervalberdasarkan pada kondisi layanan, seperti ini:

define serviceescalation{
    host_name               xx
    service_description     yy
    last_notification       0
    notification_interval   10
    escalation_options      [w,u,c]
    contact_groups          admins
    }

Ini berarti bahwa peningkatan layanan ini digunakan ketika layanan dalam status PERINGATAN, TIDAK DIKETAHUI, atau KRITIS. Dan Anda sekarang memiliki interval pemberitahuan baru: 10 menit.

kuanta
sumber