TA : Aplikasi MIB Browser Sebagai Sistem Monitoring Jaringan Berbasis SNMP Dengan Menggunakan Java Applet.

(1)

JARINGAN BERBASIS SNMP DENGAN MENGGUNAKAN JAVA APPLET

Oleh :

Nama : Koesmayanto Eko S. NIM : 95.41020.4061 Program : S1 (Strata Satu) Jurusan : Teknik Komputer

SEKOLAH TINGGI

MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA


(2)

viii

Halaman

ABSTRAKSI ………...… v

KATA PENGANTAR ……… vi

DAFTAR ISI ……….. viii

DAFTAR TABEL ……….. xii

DAFTAR GAMBAR ………. xiii

DAFTAR LAMPIRAN ……….. xv

BAB I PENDAHULUAN ……… 1

1.1 Latar Belakang ……….. 1

1.2 Tujuan ……… 3

1.3 Perumusan Masalah ……….. 4

1.4 Pembatasan Masalah……….. 5

1.5 Metodologi ……….……… 5

1.6 Sistematika Penulisan ……… 9

BAB II LANDASAN TEORI ……….. 11

2.1 SNMP (Simple Network Management Protocol) ……….... 11

2.1.1 Perintah Dasar SNMP ………. 12

2.2.2 Komponen Dasar SNMP ……….. 14

2.2 SNMP Management Information Base (MIB) ………. 15

2.3 Format Message SNMP ……….. 17

2.4 Bahasa Pemrograman ...……….………….. 19

2.4.1 Java ……….. 19


(3)

ix

3.1 Metode Penelitian ………... 22

3.1.1 Model ……….….. 22

3.1.2 Prosedur (Tahapan Penelitian) ………. 23

A. Rancangan Aplikasi ………..… 23

B. Detail Block Diagram ………... 23

3.1.3 Evaluasi ……… 24

A. Populasi / Contoh Penelitian ..………..… 24

B. Instrument Pengumpul Data ..………..… 25

C. Validasi Instrument ………....………..… 25

D. Analisis Hasil Uji Coba ..…....………..… 26

3.2 Perancangan Sistem ………. 26

3.2.1 Komponen (Package) ……….….. 27

3.2.2 MIB Browser ………... 28

BAB IV DESAIN DAN IMPLEMENTASI ……….... 30

4.1 Desain ………..… 30

4.1.1 Penanganan Timeout dan Pengiriman Ulang ………….. 36

4.1.2 Operasi Pengambilan Data SNMP yang Digunakan ……… 37

4.1.3 Fasilitas Sending/Receiving Traps dan Notifications ……… 40

4.1.4 Pemrosesan Pesan dan Autentifikasi ……….…….. 41

4.1.5 Pemeliharaan Sekuriti dan Parameter Akses Kontrol ………..……... 41

4.1.6 Pengaturan Berbagai Macam Counter yang di Deskripsikan dalam Group SNMP ……….….… 44


(4)

x

4.1.8 Variabel Class ………..…… 46

A. Method toString( ) dan toTagString( ) …………..…. 49

B. Method toValue( ) dan toVarObject( ) ……….. 49

C. Method toBytes( ) ………...….. 50

4.2 Implementasi Aplikasi ………..….………...……... 52

4.2.1 Persiapan Awal ……… 52

4.2.2 Instalasi ……….….….. 53

4.2.3 Struktur Direktori dan File ………...… 55

4.2.4 Pengoperasian Aplikasi ……….……….. 55

A. Toolbar ……….… 56

B. Dialog Pengambilan File MIB ……….……… 58

C. Pengaturan MIB Browser ……….…… 60

D. Operasi SNMP ………. 61

E. Trap Viewer dan Trap Parser Editor ……… 62

F. Table Operations ……….. 69

G. Grafik ……… 72

H. Debug dan Decoding ……… 74

4.3 Implementasi pada Jaringan ...…….………...……. 77

4.3.1 Request dan Update .……… 77

4.3.2 Menampilkan Grafik ……….….….. 78

BAB V PENUTUP ……….. 80

5.1 Kesimpulan .……….... 80


(5)

xi

BIODATA PENULIS ………. 83 LAMPIRAN ………..……. 85


(6)

xii

Tabel 4.1. Daftar Konstanta SnmpAPI Class ……… 45

Tabel 4.2. Daftar Operasi SnmpAPI ………..……… 45

Tabel 4.3. Daftar Variabel Error SnmpAPI ………..……….. 46

Tabel 4.4. Daftar Direct Sub-Class dari SnmpVar ………. 47

Tabel 4.5. Daftar SnmpString Sub-Class ……….……….. 47

Tabel 4.6. Daftar SnmpUnsignedInt Sub-Class ………...………..……… 47

Tabel 4.7. Daftar Perbedaan Method toValue( ) dan getVarObject( ) …..……. 50

Tabel 4.8. Daftar Persamaan ………..……… 50

Tabel 4.9. Daftar Statik Variabel ……….……..………..…. 51

Tabel 4.10. Daftar Struktur File ………..……… 55


(7)

xiii

Gambar 1.1. Blok Diagram Rancangan ……….. 6

Gambar 2.1. Gambar Interaksi Agent dan Manager …………..……… 12

Gambar 2.2. Interaksi Perintah Dasar pada SNMP ……...…….………... 14

Gambar 2.3. Hubungan Komponen Dasar pada SNMP ……… 15

Gambar 2.4. Hirarki MIB ……….………. 16

Gambar 2.5. Format Data SNMPv1 …….………..……….…….……. 17

Gambar 2.6. Detail SNMP PDU ……….….………. 18

Gambar 2.7. Format Data SNMPv2 …………...…..………. 18

Gambar 2.8. Struktur Virtual Machine …………..……… 19

Gambar 2.9. Struktur Compiler Java ………...………….………. 20

Gambar 3.1. Model Blok Diagram Rancangan ………. 22

Gambar 3.2. Package AdventNet SNMP API ……….. 27

Gambar 3.3. Modul Pengambilan MIB File ……..………... 28

Gambar 3.4. Modul Aplikasi MIB Browser ………. 29

Gambar 4.1. Tampilan Awal ………..……….……….. 55

Gambar 4.2. Load MIB Dialog ……….………. 58

Gambar 4.3. Setting MIB ………..……… 59

Gambar 4.4. Settings ……….……… 61

Gambar 4.5. Multi-Varbind …..……… 62

Gambar 4.6. Trap Viewer ...………... 63

Gambar 4.7. Trap Parser ……… 66


(8)

xiv

Gambar 4.10. Line Graph ……...………. 73

Gambar 4.11. Debug ……… 75

Gambar 4.12. Decoded ...………. 76

Gambar 4.13. Hasil Uji Coba Proses “get/set” …..……….. 78


(9)

xv

Lampiran 1. MibBrowserApplication.java .………. 85

Lampiran 2. ParserOptions. java …….………. 89

Lampiran 3. MibBrowser. java ……… 91

Lampiran 4. ToolBar. java ……….. 101

Lampiran 5. SnmpMessage. java ……… 106

Lampiran 6. SnmpNetworkAddress. java ………... 111

Lampiran 7. SnmpOID. java ………... 112

Lampiran 8. SnmpPDU. java ……….. 117


(10)

xii

Tabel 4.1. Daftar Konstanta SnmpAPI Class ……… 45

Tabel 4.2. Daftar Operasi SnmpAPI ………..……… 45

Tabel 4.3. Daftar Variabel Error SnmpAPI ………..……….. 46

Tabel 4.4. Daftar Direct Sub-Class dari SnmpVar ………. 47

Tabel 4.5. Daftar SnmpString Sub-Class ……….……….. 47

Tabel 4.6. Daftar SnmpUnsignedInt Sub-Class ………...………..……… 47

Tabel 4.7. Daftar Perbedaan Method toValue( ) dan getVarObject( ) …..……. 50

Tabel 4.8. Daftar Persamaan ………..……… 50

Tabel 4.9. Daftar Statik Variabel ……….……..………..…. 51

Tabel 4.10. Daftar Struktur File ………..……… 55


(11)

xiii

Gambar 1.1. Blok Diagram Rancangan ……….. 6

Gambar 2.1. Gambar Interaksi Agent dan Manager …………..……… 12

Gambar 2.2. Interaksi Perintah Dasar pada SNMP ……...…….………... 14

Gambar 2.3. Hubungan Komponen Dasar pada SNMP ……… 15

Gambar 2.4. Hirarki MIB ……….………. 16

Gambar 2.5. Format Data SNMPv1 …….………..……….…….……. 17

Gambar 2.6. Detail SNMP PDU ……….….………. 18

Gambar 2.7. Format Data SNMPv2 …………...…..………. 18

Gambar 2.8. Struktur Virtual Machine …………..……… 19

Gambar 2.9. Struktur Compiler Java ………...………….………. 20

Gambar 3.1. Model Blok Diagram Rancangan ………. 22

Gambar 3.2. Package AdventNet SNMP API ……….. 27

Gambar 3.3. Modul Pengambilan MIB File ……..………... 28

Gambar 3.4. Modul Aplikasi MIB Browser ………. 29

Gambar 4.1. Tampilan Awal ………..……….……….. 55

Gambar 4.2. Load MIB Dialog ……….………. 58

Gambar 4.3. Setting MIB ………..……… 59

Gambar 4.4. Settings ……….……… 61

Gambar 4.5. Multi-Varbind …..……… 62

Gambar 4.6. Trap Viewer ...………... 63

Gambar 4.7. Trap Parser ……… 66


(12)

xiv

Gambar 4.10. Line Graph ……...………. 73

Gambar 4.11. Debug ……… 75

Gambar 4.12. Decoded ...………. 76

Gambar 4.13. Hasil Uji Coba Proses “get/set” …..……….. 78


(13)

1

PENDAHULUAN

1.1 Latar Belakang

Di jaman sekarang sudah terlihat beberapa perbedaan yang sangat mendasar dalam system jaringan yang ada, baik itu secara fisik maupun virtual. Fisik dalam arti struktur perkabelan yang banyak menggunakan bahan dan teknologi baru yang tidak lain adalah untuk meningkatkan kinerja dari suatu system dalam jaringan sedangkan virtual adalah semua system transfer data yang tidak pada jalur – jalur yang tetap tetapi dapat memungkinkan perubahan jalur yang bervariasi.

Jaringan yang besar tentunya memiliki security yang baik untuk menjaga seluruh data yang ada dalam jaringan agar tidak terjadi pencurian dari luar, dan disamping itu pula para administrator jaringan yang mengatur jaringan harus bertindak waspada dan tanggap terhadap semua gerak yang terjadi dalam jaringan tersebut. Pengamatan (monitoring) adalah salah satu tindakan waspada yang sangat ampuh untuk memperhatikan segala proses yang berjalan pada server sebagai tonggak dari suatu jaringan. Sehingga dapat dikatakan bahwa jaringan yang besar akan sangat membutuhkan tenaga tambahan dan ilmu tingkat lanjut untuk me-monitor kinerja peralatan jaringan.

Kesulitan utama dari adminnistrator jaringan adalah melakukan monitoring setiap paket yang lewat di jaringan, dan biasanya dibutuhkan peralatan dan perangkat lunak yang sangat mahal. Monitoring peralatan jaringan adalah salah satu kegiatan dari sistem administrator agar dapat mengetahui kinerja dari


