BAB II
TINJAUAN PUSTAKA
4.1. Nagios
Nagios adalah sistem open source dan aplikasi pemantauan jaringan. Nagios memantau host dan service yang sebelumnya telah ditentukan oleh pengguna, Nagios akan mengirimkan sinyal ketika terjadi masalah dan ketika host dan service yang dipantau menjadi baik kembali.
Gambar 2.1. Interface Nagios
Nagios awalnya dirancang untuk berjalan pada sistem operasi Linux, namun dapat juga berjalan dengan baik hampir disemua sistem operasi Unix.
Beberapa fitur dari Nagios meliputi:
1. Dapat digunakan untuk memonitor service jaringan (SMTP, POP3, HTTP, NNTP, PING, dll).
2. Dapat digunakan untuk memonitor penggunaan host resource (processor
load, disk usage, dll).
3. Memiliki desain plugin yang sederhana, yang memungkinkan pengguna dengan mudah mengembangkan metode pemeriksaan host dan service.
4. Memiliki kemampuan untuk mendefinisikan hierarki host jaringan, yang mengizinkan pendeteksian dan pembagian antara komputer host yang “down” dan yang “up”.
5. Memiliki notifikasi ketika terjadi masalah pada host atau service (melalui, SMS, email, pager, atau metode user-defined).
6. Memiliki kemampuan untuk mengenali problem yang terjadi melalui tampilan berbasis web.
4.2. Nagios Plugin
Nagios tidak dapat melakukan check sendiri. Nagios menggunakan plugin untuk melakukan check terhadap host atau service. plugin adalah ekstensi terpisah untuk Nagios yang menyediakan konfigusari untuk memantau host, service dan sebagainya dengan Nagios. Plugin beroperasi sebagai aplikasi terpisah, tetapi umumnya dirancang untuk dijalankan oleh Nagios. Hal ini membuat Nagios menjadi solusi yang sangat modular dan fleksibel untuk melakukan pemeriksaan mesin dan
Nagios memiliki banyak Plugin untuk melakukan check service yang ada pada host. Salah satu plugin yang umum seperti check_ping. Ping juga memiliki parameter misalnya berapa lama response yang diharapkan. Contoh lainnya seperti check_port, misalnya kita check port 80 atau port web server. Selain check port, ada juga plugin yang lebih spesifik, misalnya check_http, check_smtp, check_snmp, check_ssh, check_tcp, check_udp, dan banyak lagi.
4.3. Host dan Service pada Nagios
Objek dipantau oleh Nagios dibagi menjadi dua kategori: host dan service. Host adalah mesin fisik (CPU, disk, memory, server, router, workstation, printer dan sebagainya), sedangkan service adalah fungsionalitas tertentu, misalnya web server (proses httpd pada sebuah mesin) dapat didefinisikan sebagai service yang dimonitor. Setiap service terkait dengan host yang sedang berjalan. Selain itu, baik mesin maupun
service dapat dikelompokkan dalam hostgroup dan servicegroup (Wojciech Kocjan,
2009).
Host dan service memiliki keadaan – keadaan yang dapat mendeskripsikan
status dari host dan service tersebut. Status untuk host diantaranya : UP, DOWN, dan UNREACHABLE. Sedangkan status untuk service : OK, WARNING, CRITICAL, dan UNKNOWN.
Deskripsi status untuk service:
OK : Beroperasi dengan baik
WARNING : Beroperasi, tapi butuh perhatian, contoh: sumber daya rendah CRITICAL : Tidak beroperasi atau butuh perhatian
4.4. NRPE (Nagios Remote Plugin Executor)
Addon NRPE ini dirancang untuk memungkinkan Anda untuk mengeksekusi plugin nagios pada remote Linux / Unix mesin. Alasan utamanya adalah mengijinkan Nagios untuk memonitor sumber daya "lokal" (seperti beban CPU, penggunaan memori, dll) pada remote server. Karena sumber daya publik biasanya tidak mengetahui mesin eksternal, agen seperti NRPE harus diinstal pada Linux / Unix mesin remote.
Gambar 2.2. Remote host Linux
Hal ini dimungkinkan untuk mengeksekusi plugin nagios pada remote Linux / Unix mesin melalui SSH. Ada check_by_ssh plugin yang memungkinkan untuk melakukan hal ini. Menggunakan SSH lebih aman dibandingkan dengan addon NRPE, tetapi juga membebankan CPU yang lebih besar pada kedua pemantauan dan mesin remote. Hal ini dapat menjadi masalah ketika Anda mulai ratusan atau ribuan pemantauan mesin. Banyak admin memilih untuk menggunakan menggunakan NRPE yang addon karena beban yang lebih rendah.
4.5. NSClient++
NSClient++ bertujuan untuk menjadi daemon pemantauan sederhana namun kuat dan aman untuk sistem operasi Windows. NSClient++ dibangun untuk nagios, diintegrasikan ke dalam setiap software monitoring.
Gambar 2.3. Remote host Windows
Struktur daemon adalah layanan NT sederhana yang memiliki banyak plug-in. Plug-in kemudian dapat meminta sumber daya dari mesin remote. Sampai sekarang ada beberapa plug-in untuk dasar pengumpulan data kinerja. Untuk rincian modul yang disediakan, lihat CheckCommands.
NSClient++ dapat implementasikan dengan membuat script plug-in sendiri atau dengan menjalankan skrip eksternal. Membuat script plug-in sendiri, tentu saja cara yang paling kuat tetapi membutuhkan pengetahuan tentang C++ atau bahasa lain yang dapat menghasilkan DLL dan antarmuka dengan program C biasa.
Sedangkan untuk memeriksa dengan NSClient++, lebih direkomendasikan menggunakan NRPE karena jauh lebih fleksibel daripada check_nt. Tapi NSClient memiliki dukungan penuh untuk check_nt.
4.6. GCC
GCC adalah sebuah compiler yang digunakan untuk mengcompile bahasa pemrograman C, Java, Fortran, dan kode program lainnya yang dapat dipakai pada mesin UNIX, GNU/LINUX. Penting sekali mengetahui cara mengcompile menggunakan compiler ini.
GCC hanyalah sebuah compiler bahasa pemrograman, tidak bisa digunakan untuk edit/memodifikasi kode program tidak seperti IDE yang dapat digunakan untuk modifikasi kode program sekaligus mengcompilenya. Oleh karena itu Anda dapat menggunakan jenis Text Editor apapun untuk edit/modifikasi kode program Anda. Beberapa Text Editor yang banyak dipakai yaitu gedit, K-Write, Emacs. Alternatif lain, bila Anda ingin memodifikasi kode program melalui Terminal Window, gunakan perintah "vi".
4.7. Email
Layanan populer lainnya ialah E-mail. E-mail atau surat elektronik adalah salah satu layanan internet yang digunakan untuk mengirim surat ke pengguna internet lainnya. Secara singkat proses pengiriman surat elektronik dapat digambarkan sebagai berikut:
Gambar 2.4. Skema pengiriman email
Langkah-langkah yang ditempuh oleh sebuah surat elektronik untuk sampai di penerima adalah sebagai berikut:
1. Pengirim menulis surat elektronik di komputernya, yang disebut E-mail client. 2. Dari E-mail client surat elektronik diteruskan ke SMTP (Simple Mail Transfer
Protocol) server milik penyedia layanan surat elektronik yang digunakan oleh pengirim.
3. Melalui jaringan internet surat elektronik tersebut diteruskan ke POP3 server (POP merupakan singkatan dari Post Office Protocol) atau IMAP server (Internet Mail Access Protocol) milik penyedia layanan surat elektronik yang digunakan oleh penerima.
Ada beberapa keuntungan yang dimiliki oleh surat elektronik dibanding sarana komunikasi konvensional, yakni:
1. Electronic mail is asynchronous. Cara kerja surat elektronik tidak seperti telepon dan faksimili yang mengharuskan pihak penerima untuk tersambung dengan jaringan telepon. Penerima surat elektronik tidak harus tersambung dengan internet ketika pengirim mengirimkan surat elektoniknya. Karena surat elektronik yang dikirim oleh pengirim akan disimpan di dalam sistem penyimpanan dan kemudian diteruskan ketika penerima terhubung dengan internet.
2. Electronic mail supports one-to-one as well as one-to-many information exchanges. Maksudnya ialah sebuah surat elektronik dengan isi yang sama dapat dikirimkan kepada banyak penerima. Hal ini tentu sangat menguntungkan bagi dunia bisnis. Karena lebih menghemat waktu dan biaya bila dibandingkan dengan surat konvensional.
3. Electronic mail can be integrated with other office apllications. Artinya surat elektronik dapat dengan mudah diintegrasikan dengan berbagai aplikasi perkantoran lainnya. Sehingga sebuah informasi yang dibuat dengan menggunakan sebuah perangkat lunak dapat dengan mudah dikirimkan kepada pihak lain yang menggunakan perangkat lunak yang sejenis melalui surat elektronik.
Selain memberikan dampak positif dalam komunikasi pengguna internet, surat elektronik juga menimbulkan berbagai masalah sosial. Salah satunya ialah spamming.
4.8. Metode Waterfall
Waterwall Model, yang sering disebut juga classic life cycle, adalah model
klasik yang bersifat sistematis, berurutan dalam membangun software (Proboyekti, 2006).
Model ini menyampaikan suatu pendekatan yang berurutan untuk pengembangan perangkat lunak. Pengembangan dimulai dari spesifikasi kebutuhan dan berlanjut dengan perencanaan, pemodelan, konstruksi, dan penyerahan. Langkah-langkah dalam Metode Waterfall sebagai berikut :
a. Requirement (Analisis Kebutuhan)
Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap. Proses menganalisis dan pengumpulan kebutuhan sistem yang sesuai dengan domain informasi tingkah laku, unjuk kerja, dan antar muka (interface) yang diperlukan. Kebutuhan-kebutuhan tersebut didokumentasikan dan dilihat lagi dengan pelanggan
b. Design (Desain Sistem)
Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap. Proses desain akan menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada: struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural.
c. Implementasi
Mengoperasikan program dilingkungannya oleh pengguna/user. Setelah melakukan pengujian selanjutnya dilakukan tahap terakhir yaitu implementasi. Setelah sukses melakukan pengujian dan hasil yang didapatkan sudah sesuai yang diinginkan maka tinggal melakukan penerapan dan pemeliharaan. Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau sistem operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja.
d. Testing (Pengujian)
Setalah penyatuan program secara keseluruhan maka dilakukan pengujian (system testing). Proses pengujian dilakukan pada logika internal untuk memastikan semua pernyataan sudah diuji. Pengujian eksternal fungsional untuk menemukan kesalahan-kesalahan dan memastikan bahwa input akan memberikan hasil yang aktual sesuai yang dibutuhkan.
Beberapa macam bentuk testing : 1. Data set testing
2. Unit testing 3. System testing 4. Integration testing 5. Blackbox testing 6. Whitebox testing 7. Modul testing 8. Regresi testing 9. Otomasi testing
e. Pemeliharaan (Maintenance)
Melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.
Desain Sistem Pemeliharaan Implementasi Sistem Pengujian Sistem Analisis Kebutuhan
Gambar 2.5 Tahapan Metode Waterfall
Model ini juga mencerminkan kepraktisan engineering karena ketika sudah berada diakhir fase jika terjadi kesalahan akan lebih mudah diperbaiki. Namun kelemahan metode ini adalah ketika suatu fase sudah terlewati dan ada perubahan kebutuhan sesuai keinginan pemakai/user terkadang model ini sulit untuk diakomodasi. Dampaknya akan menyebabkan kebingungan bagi tim pembuat. Sehingga keadaan ‘block state’ atau status terblok akan terjadi. Block state bisa terjadi ketika beberapa anggota tim harus menunggu anggota lain team ini untuk menyelesaikan tugas yang ada kaitannya. Akibatnya, waktu yang diperlukan untuk menunggu bisa melebihi waktu produktif yang diperlukan untuk mengerjakan tugasnya.
4.9. Black Box Testing
Pengujian black box berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungional untuk suatu program.
Pengujian black box berusaha menemukan kesalahan dalam kategori sebagai berikut:
1. Fungsi-fungsi yang tidak benar atau hilang, 2. Kesalahan interface,
3. Kesalahan dalam struktur data atau akses database eksternal, 4. Kesalahan kinerja,
5. Inisialisasi dan kesalahan terminasi.
Tidak seperti pengujian white box, yang dilakukan pada saat awal proses pengujian, pengujian black box cenderung diaplikasikan selama tahap akhir pengujian. Karena pengujian black box memperhatikan struktur kontrol, maka perhatian berfokus pada domain informasi. (Ladjamuddin. 2006).