Network Monitoring System dengan Nagios

advertisement
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
Download