(14)

peralatan jaringan yang dimiliki. Setiap perangkat memiliki spesifikasi yang khusus dan membutuhkan penanganan tersendiri, untuk itulah dibutuhkan sebuah perangkat lunak yang mampu melakukan pengumpulan data sehingga sistem administrator bisa melakukan analisa dari data yang terkumpul tersebut.

Dalam jaringan moderen sekarang ini, yang menggunakan protokol TCP/IP, dikenal sebuah protokol yang dapat melakukan monitoring dan manajemen peralatan jaringan yaitu SNMP (Simple Network Management Protocol). Protokol ini berfungsi untuk melakukan manajemen dan monitoring dari peralatan jaringan, mulai dari server, router, switch dan peralatan server lain. Setiap peralatan yang akan di monitor harus memiliki sebuah program kecil yang disebut sebagai SNMP agent yang berfungsi mengumpulkan data dari masing-masing peralatan, kemudian data tersebut akan diambil oleh SNMP manager dan diolah menjadi sebuah informasi yang berguna bagi System Administrator.

Disisi lain, untuk menampilkan informasi hasil dari proses tadi dibutuhkan sebuah perangkat lunak tersendiri sehingga timbul permasalahan bagi para administrator untuk melakukan monitoring dari jarak jauh. Dalam jaringan TCP/IP dikenal pula sebuah protokol yang banyak digunkan yaitu HTTP yang digunakan sebagai protokol utama WWW. Protokol ini sangatlah terkenal karena dapat menampilkan segala informasi, mulai dari teks, gambar, suara bahkan video. Dengan menggabungkan kedua protokol tersebut diharapkan dapat dibuat sebuah aplikasi yang dapat membantu system administrator untuk melakukan monitoring dan manajemen dari peralatan jaringan. Salah satu tool yang terkenal adalah MRTG (Multi Router Traffic Grapher).


(15)

MRTG adalah sebuah tool yang memungkinkan administrator melakukan monitoring dari peralatan jaringan khususnya router. MRTG memiliki banyak kelemahan, misalnya waktu menampilkan yang cukup lama yaitu 5 menit, dibutuhkan server yang harus bekerja keras saat melakukan pengumpulan data dari SNMP agent, dan hanya menampilkan utilisasi jaringan

Untuk mengatasi masalah tersebut dalam proposal ini penulis akan membuat sebuah tool yang mampu memberikan banyak informasi kepada sistem administrator, yaitu memberikan informasi tentang seluruh kemampuan peralatan, tergantung kepada MIB (Management Informastion Base) yang terpasang dalam peralatan, memberikan file log dari masing-masing peralatan, menggunakan kemampuan prosesing dari client bukan dari server sehingga server bekerja lebih ringan, dan menggunakan teknologi yang susah untuk ditembus oleh hacker yaitu dengan menggunakan Java.

1.2 Tujuan

Berdasarkan dari latar belakang yang telah dijabarkan di atas, maka dapat dirumuskan beberapa tujuan utama dari pembuatan tugas akhir ini, yaitu :

1. Membuat program aplikasi monitoring peralatan jaringan dengan memanfaatkan standard protocol yang sudah baku yaitu SNMP.

2. Menampilkan hasil yang diperoleh dari aplikasi Agent sebagai laporan yang penting untuk mengamati dan mengatur jaringan.

3. Mengembangkan pemrogram java, khususnya Java Applet ke aplikasi monitoring tersebut.


(16)

4. Menghasilkan keluaran berupa grafik statistik dimana data yang diperoleh adalah data yang kita ambil dari agent.

5. Dapat membantu dan mempermudah tugas administrator jaringan dalam mengatur jaringan sehingga administrator dapat mengambil langkah – langkah perbaikan atau penanggulangan masalah jaringan jika diperlukan yaitu dengan memberikan fungsi set terhadap fariabel yang sifatnya public.

1.3 Perumusan Masalah

Berdasakan dari latar belakang yang telah dijabarkan diatas, dapat dirumuskan permasalahan yang akan dibahas dalam tugas akhir ini sebagai berikut :

“Bagaimana membuat sebuah perangkat lunak yang mampu membantu administrator jaringan untuk melakukan monitoring dan manajemen peralatan jaringan yang dapat diakses dari setiap tempat ?”

Dari rumusan permasalahan tersebut masih dapat kita buat sub rumusan permasalahan yaitu:

1. Bagaimanakah tampilan dari tool ini sehingga administrator jaringan dengan mudah mengerti keadaan perangkatnya ?

2. Bagaimana mendapatkan informasi yang ditampilkan mendekati keadaan sebenarnya, dimana informasi yang diambil bisa berupa paket data yang keluar dan masuk di peralatan jaringan ?

3. Bagaimana memvisualisasikan data yang diperoleh ke dalam bentuk grafik untuk mempermudah administrator dalam menganalisa proses.


(17)

1.4 Pembatasan Masalah

Ruang lingkup dalam penulisan Tugas Akhir ini adalah sebagai berikut : 1. Melakukan monitoring dan mengontrol seluruh trafik data pada element

jaringan dalam hal ini yang akan di monitor adalah router, switch dan server. Dan program monitoring ini akan bisa digunakan pada setiap mesin yang ingin kita monitor.

2. Aplikasi ini berjalan pada Sistem Operasi Windows 2000/Windows XP. 3. Menggunakan protokol SNMP sebagai tulang punggung pengambilan data

(data acquisition).

4. Aplikasi dibuat dengan menggunakan bahasa pemrograman java khususnya java applet.

1.5 Metodologi

Untuk menyelesaikan Tugas Akhir ini, dilakukan langkah-langkah penyelesaian masalah sebagai berikut :

1. Model

Berikut ini digambarkan model blok diagram rancangan yang mengambarkan bagaimana sistem ini dibentuk.


(18)

Gambar 1.1. Blok Diagram Rancangan

Rancangan diatas mengambarkan interaksi aplikasi dimana aplikasi berupa java applet yang dapat melakukan komunikasi terhadap SNMP Agent melalui protokol HTTP, TCP/IP, dan SNMP.

2. Prosedur (Tahapan Penelitian)

Dalam tahapan ini, sangat diperlukan adanya persiapan dan perancangan berdasarkan blok diagram yang telah ditentukan.

a. Rancangan Aplikasi

Secara keseluruhan, aplikasi akan melakukan pengolahan data dimana data tersebut diambil melalui web yang menampung java applet lewat protokol HTTP, kemudan meminta ke aplet server yang dilanjutkan ke sintak dasar SNMP ke SNMP Agent.

Web Server Class / html files

APPLET Web Browser

SNMP APPLET Server

SNMP Agent SNMP Request

SNMP Response SNMP Trap

Via HTTP Request Response

Via TCP/IP


(19)

b. Detail Block Diagram

Diagram ini terbagi dalam 3 bagian dimana tiap bagiannya akan menggambarkan secara garis besar aplikasi yang akan di buat.

Web Browser : bagian ini merupakan tempat menumpangnya applet yang berfungsi untuk tampilan awal sebagai gambaran secara grafis terhadap user untuk memfisualisasikan seluruh fungsi mulai dari pemilihan protokol, versi SNMP, OID dan grafis hasil perhitungan berupa statistik. Web Server : merupakan inti dari aplikasi ini diletakkan dimana back-end aplikasi ini dibuat dengan menggunakan java dan protokol yang digunakan adalah SNMP (Simple Network Management Protocol). Pada saat user melakukan permintaan melalui web server (tampilan user dalam bentuk applet), web server akan menanggapi dengan memberikan data yang diperlukan, baik itu data yang berhubungan dengan data olahan yang diambil terhadap peralatan yang di monitor, juga data yang berupa tampilan itu sendiri sehingga akhir dari permintaan tersebut akan dapat di lihat melalui web browser.

SNMP Agent : bagian ini merupakan bagian yang secara langsung akan ditempatkan pada setiap peralatan seperti server, router, switch dan peralatan lain. Biasanya SNMP Agent ada yang sudah disediakan oleh vendor yang mengeluarkan peralatan tersebut sehingga kita dapat secara langsung memanfaatkan untuk kita fungsikan sebagai aplikasi pengumpul data.


(20)

3. Evaluasi

Pada tahap evaluasi ini, kami menggunakan beberapa prosedur yang disesuaikan dengan kebutuhan pengujian dan implementasi yang diantaranya adalah :

a. Populasi / Contoh Penelitian

Sampel penelitian kita lakukan dengan langsung mengambil data pada setiap device yang mana device ini merupakan satu host yang akan diambil datanya. Data bisa berupa paket – paket data yang masuk dalam satu jaringan. Dan data ini sangat bermanfaat sekali untuk keperluan management jaringan atau operator jaringan.

b. Instrument Pengumpul Data

Pada bagian ini, instrument yang digunakan adalah protokol SNMP. Protokol ini sangat penting sekali karena protokol ini sudah merupakan standar protokol untuk melakukan monitoring terhadap jaringan. Ini sesuai dengan RFC 1157 yang merupakan salah satu pengajuan memo untuk dapat di standarkan sebagai suatu protokol.

c. Validasi Instrument

Untuk mengetahui bahwa aplikasi yang dibuat ini sesuai dengan protokol yang kita gunakan adalah dengan melakukan pengujian terhadap aplikasi. Hasil yang kita ambil melalui protokol ini akan memberikan data yang awalnya telah dikumpulkan oleh Agent sebagai server. Pembentukan dan penggunaan dari protokol ini pun tidak bisa sembarang, karena ada beberapa hal yang mesti di sesuaikan dengan keperluan dari protokol tersebut, misalnya adalah port, port ini merupakan satu pintu gerbang yang


(21)

harus kita sesuaikan antara peminta data dengan pemberi data, jika tidak maka apapun yang kita minta pada aplikasi tidak akan kita dapatkan data yang sebenarnya kita butuhkan.

d. Analisis Hasil Uji Coba

Bagian akhir adalah analisis yaitu melakukan pengamatan dari hasil uji coba aplikasi. Ini kita butuhkan untuk evaluasi dimana apakah perlu suatu perubahan atau tidak. Untuk mengetahu hal tersebut, penting sekali adanya pengamatan pada data yang telah terkumpul dari setiap permintaan data terhadap Server. Jika data yang dibutuhkan sudah benar dan cukup maka sudah dapat dipastikan bahwa aplikasi yang kita buat sudah maksimal. Jika belum, kita harus memperhatikan dari sisi mana data – data yang kurang tersebut belum mencukupi, apakah sistem pengambilan data kurang tepat karena kita tidak memperhatikan kemungkinan akan hilangnya data dalam perjalanan atau terlalu besarnya penggunaan aplikasi terhadap resource yang menyebabkan terganggunya pengiriman atau penerimaan data.

1.6 Sistematika Penulisan

Penulisan Tugas Akhir ini secara sistematis diatur dan disusun dalam lima bab yang didalamnya terdapat beberapa sub bab. Secara ringkas uraian materi dari bab pertama hingga bab terakhir adalah sebagai berikut :

- Bab I Pendahuluan, mambahas mengenai masalah pokok tugas akhir, maksud dan tujuan, metodologi penelitian serta sistematika tugas akhir.

