By Henry Saptono <henry[at]nurulfikri.com> Network Monitoring System dengan Nagios By Henry Saptono <henry[at]nurulfikri.com> April 2008 Pendahuluan Konsep Network Monitoring System (NMS) sebenarnya sederhana yaitu system ekstra atau kumpulan system yang memiliki tugas mengamati/memonitor system­system terhadap kemungkinan terjadinya masalah­masalah pada system tersebut untuk dapat dideteksi secara dini. Sebagai contoh, suatu monitoring system dapat secara periodic menghubungi suatu web server untuk menjamin adanya respon dari web server, jika tidak ada respon maka monitoring system kemudian mengirimkan pesan atau notifikasi ke administrator. NMS bagian dari network management. Jika NMS diterapkan dengan tepat dan benar maka NMS dapat menjadi sahabat baik Anda, namun jika sebaliknya maka NMS akan menjadi 'malapetaka' bagi Anda. Misalkan , NMS tentunya akan mengirimkan pesan/notifikasi ke email Anda atau mengirimkan pesan SMS ke HP Anda ketika terjadi suatu masalah atau ketika terjadi krisis pada suatu system yang dimonitor. Jika Anda tidak tepat dalam menentukan kriteria krisis dari suatu system yang dimonitor maka bisa jadi Anda akan mendapatkan email atau pesan SMS terus menerus dari NMS. Hal­hal yang bakal dimonitoring dalam network tentunya akan sangat kompoleks, dan sistem monitoring yang baik seharusnya menyediakan history dan log yang memungkinkan kita membuat laporan, statistik dan graph dari masing­masing object yang dimonitoring sehingga sistem NMS yang digunakan memberikan kontribusi penuh dalam pendeteksian secara dini terhadap kemungkinan masalah­masalah yang timbul. Pertanyaan yang muncul adalah, adakah software atau program NMS yang memiliki fitur­fitur tersebut. Jawabannya Ada, salah satu software NMS yang terbaik dan open source yang dapat digunakan secara bebas di linux yaitu nagios (http://www.nagios.org/) Network Monitoring System dengan Nagios ­ halaman 1 By Henry Saptono <henry[at]nurulfikri.com> Nagios NMS Nagios adalah tool network monitoring system open source yang terbaik. Nagios bersifat modular, mudah digunakan, dan memiliki skalablitas tinggi. Modul atau plugin pada nagios sangat simple Anda pun dapat membuatnya guna melengkapi system checking pada nagios sesuai dengan kebutuhan Anda. Untuk mendownload source nagios klik url ini http://www.nagios.org/download/ Nagios awalnya didesain untuk berjalan pada sistem operasi Linux, namun dapat juga berjalan dengan baik hampir disemua sistem operasi unix like. Beberapa fitur­fitur yang tersedia pada Nagios diantaranya adalah: • Monitoring of network services (SMTP, POP3, HTTP, NNTP, PING, etc.) • Monitoring of host resources (processor load, disk usage, etc.) • Simple plugin design that allows users to easily develop their own service checks • Parallelized service checks • • • Ability to define network host hierarchy using "parent" hosts, allowing detection of and distinction between hosts that are down and those that are unreachable Contact notifications when service or host problems occur and get resolved (via email, pager, or user­defined method) Ability to define event handlers to be run during service or host events for proactive problem resolution • Automatic log file rotation • Support for implementing redundant monitoring hosts • Optional web interface for viewing current network status, notification and problem history, log file, etc. Instalasi Nagios Sebelum memulai instalasi pastikan Anda telah mendownload paket nagios dan pluggin yang terbaru dan paling stabil di http://www.nagios.org/download. Kemudian Anda harus terlebih dahulu menginstal aplikasi Apache HTTP server dan GD library serta library lainnya yang dibutuhkan saat instalasi dan saat nagios dijalankan nantinya. Sistem operasi linux yang digunakan disini diasumsikan Anda menggunakan Linux Fedora 6 atau CentOS 5. Berikut ini instruksi­instruksi instalasi nagios pada Fedora Core 6 (umumnya untuk distro lainnya tidak berbeda jauh): ● Membuat user dan group nagios, sebagai berikut: [root@labtop1 ~]# useradd -s /bin/false -d /opt/nagios nagios Network Monitoring System dengan Nagios ­ halaman 2 By Henry Saptono <henry[at]nurulfikri.com> ● Membuat grup baru dengan nama nagcmd untuk memungkinkan external commands di submit melalui web interface. Tambahkan user nagios dan user apache ke group nagcmd. [root@labtop1 ~]#groupadd nagcmd [root@labtop1 ~]#usermod -G nagcmd nagios [root@labtop1 ~]# usermod -G nagcmd apache ● ● Download nagios versi 3.0.1 (atau yang terbaru dan stabil), begitu juga plugin nagios versi 1.4.11 dari url ini http://www.nagios.org/download Kemudian Ekstrak nagios sebagai berikut (diasumsikan nagios hasil download ada di /root/Desktop) [root@labtop1 ~]# tar -xzvf /root/Desktop/nagios-3.0.1.tar.gz ● Selanjutnya mengkompilasi nagios sebagai berikut, [root@labtop1 ~]# cd nagios-3.0.1 [root@labtop1 nagios-3.0.1]# ./configure --prefix=/opt/nagios --withcommand-group=nagcmd [root@labtop1 nagios-3.0.1]# make all ● Instalasi binaries, init script, contoh file konfigurasi dan menyeting permissions pada direktori external command, sebagai berikut; [root@labtop1 [root@labtop1 [root@labtop1 [root@labtop1 nagios-3.0.1]# nagios-3.0.1]# nagios-3.0.1]# nagios-3.0.1]# make make make make install install-init install-config install-commandmode Sampai disini jangan dulu menjalankan nagios, karena masih ada beberapa hal yang harus dilakukan. Konfigurasi nagios Pada saat instalasi diatas semua sample file konfigurasi nagios dikopikan ke direktori /opt/nagios/etc. Dengan sample file konfigurasi ini seharusnya nagios sudah dapat berjalan, hanya saja mungkin Anda perlu mengkustomisasi file konfigurasi tersebut agar lebih sesuai dengan skenario dan kebutuhan Anda. Yang perlu diedit diantaranya adalah file /opt/nagios/etc/objects/contacts.cfg, pada file ini Anda dapat mendefinisikan ulang informasi mengenai contact dan contactgroup . Berikut ini contoh isi file konfigurasi /opt/nagios/etc/objects/contacts.cfg define contact{ Network Monitoring System dengan Nagios ­ halaman 3 By Henry Saptono <henry[at]nurulfikri.com> contact_name nagiosadmin use generic-contact from generic-contact template (defin ed above) alias Nagios Admin email } define contactgroup{ contactgroup_name alias members } ● ; Short name of user ; Inherit default values ; Full name of user root@localhost; <<** isi dengan email Anda admins Nagios Administrators nagiosadmin Konfigurasi interface web. Menginstal file konfigurasi web nagios kedalam direktori /etc/httpd/conf.d dengan cara sebagai berikut: [root@labtop1 nagios-3.0.1]# make install-webconf ● Membuat user account nagiosadmin untuk dapat login ke interface web nagios : [root@labtop1 nagios-3.0.1]# htpasswd -c /opt/nagios/etc/htpasswd.users \ nagiosadmin ● Kemudian restart service apache http server agar membaca konfigurasi yang terbaru [root@labtop1 nagios-3.0.1]# service httpd restart atau [root@labtop1 nagios-3.0.1]# /etc/init.d/httpd restart Kompilasi dan instalasi nagios plugin ● Ekstrak nagios plugin sebagai berikut (diasumsikan nagios plugin hasil download ada di /root/Desktop) [root@labtop1 ~]# tar -xzvf /root/Desktop/nagios-plugins-1.4.11.tar.gz ● Selanjutnya mengkompilasi dan menginstal nagios sebagai berikut, [root@labtop1 ~]# cd nagios-plugins-1.4.11 [root@labtop1 nagios-plugins-1.4.11]#./configure –prefix=/opt/nagios \ --with-nagios-user=nagios –with-nagios-group=nagios [root@labtop1 nagios-plugins-1.4.11]# make [root@labtop1 nagios-plugins-1.4.11]# make install Network Monitoring System dengan Nagios ­ halaman 4 By Henry Saptono <henry[at]nurulfikri.com> Mengaktifkan nagios Tambahkan atau daftarkan Nagios kedalam daftar system service dan set nagios agar diaktifkan secara otomatis saat booting. [root@labtop1 ~]# chkconfig --add nagios [root@labtop1 ~]# chkconfig nagios on Verifikasi atau periksa file konfigurasi. [root@labtop1 ~]# /opt/nagios/bin/nagios -v /opt/nagios/etc/nagios.cfg Jika dari verifikasi tidak ada pesan error, selanjutnya aktifkan Nagios. [root@labtop1 ~]# service nagios start Selanjutnya Anda dapat mengakses inteface web nagios menggunakan web client dengan url http://localhost/nagios/ maka Anda akan mendapati window login seperti gambar 1 berikut: Gambar 1. Window pop up untuk login ke nagios web Kemudian jika berhasil login maka Anda akan mendapati halaman utama nagios web seperti pada gambar 2. Network Monitoring System dengan Nagios ­ halaman 5 By Henry Saptono <henry[at]nurulfikri.com> Gambar 2. halaman utama nagios web Pada halaman utama nagios web anda akan melihat daftar menu yang berada pada bagian kiri, setiap menu menampilkan informasi tentang status host­host yang dimonitor. Misalkan kita mencoba mengakses menu Host Detail untuk melihat informasi detail host yang dimonitor, seperti tampak pada gambar 3 (karena Anda menggunakan default sample config nagios maka Anda hanya akan melihat sebuah host yaitu localhost). Gambar 4 memperlihatkan halaman Status map semua host yang dimonitoring. Network Monitoring System dengan Nagios ­ halaman 6 By Henry Saptono <henry[at]nurulfikri.com> Gambar 3. halaman host detail nagios web Gambar 4. halaman Status map nagios web Network Monitoring System dengan Nagios ­ halaman 7 By Henry Saptono <henry[at]nurulfikri.com> Menambah host yang akan dimonitoring Pada konfigurasi default, nagios hanya memonitor sebuah host yaitu localhost. Tentunya kita akan memonitor juga host lainnya. Untuk memonitor host lainnya Anda harus membuat file konfigurasi monitoring host tersebut. Caranya sebagai berikut: ● Salinlah file konfigurasi untuk monitoring host localhost sebagai berikut: [root@labtop1 ~]# cp /opt/nagios/etc/objects/localhost.cfg \ /opt/nagios/etc/objects/serverA.cfg ● Kemudian edit dan sesuaikan konfigurasi yang Anda iniginkan untuk serverA, apa saja service yang akan Anda monitoring, contoh kita akan memonitoring serverA (192.168.1.1) , service yang akan dimonitoring adalah ping, ssh dan http, dengan konfigurasi sebagai berikut: [root@labtop1 ~]# vi /opt/nagios/etc/objects/serverA.cfg ;Ini isi file serverA.cfg define host{ use linux-server ; Name of host template to use ; This host definition will inherit all variables that are defined ; in (or inherited by) the linux-server host template definition. host_name serverA alias serverA address 192.168.1.1 } define service{ use service template to use host_name service_description check_command } define service{ use service template to use host_name service_description check_command notifications_enabled } define service{ use service template to use host_name service_description check_command notifications_enabled local-service ; Name of serverA PING check_ping!100.0,20%!500.0,60% local-service ; Name of serverA SSH check_ssh 0 local-service ; Name of serverA HTTP check_http 0 Network Monitoring System dengan Nagios ­ halaman 8 By Henry Saptono <henry[at]nurulfikri.com> } ● Kemudian dengan skenario bahwa serverA adalah masuk dalam hostgroup linux­servers, maka Anda perlu mengedit bagian definisi hostgroup yang ada pada file localhost.cfg dengan menambahkan serverA sebagai member dari hostgroup linux­server , sebagai berikut: [root@labtop1 ~]# vi /opt/nagios/etc/objects/localhost.cfg define hostgroup{ hostgroup_name linux-servers ; The name of the hostgroup alias Linux Servers ; Long name of the group members localhost, serverA ; Comma separated list of hosts that belong to this group } ● Selanjutnya Anda harus mengedit file /opt/nagios/etc/nagios.cfg, untuk menambahkan entri konfigurasi host serverA dibawah baris “cfg_file=/opt/nagios/etc/objects/localhost.cfg”, sehingga menjadi sebagai berikut: # Definitions for monitoring the local (Linux) host cfg_file=/opt/nagios/etc/objects/localhost.cfg cfg_file=/opt/nagios/etc/objects/serverA.cfg ● Setelah itu Anda verifikasi apakah konfigurasi yang telah Anda lakukan valid atau benar (tidak ada error), dengan cara sebagai berikut: [root@labtop1 ~]# /opt/nagios/bin/nagios -v /opt/nagios/etc/nagios.cfg Nagios 3.0.1 Copyright (c) 1999-2008 Ethan Galstad (http://www.nagios.org) Last Modified: 04-01-2008 License: GPL Reading configuration data... Running pre-flight check on configuration data... Checking services... Checked 11 services. Checking hosts... Checked 2 hosts. Checking host groups... Checked 1 host groups. Checking service groups... Checked 0 service groups. Checking contacts... Checked 1 contacts. Checking contact groups... Checked 1 contact groups. Checking service escalations... Checked 0 service escalations. Checking service dependencies... Network Monitoring System dengan Nagios ­ halaman 9 By Henry Saptono <henry[at]nurulfikri.com> Checked 0 service dependencies. Checking host escalations... Checked 0 host escalations. Checking host dependencies... Checked 0 host dependencies. Checking commands... Checked 25 commands. Checking time periods... Checked 5 time periods. Checking for circular paths between hosts... Checking for circular host and service dependencies... Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check ● Terakhir, Anda harus restart service nagios agar membaca konfigurasi terbaru, sebagai berikut: [root@labtop1 ~]# service nagios restart Running configuration check...done. Stopping nagios: done. Starting nagios: done. ● Sekarang coba Anda lihat melalui web browser , pada menu Host Detail atau Service Detail maka akan tampak seperti gambar 5 dan 6 berikut ini: Network Monitoring System dengan Nagios ­ halaman 10 By Henry Saptono <henry[at]nurulfikri.com> Gambar 5. Host Detail dengan 2 host dimonitoring Gambar 6. Service Detail dengan 2 host dimonitoring Network Monitoring System dengan Nagios ­ halaman 11 By Henry Saptono <henry[at]nurulfikri.com> Untuk menambahkan host lainnya yang akan dimonitor Anda dapat melakukan hal yang sama. Untuk mengetahui plugin (checking_system) apa saja yang tersedia dapat dilihat pada folder /opt/nagios/libexec. Konfigurasi command checking_system dapat Anda lihat pada file /opt/nagios/etc/objects/commands.cfg. Network Monitoring System dengan Nagios ­ halaman 12