Nagios adalah salah satu server open source terbaik dan solusi pemantauan jaringan yang tersedia. Dengan menggunakan kerangka kerja nagios yang fleksibel, Anda dapat memantau hampir semua hal (termasuk basis data dan aplikasi khusus). Artikel ini, menggunakan 4 langkah sederhana, menjelaskan cara menyiapkan definisi kontak yang akan mendapatkan pemberitahuan saat host atau layanan mengalami masalah.
Sebelumnya kita juga membahas tentang cara menyiapkan Nagios dan memantau server Windows, memantau Server Linux, memantau sesi VPN, dan memantau sakelar jaringan.
1. Tentukan Template Kontak Generik di templates.cfg
Instalasi Nagios memberikan template kontak generik default yang dapat digunakan sebagai referensi untuk membangun kontak Anda. Harap dicatat bahwa semua arahan yang disebutkan dalam template kontak umum di bawah ini adalah wajib. Jadi, jika Anda memutuskan untuk tidak menggunakan definisi template kontak generik di kontak, Anda harus mendefinisikan sendiri semua definisi wajib ini di dalam kontak Anda.
Kontak generik berikut sudah tersedia di /usr/local/nagios/etc/objects/templates.cfg. Juga, templates.cfg disertakan dalam nagios.cfg secara default seperti yang ditunjukkan di bawah ini.
Harap diperhatikan bahwa salah satu direktif yang disebutkan dalam templates.cfg ini dapat ditimpa saat Anda mendefinisikan kontak nyata menggunakan template generik ini.
# grep templates /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
Note: generic-contact is available under
/usr/local/nagios/etc/objects/templates.cfg
define contact{
name generic-contact
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
register 0
}
- Nama – Ini mendefinisikan nama template kontak (generic-contact).
- periode_pemberitahuan_layanan – Ini menentukan kapan nagios dapat mengirim pemberitahuan tentang masalah layanan (misalnya, Apache down). Secara default ini adalah 24×7 periode waktu, yang didefinisikan di bawah /usr/local/nagios/etc/objects/timeperiods.cfg
- host_notification_period – Ini menentukan kapan nagios dapat mengirim pemberitahuan tentang masalah host (misalnya, server mogok). Secara default, ini adalah jangka waktu 24×7.
- service_notification_options – Ini menentukan jenis pemberitahuan layanan yang dapat dikirim. Secara default, ini mendefinisikan semua status layanan yang mungkin termasuk kejadian mengepak. Ini juga termasuk aktivitas waktu henti layanan terjadwal.
- host_notification_options – Ini menentukan jenis pemberitahuan host yang dapat dikirim. Secara default, ini mendefinisikan semua kemungkinan status host termasuk kejadian flapping. Ini juga termasuk aktivitas waktu henti host yang dijadwalkan.
- service_notification_commands – Secara default ini mendefinisikan bahwa kontak harus mendapatkan pemberitahuan tentang masalah layanan (misalnya, database down) melalui email. Anda juga dapat menentukan perintah tambahan dan menambahkannya ke direktif ini. Misalnya, Anda dapat menentukan perintah notify-service-by-sms Anda sendiri.
- host_notification_commands – Secara default ini mendefinisikan bahwa kontak harus mendapatkan pemberitahuan tentang masalah host (misalnya, host down) melalui email. Anda juga dapat menentukan perintah tambahan dan menambahkannya ke direktif ini. Misalnya, Anda dapat menentukan perintah notify-host-by-sms Anda sendiri.
2. Tentukan Kontak Individu di contacts.cfg
Setelah Anda mengonfirmasi bahwa templat kontak generik ditentukan dengan benar, Anda dapat mulai menentukan definisi kontak individual untuk semua orang di organisasi Anda yang akan pernah menerima pemberitahuan apa pun dari nagios. Harap perhatikan bahwa hanya dengan menentukan kontak tidak berarti mereka akan mendapatkan pemberitahuan. Nanti Anda harus mengaitkan kontak ini ke definisi layanan atau host seperti yang ditunjukkan di bagian selanjutnya di bawah ini. Jadi, jangan ragu untuk menentukan semua kemungkinan kontak di sini. (misalnya, Pengembang, DBA, Sysadmin, Manajer TI, Manajer Layanan Pelanggan, Manajemen Puncak, dll.)
Note: Define these contacts in /usr/local/nagios/etc/objects/contacts.cfg
define contact{
contact_name sgupta
use generic-contact
alias Sanjay Gupta (Developer)
email sgupta@thegeekstuff.com
pager 333-333@pager.thegeekstuff.com
}
define contact{
contact_name jbourne
use generic-contact
alias Jason Bourne (Sysadmin)
email jbourne@thegeekstuff.com
} 3. Tentukan Grup Kontak dengan Beberapa Kontak di contacts.cfg
Setelah Anda menentukan masing-masing kontak, Anda juga dapat mengelompokkannya untuk mengirim pemberitahuan yang sesuai. Misalnya, hanya DBA yang perlu diberi tahu tentang definisi layanan turun database. Jadi, grup db-admin mungkin diperlukan. Juga, mungkin hanya administrator sistem Unix yang perlu diberi tahu saat Apache mati. Jadi, grup unix-admin mungkin diperlukan. Jangan ragu untuk menentukan grup sebanyak yang Anda pikir diperlukan. Nanti Anda dapat menggunakan grup ini dalam definisi layanan dan host individual.
Note: Define contact groups in /usr/local/nagios/etc/objects/contacts.cfg
define contactgroup{
contactgroup_name db-admins
alias Database Administrators
members jsmith, jdoe, mraj
}
define contactgroup{
contactgroup_name unix-admins
alias Linux System Administrator
members jbourne, dpatel, mshankar
} 4. Lampirkan Grup Kontak atau Kontak Perorangan ke Layanan dan Definisi Host
Setelah Anda menentukan masing-masing kontak dan grup kontak, sekarang saatnya untuk mulai melampirkannya ke host atau definisi layanan tertentu seperti yang ditunjukkan di bawah ini.
Note: Following host is defined under
/usr/local/nagios/etc/objects/servers/email-server.cfg.
This can be any host definition file.
define host{
use linux-server
host_name email-server
alias Corporate Email Server
address 192.168.1.14
contact_groups unix-admins
}
Note: Following is defined under
/usr/local/nagios/etc/objects/servers/db-server.cfg.
This can be any host definition file.
define service{
use generic-service
host_name prod-db
service_description CPU Load
contact_groups unix-admins
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name prod-db
service_description MySQL Database Status
contact_groups db-admins
check_command check_mysql_db
}