- Bab II Landasan Teori, menjelaskan berbagai komponen penting dari aplikasi, serta teorema-teorema yang mendukung dalam perencanaan dan


(22)

pembuatan sistem perangkat lunak sehingga dapat bekerja sesuai dengan yang diharapkan.

- Bab III Desain Dan Pembuatan, menjelaskan tentang perancangan dan pembuatan program aplikasi monitoring peralatan jaringan berbasis web. - Bab IV Pengujian Dan Pembahasan, membahas implementasi dan

pengujian aplikasi.

- Bab V Kesimpulan Dan Saran, merupakan kesimpulan secara keseluruhan dan saran - saran yang diharapkan terhadap pengembangan dari tugas akhir ini.


(23)

11

LANDASAN TEORI

2.1 SNMP (Simple Network Management Protocol)

Pada awalnya sekitar tahun 1988 beberapa kelompok orang membutuhkan suatu peralatan yang dapat mengontrol sistem kerja jaringan melalui TCP/IP jaringan. Dan untuk itu maka beberapa orang tersebut mulai menyusun konsep untuk menyelesaikan masalah tersebut diatas dan diantara orang – orang tersebut adalah Keith McCLOGHRIE, Marshall ROSE, Jeffrey D. CASE, Mark FEDOR, Martin LEE SCHOFFSTALL, dan James R. DAVIN.

Mereka bersama – sama bekerja sebagai team yang kemudian membentuk suatu standarisasi yang dibutuhkan untuk manajemen jaringan. Standar ini diberikan oleh suatu badan khusus (IAB - Internet Architecture Board) yang menangani bidang ini yaitu RFC 1157 tentang Simple Network Management Protocol atau SNMP.

SNMP ini adalah sebuah protocol yang digunakan untuk memonitor peralatan – peralatan jaringan seperti server, router, switch dan peralatan server lain. Dan untuk melakukan monitoring tentunya SNMP juga mendukung hubungan client server dimana program client disebut dengan Network Manager yang membentuk virtual connection ke server yang disebut SNMP Agent. Agent ini akan terpasang pada setiap peralatan (server, router, switch atau peralatan lain) yang mana Agent ini akan menerima message (data) dari Manager. Agent akan menerima message dan mengirim tanggapan ke Manager. Agent tidak perlu menunggu permintaan untuk dilaksanakan jika ada masalah tertentu yang sangat


(24)

serius, dan Agent akan mengirimkan peringatan kepada Manager untuk memberikan tanggapan. Dibawah ini adalah interaksi antara Agent dan Manager.

Gambar 2.1. Gambar interaksi Agent dan Manager

Manager disini akan berfungsi sebagai stasiun manajemen yang akan mengirim pesan ke Agent dan menerima Trap dan Response.

2.1.1 Perintah dasar SNMP

Untuk memenuhi dari apa yang dibutuhkan untuk mendapatkan data pada peralatan yang dimonitor, SNMP memasukkan beberapa perintah dasar ke dalam

NETWORK MANAGEMENT STATION

APPLICATION APPLICATION

MANAGER

AGENT

Configuration Data Status Parameters

Statistics

Respond to Request Report Problems Read or Change

Configuration Read or Change Status Read Preformance or Error Status


(25)

library-nya diantaranya adalah :

1. Get-request, digunakan untuk meminta data pada MIB variable.

2. Get-next-request, digunakan untuk meminta data selanjutnya secara berurutan pada MIB variable. Perintah ini sering digunakan pada saat pengambilan data pada table. Setelah menggunakan get-request, maka untuk melanjutkan pengambilan data selanjutnya dalam table digunakan get-next-request.

3. Set-request, digunakan untuk memperbaharui (update) nilai dalam MIB.

4. Get-response, berfungsi untuk memberikan respon atau tanggapan setelah perintah get-request, get-next-request dan set-request.

5. Trap, digunakan untuk memberikan peringatan jika aplikasi atau peralatan berjalan tidak normal.

Pada dasarnya, Manager tidak mengetahui variabel apa saja yang ada, manager akan menggunakan fungsi – fungsi tersebut diatas dan kemudian akan mendapatkan tanggapan. Tanggapan ini lah yang dimengerti oleh Manager sehingga data bisa digunakan. Secara garis besar dapat digambarkan seperti dibawah ini.


(26)

Gambar 2.2. Interaksi perintah dasar pada SNMP

2.1.2 Komponen dasar SNMP

SNMP memiliki tiga komponen dasar yaitu Managed Device, Agent, dan Network Management Systems (NMS). Managed Device adalah titik jaringan yang berisi SNMP Agent dan berada pada manajemen jaringan. Managed Device menyimpan dan mengumpulkan manajemen informasi dan menggunakan informasi yang berada pada NMS untuk keperluan SNMP. Managed Device terkadang disebut element – element jaringan, bisa berupa router, server, switch dan bridge, hubs, komputer host, atau printer.

Agent adalah software yang tersimpan pada Managed Device. Sehingga Agent ini merupakan tempat berkumpulnya informasi dan menerjemahkan informasi tersebut agar sesuai dengan kebutuhan SNMP.

NMS akan menjalankan aplikasi untuk memonitor dan mengontrol Managed Device. Sehingga NMS ini merupakan pengguna terbesar (proses dan memori) yang dibutuhkan untuk manajemen jaringan. Dibawah ini adalah penggambaran hubungan antara komponen – komponen dasar.

MANAGER NEW AGENT

I understand you

O K get x, y, z

response

get-next a,b,c response


(27)

NMS

Agent Agent Agent

Management Database

Management Database

Management Database Manajement

Entity

Manage Devices

Gambar 2.3. Hubungan komponen dasar pada SNMP

2.2 SNMP Management Information Base (MIB)

Management Information Base (MIB) menyimpan seluruh informasi secara berurutan. Untuk mengakses MIB harus menggunakan protocol SNMP. Protocol SNMP merupakan objek dan dapat mengidentifikasi suatu object.

Managed Object adalah nomer yang mengidentifikasikan karakteristik dari managed object. Managed Object juga termasuk satu atau lebih object yang pada pokoknya merupakan variable.

Dua tipe dari Managed Object adalah scalar dan tabular. Scalar objek di definisikan sebagai objek tunggal. Sedangkan tabular objek di definisikan sebagai hubungan antara objek – objek yang membentuk suatu group dalam table MIB.


(28)

Sebagai contoh, Managed Object dari “Input” adalah sebuah scalar objek yang berisi objek instance tunggal, nilai integer di identifikasikan sebagai nomer total dari input AppleTalk paket pada router interface.

Object Indentifikasi atau Object ID adalah unik identify sebuah Managed Object dalam MIB hirarki. MIB hirarki dapat digambarkan sebagai tree dimana level – level dari hirarki ditentukan oleh organisasi – organisasi yang berbeda.

root

ccitt (0) iso (1) joint-iso-ccitt (2)

org (3)

dod (6)

internet (1)

mgm (2) experimental (3) private (4)

directory (1)

mib (1)

system (1) interface (2) at (3) ip (4) icmp (5) tcp (6) udp (7) 1.3.6.1.2.1

Gambar 2.4. Hirarki MIB

Pada level atas dari MIB, object ID dimiliki oleh standar organisasi yang berbeda, dan bawahnya merupakan object ID yang diberikan oleh organisasi yang bersangkutan. Vendor dapat menentukan cabang dan memasukkan Managed Object untuk product-nya sendiri.


(29)

Melanjutkan contoh diatas dimana Managed Object dari “system” dapat ditentukan sehingga membentuk urutan indentify yang unik. Nama objek: iso.org.dod. internet.mgm.mib.system dan unik objeknya dapat di definisikan sebagai berikut : 1.3.6.1.2.1.1

2.3 Format Message SNMP

SNMPv1 memiliki dua bagian pada datanya. Bagian pertama berisi header yaitu versi dan nama kommuniti (community name), dan bagian kedua berisi data utama yaitu SNMP Protocol Data Unit (PDU). Untuk lebih jelasnya, gambaran format message dari SNMPv1 adalah sebagai berikut :

Gambar 2.5. Format data SNMPv1

Bagian version berikan versi dari SNMP yang digunakan dan community name mendefinisikan group dari NMS (Network Manajement System). Sedangkan SNMP PDU berisi perintah – perintah (get, set dan lainnya) dan operasi yang mengindikasikan penggunakan object dalam transaksi. Detail SNMP PDU digambarkan seperti berikut :

Message Header


(30)

Gambar 2.6. Detail SNMP PDU

Ketarangan dari detail format SNMP PDU:

- PDU Type – spesifikasi tipe dari PDU. - Request ID – asosiasi SNMP request ID.

- Error Status – indikasi nomer kesalahan (error) dan tipe kesalahan. - Error Index – instan error object dari data.

- Variable Bindings.

Pada SNMPv2 ada sedikit perbedaan dimana pada format data yang terdapat wrapper di bagian kepala data. Wrapper ini memiliki fungsi sebagai autentikasi dan pelindung informasi. Secara jelas format data SNMPv2 digambarkan sebagai berikut:

Gambar 2.7. Format data SNMPv2 Wrapper SNMPv2 PDU

PDU Type Request ID Error Status Error Index Object 1 Value 1 Object 2 Value 2 Object x Value x Variable Bindings PDU Type Request ID Error Status Error Index Object 1 Value 1 Object 2 Value 2 Object x Value x Variable Bindings


(31)

2.4 Bahasa Pemrograman

Pengembangan suatu perangkat lunak dilakukan dengan mempertimbangkan bahasa pemrograman yang digunakan. Dasar penentuannya adalah terletak pada kemampuan bahasa tersebut dalam berinteraksi maupun dalam berkesesuian dengan sarana pendukung lainnya. Kehandalan suatu bahasa pemrograman dalam mengatasi berbagai kendala yang mungkin akan dihadapi dalam penyusunan suatu perangkat lunak inipun menjadi pertimbangan yang kuat dalam pemilihan suatu bahasa pemrograman. Pada pembuatan perangkat lunak ini, bahasa pemrograman yang digunakan adalah Java khususnya Java Applet.

2.4.1 Java

Java adalah termasuk Object–Oriented Programming language. Dan sintak–sintak java yang telah di compile akan menghasilkan byte code yang kemudian akan dijalankan pada virtual machine pada POSIX.

Gambar 2.8. Struktur Virtual Machine

Keuntungannya adalah dengan menggunakan virtual machine bisa dibuat sesederhana yang diinginkan dan juga penerjemahan oleh mesin - mesin yang

Java Code

Java Virtual Machine


(32)

menyebabkan aplikasi java memdukung multi platform, ini adalah kelebihan yang harus dimiliki oleh bahasa pemrogramman.

Java code (bytecodes) ini sangat kecil yang menyebabkan java sangat ideal dalam mengirim data di jaringan.

Gambar 2.9. Struktur compiler java

2.4.2 Applet

Java adalah Object – Oriented Programming Langguage yang dibangun oleh Sun Microsystems dimana telah disediakan oleh Sun sebuah library standar yang menyediakan objek – objek. Objek ini sangat mudah digunakan. Sebuah program java aplikasi akan dijalankan stand-alone dari console atau java applet yang akan dapat dijalankan pada web browser. Java aplikasi dan applet memiliki

