Anda di halaman 1dari 12

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 NMSakan 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/)

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 servicechecks

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 serviceor 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:

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 --with- command-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 nagios-3.0.1]# make install [root@labtop1 nagios-3.0.1]# make install-init [root@labtop1 nagios-3.0.1]# make install-config [root@labtop1 nagios-3.0.1]# make 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

By Henry Saptono <henry[at]nurulfikri.com>

contact_name

nagiosadmin

; Short name of user

use

generic-contact

; Inherit default values

from generic-contact template (defin

ed above) alias

Nagios Admin

; Full name of user

email

root@localhost; <<** isi dengan email Anda

}

define contactgroup{ contactgroup_name alias members

}

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

By Henry Saptono <henry[at]nurulfikri.com>

Mengaktifkan nagios

Tambahkan atau daftarkan Nagios kedalam daftarsystem 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 dapatmengakses inteface web nagios menggunakan web client dengan url http://localhost/nagios/ maka Anda akan mendapati window login seperti gambar1 berikut:

Anda akan mendapati window login seperti gambar1 berikut: Gambar 1. Window pop up untuk login ke

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.

By Henry Saptono <henry[at]nurulfikri.com>

By Henry Saptono <henry[at]nurulfikri.com> Gambar 2. halaman utama nagios web Pada halaman utama nagios web anda

Gambar 2. halaman utama nagios web

Pada halaman utama nagios web anda akan melihat daftar menu yang beradapada 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.

By Henry Saptono <henry[at]nurulfikri.com>

By Henry Saptono <henry[at]nurulfikri.com> Gambar 3. halaman host detail nagios web Gambar 4. halaman Status map

Gambar 3. halaman host detail nagios web

Gambar 3. halaman host detail nagios web Gambar 4. halaman Status map nagios web Network Monitoring

Gambar 4. halaman Status map nagios web

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 template to use

linux-server

; Name of host

; 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

}

local-service

; Name of

serverA PING

check_ping!100.0,20%!500.0,60%

define service{ use

local-service

; Name of

service template to use host_name

serverA

service_description

SSH

check_command

check_ssh

notifications_enabled

0

}

define service{

use

local-service

; Name of

service template to use host_name

serverA

service_description

HTTP

check_command

check_http

notifications_enabled

0

By Henry Saptono <henry[at]nurulfikri.com>

}

Kemudian dengan skenariobahwa 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 harusmengedit 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

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

0

Total Errors:

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 Stopping nagios: done. Starting nagios: done.

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:

By Henry Saptono <henry[at]nurulfikri.com>

By Henry Saptono <henry[at]nurulfikri.com> Gambar 5. Host Detail dengan 2 host dimonitoring Gambar 6. Service

Gambar 5. Host Detail dengan 2 host dimonitoring

Gambar 5. Host Detail dengan 2 host dimonitoring Gambar 6. Service Detail dengan 2 host dimonitoring

Gambar 6. Service Detail dengan 2 host dimonitoring

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.