Source code : .java

Compiler

Interpreter

Execution Execution

Compile code: .class (bytecodes)

Machine -Independent

Depans on the platform


(33)

perbedaan dimana java aplikasi memiliki method main() sedangkan applet memiliki method init().

Source code dari java applet diletakkan pada sebuah file dengan ekstensi .java. Dan kode java ini jika di compile ke bentuk bytecode yang akan membentuk sebuah file dengan ekstensi .class. File berekstensi .class ini nantinya yang akan dijalankan dengan menggabungkan ke code HTML yang telah ada. Sebagai contoh dari applet tag adalah sebagai berikut:

<applet code=”FileApplet.class” with=”170” height=”150”>

Java Applet ini akan dijalankan oleh browser ketika browser memanggil kode-kode HTML yang berisikan perintah/tag applet.


(34)

22

METODE PENELITIAN

3.1 Metode Penelitian

Beberapa metode penelitian dilakukan dalam penyelesaian Tugas Akhir ini, diantaranya adalah dengan langkah-langkah sebagai berikut :

3.1.1 Model

Model diperlukan dalam memberikan gambaran aplikasi yang akan dibuat. Berikut ini digambarkan model blok diagram rancangan yang mengambarkan bagaimana sistem ini dibentuk dan bagaimana sistem ini saling berinteraksi antara SNMP Manager dan SNMP Agent.

Gambar 3.1. Model Blok Diagram Rancangan Web Server

Class / html files

APPLET Web Browser

SNMP APPLET Server

SNMP Agent SNMP Request

SNMP Response SNMP Trap

Via HTTP Request Response

Via TCP/IP


(35)

Rancangan diatas mengambarkan interaksi aplikasi dimana aplikasi berupa java applet yang dapat melakukan komunikasi terhadap SNMP Agent melalui protokol HTTP, TCP/IP, dan SNMP.

Model blok diagram ini juga mengacu pada desain yang di pakai oleh package AdvenNet sehingga desain dari aplikasi ini tidak terlalu merubah komponen-komponen dasar pada package yang tersedia.

3.1.2 Prosedur (Tahapan Penelitian)

Dalam tahapan ini, sangat diperlukan adanya persiapan dan perancangan berdasarkan blok diagram yang telah ditentukan.

A. Rancangan aplikasi

Secara keseluruhan, aplikasi akan melakukan pengolahan data dimana data tersebut diambil melalui web yang menampung java applet lewat protokol HTTP, kemudan meminta ke aplet server yang dilanjutkan ke sintak dasar SNMP ke SNMP Agent.

B. Detail block diagram

Gambar 3.1 memperlihatkan bagaimana jalur komunikasi yang terbentuk dimana terdapat bagian-bagian spesifik yaitu Web Server sebagai server aplikasi yang menyimpan source file html/class. Web Browser sebagai tatap muka terhadap user dimana user akan dihadapkan berupa tampilan aplikasi MIB Browser. Web browser ini bisa menggunakan Internet Explorer (IE) atau Netscape Navigator yang sudah umum dipakai oleh user. SNMP Applet Server sebagai server dari applet. Ini terletak pada satu bagian dengan web server sehingga pada server ini sudah mendukung compiler dan library yang dibutuhkan


(36)

oleh aplikasi. SNMP Agent sebagai server yang terletak pada divice yang akan di monitor. Fungsinya akan menanggapi setiap request yang diterima dari aplikasi dan memberikan trap jika diperlukan oleh aplikasi.

Setiap jalur transportasi memiliki hubungan dan hubungan tersebut juga diperlihatkan pada diagram. Web browser akan melakukan request terhadap Web Server melalui HTTP Request, response dari Web Server akan diberikan berupa tampilan aplikasi dalam hal ini source html dan applet. Komunikasi antara aplikasi applet dan SNMP Applet Server dilakukan melalui protocol TCP/IP sedangkan dari aplikasi ke SNMP Agent sudah memakai protokol SNMP dengan melakukan perintah-perintah dasar seperti get, get-next, set dan trap.

3.1.3 Evaluasi

Pada tahap evaluasi, akan menggunakan beberapa prosedur yang disesuaikan dengan kebutuhan pengujian dan implementasi yang diantaranya adalah :

A. Populasi / Contoh Penelitian

Sampel penelitian kita lakukan dengan langsung mengambil data pada setiap device yang mana device ini merupakan satu host yang akan diambil datanya. Data bisa berupa paket – paket data yang masuk dalam satu jaringan. Dan data ini sangat bermanfaat sekali untuk keperluan manajemen jaringan atau operator jaringan.

Objek ID akan diperlukan sebagai variabel yang mewakili dari suatu nilai dalam divice. Nilai ini akan diolah hingga menjadi data yang bisa ditampilkan


(37)

oleh aplikasi, yang mudah dimengerti oleh user dan bisa ditampilkan ke dalam grafik statistik.

B. Instrument Pengumpul Data

Pada bagian ini, instrument yang digunakan adalah protokol SNMP. Protokol ini sangat penting sekali karena protokol ini sudah merupakan standar protokol untuk melakukan monitoring terhadap jaringan. Ini sesuai dengan RFC 1157 yang merupakan salah satu pengajuan memo untuk dapat di standarkan sebagai suatu protokol.

C. Validasi Instrument

Untuk mengetahui bahwa aplikasi yang dibuat ini sesuai dengan protokol yang digunakan adalah dengan melakukan pengujian terhadap aplikasi. Hasil yang diambil melalui protokol ini akan memberikan data yang awalnya telah dikumpulkan oleh Agent sebagai server. Pembentukan dan penggunaan dari protokol ini pun tidak bisa sembarang, karena ada beberapa hal yang mesti di sesuaikan dengan keperluan dari protokol tersebut, misalnya adalah port, port ini merupakan satu pintu gerbang yang harus disesuaikan antara peminta data dengan pemberi data, jika tidak maka apapun yang diminta pada aplikasi tidak akan mendapatkan data yang sebenarnya dibutuhkan.

Alamat divice bisa berupa IP Address valid yang akan di monitor atau di kontrol, juga sangat penting. Jika alamat yang diberikan tidak valid, maka data yang dibutuhkan juga tidak akan didapatkan. Ini sangat penting karena tujuan dari aplikasi ini adalah untuk melakukan monitoring terhadap divice.


(38)

D. Analisis Hasil Uji Coba

Bagian akhir adalah analisis yaitu melakukan pengamatan dari hasil uji coba aplikasi. Ini diperlukan untuk evaluasi, apakah perlu suatu perubahan atau tidak. Untuk mengetahu hal tersebut, penting sekali adanya pengamatan pada data yang telah terkumpul dari setiap permintaan data terhadap Server. Jika data yang dibutuhkan sudah benar dan cukup maka sudah dapat dipastikan bahwa aplikasi yang dibuat sudah sesuai. Jika belum, harus memperhatikan dari sisi mana data– data yang kurang tersebut belum mencukupi, apakah sistem pengambilan data kurang tepat karena tidak memperhatikan kemungkinan akan hilangnya data dalam perjalanan atau terlalu besarnya penggunaan aplikasi terhadap resource yang menyebabkan terganggunya pengiriman atau penerimaan data. Atau dari pengaturan dasar seperti alamat tujuan dan mode akses (contoh: public) pada variabel yang dikontrol.

3.2 Perancangan Sistem

Perancangan sistem dari Aplikasi Monitoring dengan menggunakan protokol SNMP adalah merupakan konsep hubungan client–server dimana keduanya memiliki keterkaitan dengan memaksimalkan pengumpulan data yang dibutuhkan. Dengan menggunakan protokol yang sudah baku ini, maka bisa dikatakan bahwa sistem yang akan dibuat bisa lebih mudah dan efisien dalam pembuatannya.


(39)

3.2.1 Komponen (Package)

Package yang digunakan pada aplikasi ini adalah mengacu pada AdventNet SNMP API. Berikut digambarkan komponen-komponen dari struktur package yang diambil dari AdventNet SNMP API.

Gambar 3.2. Package AdventNet SNMP API

Low-Level SNMP API merupakan komponen yang mengimplementasikan komunikasi, variabel dan SNMP security. Komponen ini merupakan dasar pembentukan komponen-komponen lain yang memberikan kemampuan terhadap security, transport dan SNMP message.

MIB Support akan memberikan kemampuan terhadap pengambilan MIB file ke dalam aplikasi. Method load( ) dan unload( ) akan berperan pada modul ini. High-Level API Beans merupakan komponen yang dibentuk menggunakan

MIB Support mibs Package GUI Application

MIB Browser

UI

High-Level API Beans

Low-Level SNMP API

SNMP Package

SNMP Transport provider Framework

Security & Access Control


(40)

java bean dan juga akan mengakses komponen yang berada pada daerah Low-Level API.

User Interface (UI) sebagai komponen yang membentuk tampilan sehingga akan baik dan berguna sekali untuk kemudahan penggunaan aplikasi. Komponen ini akan dimanfaatkan oleh aplikasi MIB Browser.

3.2.2 MIB Browser

Pada bagian sub-bab ini akan memberikan gambaran bagaimana sistem Monitoring Jaringan menggunakan protokol SNMP berbasis Java akan dibentuk dan bagaimana alur dari sistem monitoring ini bekerja. Tentunya dengan adanya sistem ini maka akurasi terhadap data juga monitoring terhadap beberapa peralatan bisa ditangani dengan baik.

Gambar 3.3. Modul pengambilan MIB file

Load MIB file akan melakukan proses pengambilan file dalam format MIB yang kemudian akan di proses oleh aplikasi untuk membaca setiap objek yang terdifinisi menjadi MIBModule Object. MIB file bisa diambil dari vendor yang menyediakan divice misalnya seperti switch, router atau server yang sudah baku dan sesuai dengan standard.

Aplikasi memiliki kemampuan untuk menampilkan lebih dari satu file sehingga akan memberikan kemudahan dalam mengontrol lebih dari satu divice.

MIB files


(41)

Gambar 3.4. Modul Aplikasi MIB Browser

Pada gambar 3.4 memberikan gambaran bagaimana MIB file yang tadinya sudah di ambil dari sistem kemudian ditampilkan ke dalam aplikasi dimana MIB Tree akan menampilkan seluruh objek-objek yang terkandung dalam MIB file atau objek khusus seperti tabel objek.

Dari MIB Tree, bisa dilakukan beberapa proses seperti proses untuk menjalankan perintah get, get-next atau set, dan perintah-perintah lain seperti menampilkan grafik utilisasi, deskripsi dari objek, menampilkan snmp table dan debug. Semua fungsi itu akan memanfaatkan package yang ada pada AdventNet API dan beberapa fungsi dasar untuk perhitungan sebagai pengolahan data.

view Graph MIB Tree object 1... object 2... object 3... object n...

get request get-next request set request Message SNMP

view description

view SNMP table


(42)

30 BAB IV

DESAIN DAN IMPLEMENTASI

4.1 Desain

Dalam desain aplikasi ini, penulis merujuk pada package yang disediakan oleh AdventNet. Package tersebut memiliki class-class yang memungkinkan aplikasi untuk berkomunikasi antara SNMPentity.

Untuk berkomunikasi, parameter yang digunakan untuk berkomunikasi antara SNMP entities adalah versi dari protocol SNMP yang digunakan antara entities, alamat tujuan (IP Address/Host), port yang digunakan untuk mengirimkan request, penghasil pesan yang unik (trap), dan request identifikasi untuk setiap pesan request. Class SnmpApi dan class SnmpSession sangat membantu yang benar-benar menyediakan fungsi-fungsi yang dibutuhkan. Dan class SnmpPDU mereferensikan data yang akan dikirim atau diterima menggunakan SnmpSession.

Sebagai awalan, untuk menyiapkan komunikasi antara SNMP entities adalah kita harus menginisialisasi SnmpAPI. Berikut bentuk penulisan yang digunakan:

SnmpAPI api = new SnmpAPI(); api.start();

SnmpAPI dijabarkan pada class java.lang.Thread, dan api.start() hanya menjalankan thread SnmpAPI. Thread ini memonitor seluruh session untuk timeout dan retransmission. Applikasi instantiate SnmpSession digunakan untuk berkomunikasi dengan peer SNMP entities. Api thread akan menambahkan


(43)

timeout dan retransmission ke dalam daftar. Juga, parameter session dari user seperti tanda debug ( api.getDebug() ), default remote port ( api.SNMP_PORT ) digunakan ketika mengirim request, referensi SNMPv3 security dan akses kontrol konfigurasi tabel. Sebagai catatan, satu session dapat digunakan untuk berkomunikasi dengan lebih dari satu SNMP peer. Sehingga system ini akan sangat bagus sekali untuk menggunakan satu api thread monitoring request pada seluruh session dalam applikasi. Penggunaan SnmpSession diperlihatkan pada bagian ini:

SnmpSession session = new SnmpSession(api); session.setPeername(String);

Applikasi mengeset peer entity untuk mengirim request dengan menggunakan perintah setPeername(). Attribut remoteHost dari SnmpPDU secara otomatis akan menolak peername yang terdapat dalam SnmpSession. Maksudnya adalah, ketika remoteHost bernilai null pada SnmpPDU, pesan akan dikirim ke host, peername, yang berada pada session. Ketika remoteHost tidak benilai null, pesan akan dikirim ke remoteHost. Dan ini akan selalu menjadi ide yang baik untuk mengeset peername ke dalam SnmpSession (host). Keadaan awal dari peername selalu null, dengan maksud bahwa ketika peername dalam session dan remoteHost dalam PDU bernilai null, maka “tidak ada remote IP Address yang didaftarkan”, akan mengembalikan nilai ke SnmpException.

session.setRemotePort(int port);

setRemotePort() memberikan nilai pada remote port dalam peer session yang akan digunakan dalam berkomunikasi. Nilai awal dari remote port adalah SnmpAPI.SNMP_PORT. Parameter remotePort dalam SnmpPDU akan


(44)

memberikan suatu nilai ke session. Akan sangat baik jika kita bisa menentukan port berapa yang akan kita gunakan untuk mengirim atau menerima pesan dalam berkomunikasi. Ketika remotePort dalam SnmpPDU bernilai 0, maka pesan akan dikirim ke remotePort yang terdaftar dalam session.

session.setVersion(int version);

Method setVersion() akan memberikan keadaan awal versi untuk pengiriman pesan yang digunakan oleh session. Objek PDU dan session dibentuk dengan sebuah kondisi nilai versi awal yaitu SNMPv1 (SnmpAPI.SNMP_VERSION_1). Bila ditentukan versi dari SNMP yaitu SNMPv3 API untuk membangun aplikasi, maka seluruh pesan dari versi SNMPv1, SNMPv2 dan SNMPv3 akan bisa dikirim dan diterima menggunakan session yang sama (akan mengabaikan seluruh seluruh versi yang diset dalam session objek). Versi dari SNMP diset ke session dengan tujuan untuk menentukan sistem pengiriman dan penerimaan pesan dalam session, jika versi dari SNMP tidak ditentukan maka secara otomatis akan diberikan nilai versi SNMPv1.

Peringatan: ketika applikasi mengirim SNMPv1 pdu menggunakan session dimana versi yang diset adalah SNMP_VERSION_3, maka pesan SNMPv3 lah yang akan kirimkan ke peer. Masalahnya muncul karena API menggunakan SNMP_VERSION_1 sebagai keadaan awal pdu version dan ini tidak membedakan antara versi aplikasi pada pdu sebagai default dan setting yang ditentukan SNMP_VERSION_1. Untuk menghindari masalah ini, aplikasi bisa mengeset session versi SNMP_VERSION_1 dan mengeset pdu versi ke SNMP_VERSION_2C atau SNMP_VERSION_3 bila ingin berkomunikasi menggunakan v2c dan v3 peer.


(45)

session.setCommunity(String community);

session.setWriteCommunity(String write_community);

Method setCommunity() mengeset komuniti (community) string pada SNMPv1 dan SNMPv2c. Community string pada pdu memberikan nilai community ke session. Ini berarti, hanya ketika community string pada pdu bernilai null, maka satu dari session sedang digunakan. WriteCommunity menggunakan setWriteCommunity() digunakan hanya untuk operasi SET. Ketika writeCommunity bernilai null, maka community itu sendiri digunakan juga untuk operasi SET. Sederhananya, community string, adalah nilai dari writeCommunity pada pdu yang memberikan satu nilai dalam session. Nilai awal community string adalah “public” dan nilai awal dari writeCommunity string adalah null. Sehingga, aplikasi harus mengeset writeCommunity sebelum menggunakan aplikasi untuk operasi SET.

session.setLocalPort(int port);

session.setLocalAddresses(String[] addresses);

Method setLocalPort() dan setLocalAddresses() digunakan untuk mengeset IP Address dan port terhadap session. Nilai awal yang diberikan adaalah localhost (127.0.0.1) untuk local address dan 0 untuk local port. Sebagai catatan bahwa setLocalAddress akan mengambil nilai string array sebagai argument.

session.setRetries(int retries); session.setTimeout(int timeout);

Method setRetries() dan setTimeout() digunakan untuk mengeset nilai pengulangan (retries) dan waktu menunggu dalam mili-detik (milli-seconds) sebelum mencoba melakukan pengiriman atau penarikan ulang. Nilai timeout


(46)

bergerak exponensial setelah pengiriman ulang yang pertama. Sebagai contoh, jika timeout bernilai 5000 (berarti 5 detik) dan pengulangan di set 3, pengiriman ulang pertama akan terjadi setelah 5 detik, berikutnya pada 15 detik dan seterusnya. Seperti parameter session yaitu remote host, port dan sebagainya, pengulangan dan timeout pada pdu memberikan nilai pada session. Nilai awal adalah 0 untuk pengulangan (berarti tidak mengirim ulang jika timeout) dan 5000 untuk timeout (berarti menunggu hingga 5 detik baru timeout akan terjadi).

session.setUserName(byte[] name);

Method setUserName() sangat dibutuhkan untuk menggunakan SNMPv2 message. Konfigurasi security dapat dipakai untuk digunakan dalam autentifikasi pesan sebelum dikirim ke SNMP peer. userName adalah tidak terlalu dibutuhkan pada komunikasi SNMPv1 dan SNMPv2c menggunakan API. Nilai awal dari userName adalah “initial”.

session.setTrapAuthEnable(Boolean isAuth);

setTrapAuthEnable() mengontrol apakah trap harus di autentifikasi bila pesan trap SNMPv3 diterima. Nilai awalnya adalah false, yang berarti tidak dibutuhkan autentifikasi trap dan notification.

session.setSocketParms(int socketTimeout, int socketDelay);

setSocketParms() mengeset parameter socket yang digunakan dalam berkomunikasi dengan session tersebut. Nilai awal dari socketTimeout adalah 250 ms, ini berarti sock.receive() memblok hanya untuk durasi socketTimeout dan akan mengaktifkan java.io.InteruptedIOException. Parameter socketDelay mengontrol waktu tunggu antara pemanggilan sock.receive() ketika java.io.InteruptedIOException aktif. Nilai awal dari socketDelay adalah 0 ms,


(47)

yang berarti penerimaan thread dalam SnmpSession akan mengembalikan penerimaan data tanpa menunggu antara pemanggilan interupsi sock.receive().

try {

session.open();

} catch (SnmpException e) {

System.err.println(“Error opening session: “ + e.getMessage()); System.exit(1);

}

Method open() akan membuka sebuah socket untuk berkomunikasi dengan SNMP entity yang lain dan mulai menerima thread untuk menerima dan mengolah pesan. Untuk mengaktifkan applet selalu melakukan open(Applet applet) untuk menggunakan session. Pada bagian ini kita tidak menggunakan dan tidak membahas method open(Applet applet).

Sekali session telah dijalankan, aplikasi akan mengubah seluruh parameter komunikasi, termasuk yang telah dijelaskan di atas. Ketika lokal port, lokal address atau socketParameters dirubah, maka aplikasi harus menutup session dan membukanya kembali untuk mengaktifkan seluruh perubahan yang terjadi. Pengubahan terhadap parameter yang lain seperti retries, timeout, community, writeCommunity, version dan remotePort akan memberikan efek perubahan pada seluruh nilai dalam pengiriman pesan. Urutan perintah yang dibutuhkan ketika local host, port atau parameter socket berubah adalah sebagai berikut:

session.setSocketParms(int newSocketTimeout, int newSocketDelay); session.setLocalPort(int newPort);


(48)

session.close(); Try {

session.open();

} catch (SnmpException e) {

System.err.println(“Error opening session: “ + e.getMessage()); System.exit(1);

}

4.1.1 Penanganan timeout dan pengiriman ulang

Ketika request telah diberikan ke session, pdu akan menambahkan ke daftar request (requestList) untuk menunggu ditanggapi. Ketika response diterima, daftar request tersebut dihapus dari requestList dan response akan ditambahkan ke daftar response (responseList). RequestList dan responseList keduanya akan berhubungan dengan session dan akan memperbaharui ketika mengirim dan menerima pesan menggunakan session. Disamping itu, api thread akan mengamati seluruh session terhadap timeout dan menambahkannya ke dalam daftar timeout (timeoutList) di session. Session ini akan menggunakan timeoutList untuk mengirim ulang pesan jika aplikasi akan mengirim ulang dimana pdu bernilai non-zero.

Aplikasi dapat mengontrol seluruh pengiriman ulang dan timeout menggunakan method setTimeout() dan setRetries() yang tersedia pada SnmpSession class. Aplikasi juga dapat memberikan suatu nilai pada timeout dan retries dengan menyeting setiap pdu yang akan dikirimkan.

Aplikasi juga dapat menangani timeout dan proses pengiriman ulang tanpa menggunakan servis dari API, jika dilakukan hal tersebut maka nilai awal yang


(49)

akan diberikan adalah 0. Ketika aplikasi menggunakan multiple session untuk berkomunikasi antara peer, aplikasi dapat menggunakan method untuk mengecek reaksi dan timeout. Proses tersebut adalah sebagai berikut.

api.checkResponse(); api.checkTimeout();

api.checkResponse() akan mengambil daftar response dalam session yang ada dalam daftar. Dan api.checkTimeout() akan mengambil daftar timeout dalam session yang ada dalam daftar dimana request yang mengalami timeout. Pada saat session mendapat response, aplikasi dapat menggunakan session.checkResponse() untuk mendapatkan response tersebut. Begitu pula session.checkTimeout() akan digunakan untuk mendapatkan request yang mengalami timeout.

Aplikasi akan selalu menggunakan method session.send(SnmpPDU) untuk mengirim sebuat request. Ketika session.method syncSend(SnmpPDU) untuk mengirim dan menerima synchronous PDU, timeout akan ditangani secepatnya dalam API, dan syncSend() akan bernilai null jika timeout terjadi. Method api.checkResponse() dan api.checkTimeout() akan tidak berfungsi bila pesan dikirim atau diterima menggunakan syncSend(SnmpPDU) (synchronously).

4.1.2 Operasi pengambilan data SNMP yang digunakan

Class SnmpV3Message (API) berfungsi untuk pertukaran data antara SNMP peer entities. SnmpV3Message terdiri dari SnmpMessage (API) yang berfungsi untuk pemakaian SNMPv1 dan SNMPv2. Class SnmpPDU berfungsi untuk melakukan pertukaran data antara SNMP entities. SnmpPDU dibungkus dalam sebuah pesan, dimana pesan dapat berasal dari SNMPv1, SNMPv2c atau SNMPv3. Aplikasi tidak akan memperhatikan pesan dari class Snmp3Message dan


(50)

SnmpMessage, dan aplikasi dapat bekerja sendiri dengan SnmpPDU untuk berinteraksi dengan peer. SnmpPDU menyediakan method getMsg() untuk mengakses SnmpMessage.

SnmpPDU sebagian besar menyediakan parameter komunikasi yang berhubungan dengan SnmpSession. Dimanapun nilai parameter yang diberikan pada pdu, ini akan memberikan nilai pada session. Beberapa hal yang akan dihasilkan oleh SnmpPDU adalah:

a. Method untuk bekerja dengan variable bindings.

b. Method yang berhubungan untuk seting PDU yang digunakan oleh operasi SNMP.

c. Method untuk mengaktifkan penggunaan objek SnmpPDU untuk multiple request.

Method – method yang ada pada SnmpPDU yang bekerja dengan variable bindings diantaranya adalah:

a. addNull(SnmpOID oid);

b. addVariableBinding(int index, SnmpVarBind varbind) c. void removeVariableBinding(int index)

d. addVariableBinding(SnmpVarBind varbind)

e. void removeVariableBinding(SnmpVarBind varbind) f. SnmpOID getObjectID(int index)

g. SnmpVar getVariable(int index)

h. void setVariable(int index, SnmpVar var) i. SnmpVarBind getVariableBinding(int index) j. Vector getVariableBindings()


(51)

k. String printVarBinds()

Method – method untuk menyeting yang berhubungan dengan SnmpPDU adalah:

a. byte getCommand()

b. void setCommand(byte type) c. int getReqid()

d. void setRegid(int id)

Operasi GetBulk yang berhubungan dengan parameter v2c & v3: a. int getMaxRepetitions()

b. int getNotRepeaters()

c. void setMaxRepetitions(int max_rep) d. void setReqid(int id)

Model parameter akses kontrol yang berhubungan dengan SNMPv3: a. byte[ ] getContextID()

b. byte[ ] getContextName() c. void setContextID(byte[ ] id) d. void setContextName(byte[ ] name)

Indikator Exception pada SnmpPDU: a. int getErrindex()

b. string getError() c. int getErrstat()

d. void setErrindex(int index) e. void setErrstat(int stat)


(52)

Pada saat SnmpPDU di setup menggunakan method – method tersebut diatas, SnmpPDU akan di kirim melalui session ke SNMP peer entity. SnmpSession menyediakan method-method untuk berinteraksi dengan peer dengan urutan sebagai berikut:

a. syncSend(pdu) untuk mengirim synchronous request dan menerima response. b. send(pdu) untuk mengirim request dan method checkResponses(),

checkTimeout(int reqid) dan receive(int reqID) untuk menerima asynchronous response.

c. Gunakan send(pdu) untuk mengirim request dan gunakan method callback untuk mengambil dan memroses pesan.

4.1.3 Fasilitas sending/receiving TRAPS dan NOTIFICATIONS

Method – method trap dan notifikasi yang terdapat pada class SnmpPDU adalah:

a. SnmpOID getEnterprise() b. int getSpecificType() c. int getTrapType()

d. void setEnterprise(SnmpOID oid) e. void setSpecificType(int type) f. void setTrapType(int type) g. InetAddress getAgentAddress()

h. void setAgentAddress(InetAddress addr) i. void setUpTime(long uptime)


(53)

4.1.4 Pemrosessan pesan dan autentifikasi

Tatap muka SnmpClient (API) digunakan oleh aplikasi yang akan melakukan pengiriman dan penerima pesan asynchronous, atau aplikasi yang akan melakukan proses autentifikasi. Tatap muka SnmpClient menyediakan method callback untuk mengecek terhadap response. Method callback() secara otomatis dijalankan ketika response diterima. Aplikasi akan meminta session untuk menggirim pesan terhadap method callback(). Jika user mengeset session.setCallbackThread(true) maka callback method akan diberikan tanda terhadap thread yang berbeda ketika respon diterima. Jika session.setCallbackThread(false) (defaut), maka callback method akan diberi tanda pada thread yang sama dari thread yang diterima dan respon berurutan dapat diterima hanya jika user kembali dari callback method. Tetapi pemanggilan fungsi dari thread yang berbeda, kemampuan penerimaan thread pada penerimaan respon atau trap akan sedikit jelek. Untuk melakukan pemanggilan balik ketika respon diterima, aplikasi harus menggunakan SnmpClient dan meregisterkan dengan SnmpSession menggunakan method addSnmpClient( ).

4.1.5 Pemeliharaan sekuriti dan parameter akses kontrol

Setiap entiti SNMPv3 akan mengatur konfigurasi informasi yang berhubungan untuk memulai kembali pengolahan data. Contoh untuk sebuah informasi yaitu engineID. Parameter engineID dan engineBoots menyimpan nilai (count), berapa kali entity SNMPv3 diulang. Parameter engineBoots digunakan untuk menjalankan pengecekan berkala, untuk memastikan bahwa pesan telah sampai tanpa melakukan pengulangan. SnmpAPI menyediakan method untuk mendukung hal tersebut diatas.


(54)

a. api.setSnmpEngineID(byte[ ] id); b. api.setSnmpEngineBoots(int boots); c. api.setSnmpEngineTime(int time); d. api.setTimeWindow(int win);

Method setTimeWindow() digunakan untuk mengeset timewindow, dimana waktu (time) dengan pesan harus diterima setelah pengiriman. Ini diperlukan untuk pertimbangan pada waktu request/response. Aktualisasi cek memaksa ketika dibutuhkan autentifikasi (SnmpAPI.AUTH_NO_PRIV atau SnmpAPI.AUTH_PRIV) untuk berkomunikasi dengan SNMPv3 peer.

api.setSerializeFileName(String name); api.serialize();

Method setSerializeFileName() mengisi nama dari file dari seluruh konfirugasi yang disimpan. Method serialize() menyimpan konfigurasi saat ini dari SNMPv3 entity.

api.deSerialize();

Method deSerialize() menghasilkan konfigurasi yang ada dalam serialize file terhadap SNMPv3 entity. Tabel konfigurasi USMUserTable (User based Security Model), VACM (View based Access Control Model), dan engineBoots dapat di serialize dan de-serialize oleh API.

Begitupula class SnmpAPI menyediakan method untuk mengakses tabel konfigurasi SNMPV3 yang berbeda seperti USMUserTable, VacmAccessTable dan sebagainya. Aplikasi dapat menambahkan atau memodifikasi entity yang ada ke dalam tabel. Aplikasi juga dapat membaca (read) konfigurasi melalui external datasource dan menambahkan entity ke dalam tabel. Dengan cara ini, aplikasi


(55)

dapat menyimpan seluruh konfigurasi security ke dalam database tersentral dan memegang tabel ketika aplikasi starts-up.

Aplikasi dapat menambahkan ke dalam USMUserTable sebagai berikut:

a. Mendapatkan referensi ke objek USMUserTable

USMUserTable usmtable = (USMUserTable)api.getSecurityProvider(). getTable(USE_SECURITY_MODEL);

b. Membentuk USMUserEntry baru dan menentukan parameter yang berbeda

USMUserEntry entry = new USMUserEntry(byte[] usr, byte[] id);

entry.setAuthProtocol(int protocol);

c. Tambahkan USMUserEntry ke USMUserTable

usmtable.addEntry(entry);

Aplikasi bisa mengikuti urutan perintah dibawah untuk memodifikasi USMUserTable.

a. Mendapatkan referensi ke objek USMUserTable

USMUserTable usmtable = (USMUserTable)api.getSecurityProvider(). getTable(USE_SECURITY_MODEL);

b. Mendapatkan referensi ke objek USMUserEntry yang dibutuhkan untuk modifikasi


(56)

entry.setAuthProtocol(int protocol);

c. Kembalikan hasil perubahan ke USMUserTable.

usmtable.modifyEntry(entry);

4.1.6 Pengaturan berbagai macam counter yang dideskripsikan dalam group SNMP

API mengatur group SNMP counter, seperti yang dijabarkan pada RFC1213-MIB, untuk setiap entiti SNMP dalam aplikasi. Setiap entity SNMP diidentifikasikan dengan parameter local address dan local port. Aplikasi dapat mengakses group SNMP menggunakan:

api.getSnmpGroup(String local_address, int port);

Pada saat objek SnmpGroup diakses, objek tersebut dapat digunakan untuk mendapatkan nilai dari counter yang berbeda.

SnmpGroup groupCounters = api.getSnmpGroup(String local_address, int port);

groupCounters.getSnmpInBadVersions( );

API tidak melakukan perubahan pada empat fariabel counter dibawah dan aplikasi yang akan melakukan penambahan secara otomatis.

snmpInBadCommunityNames snmpInBadCommunityUses snmpInTotalReqVars snmpInTotalSetVars

Aplikasi dapat menggunakan method-method dibawah untuk melakukan update terhadap counters.


(57)

SnmpGroup groupCounters = api.getSnmpGoup(String local_address, int port);

gourpCounters.incrSnmpInBadCommunityNames( ); gourpCounters.incrSnmpInBadCommunityUses( ); gourpCounters.incrSnmpInTotalReqVars( ); groupCounters.incrSnmpInTotalSetVars( );

Dalam manajement aplikasi yang sederhana, counter digunakan khusus untuk agent seperti snmpInGetNexts, snmpInSetRequest dan sebagainya yang memberikan nilai 0.

4.1.7 Beberapa definisi konstanta yang dibutuhkan aplikasi

Aplikasi menggunakan nilai konstanta yang dibutuhkan pada operasi-operasi yang berbeda dalam SNMP, nilai error-status pada pesan tanggapan, berbagai tipe objek dan sebagainya.

Tiga konstanta yang ada di SnmpAPI class adalah:

Tabel 4.1. Daftar konstanta SnmpAPI class

CLASS KETERANGAN

SnmpAPI.SNMP_VERSION_1 Snmp versi 1 SnmpAPI.SNMP_VERSION_2 Snmp versi 2 SnmpAPI.SNMP_VERSION_2C Snmp versi 2c SnmpAPI.SNMP_VERSION_3 Snmp versi 3

Operasi SNMP yang berhubungan, yang berada pada SnmpAPI adalah: Tabel 4.2. Daftar operasi SnmpAPI

CLASS KETERANGAN

SnmpAPI.GET_REQ_MSG Konstanta untuk GET Request PDU. SnmpAPI.GET_RSP_MSG Konstanta untuk GET Response PDU.


(58)

SnmpAPI.GETBULK_REQ_MSG Konstanta untuk GETBULK request PDU. SnmpAPI.GETNEXT_REQ_MSG Konstanta untuk GETNEXT request PDU. SnmpAPI.INFORM_REQ_MSG Konstanta untuk INFORM request PDU. SnmpAPI.TRP_REQ_MSG Konstanta untuk TRAP PDU.

SnmpAPI.TRP2_REQ_MSG Konstanta untuk NOTIFICATION PDU. SnmpAPI.SET_REQ_MSG Konstanta untuk SET request PDU. SnmpAPI.Standard_Prefix Standar prefix digunakan jia OID tidak

diberikan oleh root.

Tabel 4.3. Daftar variabel error SnmpAPI CLASS SnmpAPI.SNMP_ERR_NOERROR SnmpAPI.SNMP_ERR_TOOBIG SnmpAPI.SNMP_ERR_NOSUCHNAME SnmpAPI.SNMP_ERR_BADVALUE SnmpAPI.SNMP_ERR_READONLY SnmpAPI.SNMP_ERR_GENERR SnmpAPI.SNMP_ERR_AUTHORIZATIONERROR SnmpAPI.SNMP_ERR_COMMITFAILED SnmpAPI.SNMP_ERR_INCONSISTENTNAME SnmpAPI.SNMP_ERR_INCONSISTENTVALUE SnmpAPI.SNMP_ERR_NOACCESS SnmpAPI.SNMP_ERR_NOCREATION SnmpAPI.SNMP_ERR_NOTWRITABLE SnmpAPI.SNMP_ERR_RESOURCEUNAVAILABLE SnmpAPI.SNMP_ERR_UNDOFAILED SnmpAPI.SNMP_ERR_WRONGENCODING SnmpAPI.SNMP_ERR_WRONGLENGTH SnmpAPI.SNMP_ERR_WRONGTYPE SnmpAPI.SNMP_ERR_WRONGVALUE

4.1.8 Variabel class

Class SnmpVar ada dalam AdventNet SNMP API package yang merupakan base class dari seluruh variable class SNMP. SnmpVar adalah sebuah class yang menyediakan method-method yang akan digunakan aplikasi untuk bekerja dengan


(59)

fariabel SNMP. Class ini menyediakan method untuk mencetak (print), ASN encoding, ASN decoding dan sebagainya, tetapi tidak semuanya merupakan public. Class SnmpVar diklasifikasikan dalam sub class yaitu sub class SnmpString dan sub class SnmpUnsignedInt. Dibawah ini akan di jabarkan daftar class SnmpVar yang digunakan:

Tabel 4.4. Daftar direct sub-class dari SnmpVar

CLASS KETERANGAN

SnmpInt Digunakan untuk mewakili variabel Integer. SnmpNull Digunakan untuk mewakili variabel NULL.

SnmpOID Identifikasi objek dalam SNMP. Class ini digunakan untuk berhubungan dengan MIB.

SnmpString Digunakan untuk SNMP Oktet String. SnmpUnsignInt Merupakan super-class dari SNMP Aplikasi. SnmpBitstring Digunakan untuk mendefinisikan variabel SNMP

BITSTRING. Juga untuk mendukung penggunaan Bitstring.

SnmpCounter64 Untuk tipe variabel SNMP Counter 64.

Tabel 4.5. Daftar SnmpString sub-class

CLASS KETERANGAN

SnmpOpaque -

SnmpIpAddress Digunakan untuk tipe variabel SNMP IP Address. SnmpNetworkAddress Digunakan untuk tipe variabel Netword Address. SnmpNsap Digunakan untuk tipe variabel SNMP NSAP Address. SnmpBits Digunakan untuk membentuk objek dari SnmpString.

SnmpBits juga memiliki method untuk mengambil nilai dari form yang berbeda. (spt, String, Byte).

Tabel 4.6. Daftar SnmpUnsignedInt sub-class

CLASS KETERANGAN


(60)

SnmpGauge Digunakan untuk tipe variabel SNMP Gauge. SnmpTimeticks Digunakan untuk tipe variabel SNMP Timeticks.

Dibawah ini akan di jabarkan tentang method-method yang menyediakan tipe data dan sintak (tipe string) dari data.

Method getType() dan getTypeString() ada dalam SnmpVar yang menyediakan cara untuk mendapatkan tipe dan sintak data. Tipe di definisikan dalam SnmpAPI seperti yang dijabarkan diatas yaitu SnmpAPI.INTEGER, SnmpAPI.STRING dan sebagainya. Method getTypeString() mengembalikan nilai string seperti “INTEGER”, “BITSTRING” dan sebagainya, yang didasarkan pada objek SnmpVar.

Class SnmpVar terdiri dari abstrak method yang digunakan terhadap seluruh variabel class. Berikut rinciannya.


(61)

A. Method toString( ) dan toTagString( )

Method toString() akan mengubah data kedalam bentuk printable string. Sebagai contoh, bila method toString() digunakan terhadap objek SnmpIpAddress(), maka akan dikembalikan nilai IP Address yang bernilai string (“127.0.0.1”), dan jika method toString() digunakan terhadap objek SnmpCounter64, maka akan dikembalikan nilai string “0x” yang diikuti data Counter64 dalam format hexadecimal. Method toString() biasanya digunakan oleh aplikasi untuk mencetak nilai dari objek SnmpVar. Berikut adalah contoh penggunaannya.

SnmpVar var = pdu.getVariable(0);

System.out.println(“Type =” + var.getTypeString() + “:Value =” + var.toString());

Potongan kode diatas akan menghasilkan output seberti ini, jika objek SnmpIpAddress bernilai lokal IP Address.

Type =IPADDRESS:Value =127.0.0.1

Potongan kode diatas akan menghasilkan tipe data Counter64 dan bernilai 255, jika method yang digunakan toTagString().

Type =COUNTER64:Value =0x0255

B. Method toValue( ) dan toVarObject( )

Method toValue() dan toVarObject() dalam class SnmpVar memberikan nilai terhadap variabel dari masing-masing tipe Objek. Method ini melakukan hal yang sama terhadap seluruh class SnmpVar kecuali SnmpIpAddress, SnmpNetworkAddress dan SnmpOID. Berikut tabel yang menampilkan perbedaan antara method toValue() dan getVarObject() diantara ketiga class berikut.


(62)

Tabel 4.7. Daftar perbedaan method toValue( ) dan getVarObject( )

S.No CLASS NAME toValue() getVarObject()

1 SnmpIpAddress Menghasilkan String IP Address byte[ ]

( 7F000001 )

Menghasilkan String IP Address dalam notasi titik.

( 127.0.0.1)

2 SnmpNetworkAddr Sama seperti point 1. Sama seperti point 1. 3 SnmpOID

(untuk sysDesc dalam RFC1213-MIB)

Menghasilkan int[ ] dari nilai OID.

( int[ ] = {1, 3, 6, 1, 2, 1, 1, 1} )

Menghasilkan titik OID sebagai objek String. ( “1, 3, 6, 1, 2, 1, 1, 1” )

Untuk seluruh class selain dari ketiga class diatas (SnmpIpAddress, SnmpNetworkAddress, dan SnmpOID) akan menghasilkan nilai yang sama sebagaimana dijabarkan dalam tabel berikut.

Tabel 4.8. Daftar persamaan

S.No CLASS NAME toValue() / getVarObject()

1 SnmpBitString Menghasilkan object String yang merepresentasikan nilai byte.

2 SnmpCounter64 Menghasilkan long[2] yang merepresentasikan nilai Counter64.

3 SnmpNull Selalu menghasilkan nilai NULL. 4 SnmpInt Menghasilkan object Integer. 5 SnmpUnsignedInt

SnmpTimeticks SnmpCounter SnmpGauge

Menghasilkan object Long.

6 SnmpString SnmpNsap SnmpOpague SnmpBits

Menghasilkan object String.

C. Method toBytes()

Method toBytes() memberikan nilai sebagai bentuk baris-baris byte terhadap seluruh class SnmpVar. Seluruh sub-class SnmpString, seperti


(63)

SnmpNsap, SnmpOpaque, SnmpIpAddress, SnmpNetworkAddress dan SnmpBits akan memberikan nilai byte array.

Seluruh sub-class SnmpUnsignedInt, seperti SnmpTimeticks, SnmpCounter dan SnmpGauge menghasilkan byte array. Contoh, SnmpUnsignedInt bernilai 0xDEADBE EF, nilai byte array akan memiliki nilai:

Byte[0] = 0xDE, byte[1] = 0Xad, byte[2] = 0XBE, dan byte[3] = 0xEF Method toBytes() dari objek SnmpCounter64 menghasilkan byte array dengan nilai dari objek Counter64. Panjang data yang dihasilkan selalu berjumlah 8 dimana byte[0] akan menunjuk pada urutan yang terakhir sedangkan byte[7] akan menunjuk pada urutan pertama. Sebagai contoh, objek Counter64 bernilai 0x0102030405060708, maka method toBytes() akan bernilai:

byte[ ] = {8, 7, 6, 5, 4, 3, 2, 1}

Method statik createVariable() tersedia dalam class SnmpVar, fungsinya membentuk objek variabel SNMP. Beberapa statik variabel yang disediakan adalah sebagai berikut.

Tabel 4.9. Daftar statik variabel VARIABLE

SnmpAPI.INTEGER SnmpAPI.STRING SnmpAPI.BITSTRING SnmpAPI.OBJID SnmpAPI.NULLOBJ SnmpAPI.NETWORK

ADDSS

SnmpAPI.COUNTER SnmpAPI.GAUGE SnmpAPI.UNSIGNED32 SnmpAPI.TIMETICKS SnmpAPI.OPAQUE SnmpAPI.UNITEGER32 SnmpAPI.NSAP SnmpAPI.COUNTER64

Jika variabel tidak dapat di inisialisasi, pesan kesalahan akan dilemparkan ke SnmpException.


(64)

4.2 Implementasi Aplikasi

Melanjutkan dari pembahasan sebelumnya mengenai desain, maka pada bab ini desain tersebut akan diimplementasikan dalam bentuk sebuah aplikasi. Aplikasi ini dibuat dengan menggunakan bahasa java Applet. Applet diperlukan untuk memberikan user interface yang mudah untuk di mengerti oleh user dan mudah dalam penggunaannya.

4.2.1 Persiapan Awal

Spesifikasi komputer yang diperlukan dalam mengoperasikan aplikasi monitoring ini adalah prosessor minimum Pentium 233 MHz, memori minimum 64MB RAM, dan disk space minimum 50 MB.

Sedangkan perangkat lunak (software) yang diperlukan adalah sebagai berikut.

a. JDK 1.1.6 atau JDK 1.3. Untuk sistem operasi Windows 95/98/NT/XP/ Solaris bisa didapatkan dari web site Sun’s Javasoft (http://www.javasoft.com). Sedangkan untuk sistem operasi Linux bisa didapatkan di http://www.blackdown.org. Atau bisa langsung menjalankan file jdk (j2sdk-1_3_1_06-windows-i586.exe) yang sudah disediakan pada CD Proyek Tugas Akhir dalam folder “j2se_131”.

b. Web browser yang mendukung Java (Netscape 4.x / IE 4.x) dengan Sun’s Java Plug-in, untuk menjalankan applet menggunakan web browser yang di buat mengguanakan SNMP API. Plug-in tersebut dibutuhkan untuk menjalankan applet yang mana komponennya di sediakan oleh komponen swing atau JFC.


(65)

Java Plug-in ini bisa di dapatkan pada site http://java.sun.com/products/plugin/1.1.1 /index.html.

Perlu diperhatikan bahwa patch JDK 1.1 untuk Netscape 4.x harus di dibuang sebelum memasang Sun’s Java Plug-in. Jika tidak dilakukan, maka Patch Netscape JDK 1.1 akan konflik dengan Java Plug-in dari Sun.

c. Source file aplikasi Agent yang juga sudah disertakan pada CD Proyek Tugas Akhir. Pada folder “agent” sub folder “win” merupakan file instalasi untuk Sistem Operasi Windows sedangkan pada sub folder “linux” merupakan file instalasi untuk Sistem Operasi linux.

4.2.2 Instalasi

Sebelum aplikasi digunakan, diperlukan persiapan dasar seperti melakukan instalasi JDK 1.3, registrasi library dan pengaktifan service SNMP Agent pada komputer lokal jika pengujian dilakukan pada komputer lokal. Untuk mempermudah, penulis akan memisahkan tahap-tahapnya mulai dari instalasi JDK 1.3, pengesetan CLASSPATH, dan instalasi aplikasi.

a. Jalankan file j2sdk-1_3_1_06-windows-i586.exe yang bisa di download pada web site http://java.sun.com/downloads/index.html atau pada CD Proyek Tugas Akhir. Ikuti petunjuk yang diperlihatkan pada saat instalasi dan tentukan letak instalasi pada drive file sistem.

b. Pada CD Proyek Tugas Akhir, sudah disiapkan satu file untuk mendaftarkan CLASSPATH dan mendaftarkan posisi java home yang nantinya diperlukan untuk menjalankan aplikasi. Dalam hal ini file yang sudah disiapkan adalah file startMibBrowser.bat dimana isi dari file tersebut adalah sebagai berikut. set JAVA_HOME_DIR = c:\jdk1.3


(66)

set PATH = %JAVA_HOME_DIR%\bin;%PATH%

set CLASSPATH = .;..\classes;..\classes\lib\MibBrowser.jar

Pengguna bisa merubah isi dari file startMibBrowser.bat untuk menyesuaikan posisi java home. Dalam hal ini, dicontohkan posisi java home ada di c:\jdk1.3 c. Untuk menjalankan aplikasi MIB Browser, diperlukan source file MIB

Browser yang ada pada CD Proyek Tugas Akhir. Seluruh file berada pada folder “src-app” sub folder “appMibBrowser”. Copy seluruh file pada folder tersebut dan letakkan pada drive file sistem yang diinginkan, sebagai contoh di letakkan pada drive “C:” atau “D:”. Kemudian jalankan file startMibBrowser.bat.

d. Untuk menjalankan aplikasi Agent, bisa langsung mengaktifkan service SNMP Agent (jika Sistem Operasi Win 2000/XP) yaitu dengan menambahkan komponen pada Windows Setup. Urutan penambahan service tersebut adalah sebagai berikut: Start Menu Program Control Panel Add/Remove Programs Add/Remove Windows Components Windows Components Wizard, pada tab Windows Components Wizard ini, double click pada Management and Monitoring Tools pilih Simple Network Management Protocol, tekan tombol OK hingga komponen berhasil terinstal. Sedangkan untuk Sistem Operasi Linux bisa langsung diaktifkan pada saat instalasi Sistem Operasi. Atau jika kondisi Sistem Operasi tidak terdapat komponen untuk menambahkan service SNMP Agent, jalankan file-file yang berada pada folder “agent” dalam CD Proyek Tugas Akhir (sesuaikan Sistem Operasi apa yang digunakan terhadap source di folder “agent” tersebut).


(67)

4.2.3 Struktur direktori dan file

Struktur direktori aplikasi pada folder “src-app” (CD Proyek Tugas Akhir) dalam ruang lingkup aplikasi ini akan dijelaskan sebagai berikut.

Tabel 4.10. Daftar struktur file

DIREKTORI KETERANGAN

classes meyimpan seluruh file class dari aplikasi yang sudah di compile lib meyimpan seluruh library yang diperlukan aplikasi

src meyimpan seluruh file java dari aplikasi mibs menyimpan file-file RFC

4.2.4 Pengoperasian aplikasi

File startMibBrowser.bat diperlukan untuk menjalankan aplikasi, dimana tampilan akan terbentuk berupa applet seperti yang diperlihatkan berikut ini.


(1)

77

b. Ambil file yang mengandung informasi debug, ini bisa didapat melalui copy informasi debug dan kita simpan ke dalam satu file, contoh file “debug.txt”. c. Klik tombol decode.

d. Hasil decode akan ditampilkan pada bagian bawan dialog.

4.3 Implementasi pada Jaringan

Dengan melakukan percobaan pada satu jaringan dimana sysAdmin akan melakukan proses request terhadap salah satu server dan melihat grafik trafik data yang masuk atau keluar pada server dengan IP Address 172.16.1.167.

4.3.1 Request dan Update

Dalam keadaan aplikasi jalan dan MIB Tree sudah menampilkan object ID yang benar, maka aplikasi sudah siap melakukan request.

Dengan menggunakan tools menu yang tersedia, pilih terlebih dahulu objek pada MIB Tree yang ingin diambil datanya. Kemudian tentukan alamat tujuan yang akan menuju ke device seperti diperlihatkan pada gambar 4.1. Untuk community secara otomatis akan bernilai “public”.

Jika pengaturan dasar ini sudah dipenuhi, maka proses request bisa dilakukan yaitu dengan memilih icon pada menu yang tersedia. Untuk melakukan proses “set”, nilai yang bisa diberikan dapat diisikan pada inputan “Set Value”. Pada percobaan ini, dilakukan proses “set” dengan nilai “STIKOM Jl. Raya Kedung Baruk” dan nama community yang digunakan adalah “CmtTest” (“CmtTest” di set pada Agent – Control Panel SNMP Service Properties). Hasil percobaan bisa dilihat pada gambar 4.13. Pada layar diperlihatkan bahwa proses “get” yang pertama nilai dari object sysLocation adalah kosong, kemudian


(2)

pada proses berikutnya yaitu proses “set”, nilai diberikan ke object sysLocation adalah “STIKOM Jl. Raya Kedung Baruk”. Dan terakhir dilakukan proses “get” dimana nilai yang didapatkan sudah tidak lagi kosong tapi sama dengan nilai yang sudah diberikan sebelumnya.

Gambar 4.13. Hasil Uji Coba Proses “get/set”

4.3.2 Menampilkan grafik

Mengambil data yang kemudian ditampilkan ke dalam grafik merupakan bagian penting dalam aplikasi ini, fungsinya lebih memberikan kemudahan dalam membaca informasi yang diambil sehingga mudah dalam menganalisa atau mengontrol.

Untuk itu telah disediakan fungsi untuk menampilkan dialog grafik seperti yang terlihat pada gambar 4.10.


(3)

79

Dengan memilih salah satu object pada MIB Tree, selanjutnya memilih icon untuk menampilkan grafik. Pada dialog tersebut terdapat isian yang dapat disesuaikan dengan kebutuhan hingga dapat menghasilkan file log dalam format txt. Pada percobaan ini dilakukan terhadap IP Address 172.16.1.167 dengan object ipInReceive dan hasil ditunjukan pada gambar 4.14.


(4)

80 PENUTUP

5.1 Kesimpulan

Aplikasi ini dapat melakukan beberapa fungsi yang berguna untuk membantu administrator jaringan (user) dalam melakukan pengamatan terhadap peralatan. Dan dengan dilengkapi secara visual berupa grafik, menjadikan nilai tambah untuk mempermudah dalam melakukan analisa yang tepat.

Dari hasil pengujian pada bab sebelumnya, dapat diambil kesimpulan bahwa aplikasi monitoring ini dapat mencapai tujuan yang diharapkan yaitu :

1. Menghasilkan aplikasi dengan protokol baku SNMP berbasis java. 2. Mengumpulkan data yang diterima dari Agent dengan

memvisualisasikan ke dalam bentuk grafik sehingga mempermudah dalam pembacaan dan analisa data peralatan jaringan.

3. Memberikan kemudahan penggunaan dalam setiap fungsi yang disediakan dalam aplikasi, baik itu untuk operasi-operasi dasar SNMP dan merekam hasil pengumpulan data ke dalam file (backup).

5.2 Saran

Pengembangan terhadap aplikasi ini tentunya diperlukan untuk lebih memperluas ruang lingkup aplikasi dan penambahan fungsi-fungsi yang tujuannya adalah untuk memberikan kemudahan terhadap pengguna (user) untuk membantu dalam aktifitas pengamatan jaringan.

Adapun saran-saran yang diberikan untuk pengembangan tersebut antar lain :


(5)

81

1. Meminimalisasi fungsi-fungsi yang ada sehingga memberikan waktu loading yang lebih cepat terhadap aplikasi.

2. Memberikan fasilitas peringatan melalui SMS (Short Message Service) (warning to sms) dari setiap trap yang diterima atau pada kondisi pengamatan yang melewati batas normal. Fungsi ini akan lebih menguntungkan administrator yang berada di luar untuk mengetahui apakah jaringan yang diamati dalam kondisi normal atau tidak.

3. Memberikan report dalam bulanan atau tahunan ke dalam bentuk grafik yang mudah di baca dan dimengerti.

Sebenarnya masih banyak yang bisa dilakukan untuk pengembangan aplikasi ini, baik untuk tujuan yang lebih mengarah ke report atau memaksimalkan fungsi-fungsi yang ada dalam library.


(6)

82

Ayers, Denny, Patzer, Andrew, Halberstandt, Ari, 1999, Professional Java Server

Programming, Wrox Press Ltd, Birmingham B27 6BH, USA.

Diversified Data Resource, Inc, 1996 – 2000, Network Management, 114 Professional Center Drive – Novoto, CA <http://www.ddri.com>.

Flanagan, David, 1998, Java Script The Definitive Guide, O’Reilly & Associates, Inc, 101 Morris Street.

Internet FAQ Consortium, 2000, Internet FAQ Archives <http://www.faqs.org>. Landfield Group, 1996, Internet RFC/STD/FYI/BCP Archives, The Landfield

Group <http://www.landfield.com>.

Simoneau, Paul, 1999, SNMP Network Management, McGraw-Hill, New York San Francisco Washington, D.C.