[jurnal pa] sms alert untuk reporting status server

Upload: ocaxsholmes

Post on 19-Jul-2015

530 views

Category:

Documents


0 download

TRANSCRIPT

SMS ALERT UNTUK REPORTING STATUS SERVER SMS ALERT FOR SERVER STATUS REPORTRizqi Lutfia Chandra1, Tribroto Harsono, ST., MT.2, Rolly Maulana Awangga, ST.3 Fakultas Informatika Institut Teknologi Telkom Jl. Telekomunikasi, Dayeuh Kolot, Bandung 40257 Telp. (62-22) 7564108 ext. 2333 [email protected], [email protected], [email protected],2,3

ABSTRAKMonitoring Jaringan merupakan kegiatan yang harus dilakukan untuk meningkatkan performansi sebuah jaringan dan server. Disamping sebagai alat untuk notifikasi terjadinya gangguan dalam jaringan dan server, monitoring juga dapat difungsikan untuk mencegah gangguan yang mungkin akan terjadi. Sejauh ini, monitoring jaringan belum menyediakan notifikasi gangguan yang efektif untuk memberitahukan pada admin. Proyek akhir berjudul SMS Alert untuk Reporting Status Server dibuat untuk mengatasi masalah tersebut. Proyek akhir ini dikembangkan menggunakan metode pemrograman berorientasi objek, dan dilakukan penambahan modul untuk pembacaan status dari nagios dan script untuk notifikasi sms. Proyek akhir ini dibangun dengan menggunakan bahasa python. Proyek akhir ini dapat memonitoring server dan membaca status per servicenya, kemudian di olah untuk notifikasi sms. Proyek akhir ini juga menyediakan aplikasi web untuk menampung error yang terjadi dan menyediakan fungsi untuk menginputkan saran perbaikan. Modul dan fungsi tersebut dimaksudkan untuk meningkatkan performansi monitoring jaringan. Kata kunci: monitoring server, nagios, python, SMS gateway

ABSTRACTNetwork monitoring is an activity that must be done to improve the performance of network and servers. Beside as tool for error notification network and server, network monitoring also can be used to prevent an error. So far, network monitoring has not been providing effective notification to inform admin. This final project is created to resolve that issue. The final project was created using object-oriented methods and python language to provide addition of modules for reading nagios status and script for sms notifications. The final project is able to monitor a server status and read it, and the result has been processing for sms notification. This final project also provided a web applications to accommodate error and also provided function for input suggestion for improvement. The module and function above are intended to improve network monitoring performance. Keyword: server monitoring, nagios, python, SMS gateway.1

BAB 11.1.

PENDAHULUAN

Latar Belakang Masalah Server merupakan pusat dari berbagai aktifitas yang dilakukan dalam jaringan. Sering kali pelayanan server menjadi hal yang penting bagi sebagian besar instansi di Indonesia. Dan masalah yang sering dijumpai adalah ketika server tersebut sedang mengalami masalah, serta administrator jaringan yang mempunyai tanggung jawab terhadap server terlambat dalam menyadari kerusakan atau gangguan yang terjadi pada server tersebut[5]. Karena masalah itulah beberapa instansi sering mengalami kerugian akibat server down. Ketika server perusahaan telekomunikasi mengalami gangguan, akibatnya layanan untuk mobile phone pun ikut terganggu, dan bisa menjatuhkan nama dari perusahaan tersebut. Maka dari itu, untuk mengatasi masalah tersebut diimplementasikanlah sistem yang disebut monitoring server pada jaringan. Monitoring server adalah usaha untuk mengawasi sebuah jaringan atau server, dan jika ada layanan atau perangkat keras yang terganggu dapat segera melaporkannya ke network administrator secara real time. Dengan monitoring server, seorang administrator dapat berkerja secara optimal dalam menghadapi masalah yang muncul[5]. Ada beberapa aplikasi monitoring server yang berjalan di sistem operasi opensource. Salah satu aplikasi yang akan digunakan dalam proyek akhir ini adalah nagios. Nagios adalah salah satu perangkat lunak untuk memonitoring kinerja server dan jaringan yang cukup handal, karena keluaran yang dihasilkan sangat jelas yaitu status OK, Warning, dan Critical[5]. Status tersebut dihasilkan dari hasil monitoring dan disesuaikan dengan threshold yang sudah diatur dalam plugin nagiosnya[5]. Dengan mengkombinasikan dengan sms gateway, dan manajemen error, maka efisiensi dari nagios bisa di

tingkatkan. Jadi, hasil dari monitoring nagios akan di tangkap dan jika ada status Critical atau Warning, maka status akan di kirim ke admin melalui sms dan memasukkan status ke Database untuk diolah lebih lanjut. Diharapkan sistem ini dapat memudahkan admin untuk mengelola dan menangani Critical status yang terjadi pada suatu server. 1.2 Perumusan Masalah Dari latar belakang yang sudah di kemukakan diatas, maka didapat perumusan masalah seperti dibawah ini, a. Bagaimana membuat monitoring system di Nagios 3.0? b. Bagaimana membuat script python yang bisa menangkap status dari nagios? c. Bagaimana menggabungkan atau menghubungkan nagios dan sms gateway? d. Bagaimana membangun aplikasi berbasis web yang dapat memanajemen error status nagios? 1.3 Batasan Masalah Batasan Masalah dalam pembuatan proyek ini adalah : a. Server yang digunakan adalah ubuntu 10.10 dan berbentuk virtualisasi. b. Service-service yang akan dimonitoring sesuai dengan survey di sisfo IT Telkom adalah: - Web Server (Apache) - Database Server (Mysql) - Mail Server (Postfix) - Disk Space c. Sistem hanya akan mengirimkan sms dan menyimpan status ke database ketika service-service yag disebutkan berstatus not OK (Warning dan Critical) d. Sms yang dikirimkan hanya berisi service yang rusak. Untuk mengetahui error lengkapnya harus mengunjungi aplikasi webnya.2

1.4

Tujuan Berdasarkan perumusan masalah di atas, telah didapatkan tujuan dari pembuatan sistem ini yaitu a. Membuat sistem monitoring server dengan aplikasi nagios yang bisa memonitoring service yang telah ditentukan b. Membuat script tambahan dengan bahasa python untuk membaca status dari nagios c. Membuat modul tambahan untuk menghubungkan nagios dengan sms gateway. d. Membuat aplikasi web yang mengelola error yang terjadi pada server dan saran penanganan error. 1.5 Metodologi Penyelesaian Masalah Pada proyek akhir ini, metodologi yang akan saya gunakan untuk menyelesaikan masalah yang muncul adalah sebagai berikut, a. Perumusan Masalah Merumuskan berbagai permasalahan yang muncul ketika pengerjaan proyek yaitu mengenai sistem kerja nagios, pengerjaan script python, penggabungan dengan sms gateway, dan pembuatan aplikasi web dengan framework django. b. Pengumpulan Bahan Studi Lapangan Mengumpulkan data dan informasi yang dibutuhkan seperti service yang perlu di monitor, mengenai developing nagios, script python, sms gateway, dan pembuatan apliaksi web. c. Studi Literatur dan Konsultasi Mencari dan mempelajari buku-buku atau literatur tentang Nagios, referensi python programming, literature gammu sms gateway, buku tentang developing Django, dan lain-lain. Dan juga konsultasi kepada pembimbing agar proyek tidak melenceng dari jalur yang di tetapkan.

d. Metode Pengembangan Perangkat Lunak Untuk pengembangan perangkat lunak, akan digunakan model proses waterfall, dengan beberapa tahapan yaitu, 1) Analisis Kebutuhan Menganalisis semua kebutuhan baik itu software maupun hardware tambahan, dalam hal ini adalah nagios, python, gammu, django, dan untuk hardware tambahan adalah modem untuk sms gateway. 2) Perancangan Perangkat Lunak Disini akan dijabarkan tentang perancangan perangkat lunak dan fungsionalitas umum dari sistem monitoring ini yaitu, a) Memonitoring semua service yang disebutkan diatas dengan nagios. Dalam aplikasi ini semua service harus bisa di moitoring dengan baik dengan menggunakan nagios b) Mengirim sms ke nomor admin tentang error yang terjadi di sisi server. Dalam aplikasi ini error yang terjadi akan dikirimkan ke admin, dengan singkat (tidak detail). c) Menginputkan error yang terjadi ke database dengan otomatis. Dalam aplikasi ini, ketika terjadi error, selain data error akan di kirim lewat sms, data lengkap error itu juga akan dimasukkan ke dalam database. d) Menampilkan detail error di web aplikasi Dalam aplikasi ini admin dapat melihat detail error yang sebenarnya terjadi melalui web aplikasi yang akan dibuat nantinya.

3

e) Memberikan/ menginputkan saran perbaikan untuk setiap error Dalam aplikasi ini, admin dapat menginputkan saran perbaikan untuk setiap error yang terjadi. f) Menginputkan data admin Untuk keperluan sms, data admin bisa di masukkan via web aplikasi ini. g) Melihat history error Dalam aplikasi ini, admin bisa melihat history semua error yang pernah terjadi 3) Pengodean Setalah diperoleh perancangan sistemnya, maka proyek monitoting status server ini akan di implementasikan dengan 3 tahap, yaitu Tahap pertama, penginstallan dan konfigurasi nagios untuk monitoring server dan gammu sms gateway Tahap kedua, pengodean script python untuk menghubungkan antara nagios, gammu sms gateway, dan web apliaksinya. Tahap ketiga, developing web aplikasi untuk manajemen error menggunakan bahasa python dengan Django sebagai frameworknya, dan mySQL sebagai databasenya. 4) Pengujian Pengujian dilakukan untuk mengetes semua fungsionalitas yang ada pada sistem diatas, mulai dari monitoring sampai fungsionalitas web aplikasinya. Pengujian akan dilakukan dengan cara membandingkan hasil monitoring dengan apa yang tersimpan dan yang ditampilkan web aplikasi. e. Penyusunan Dokumentasi Penyusunan dokumentasi yang baik tentang sistem yang akan dibangun sehingga memudahkan untuk mengembangkan lagi aplikasi ini, dan bisa dimengerti oleh semua orang, dalam hal ini admin jaringan yang terlibat dalam sistem ini.

1.6

Sistematika Penulisan Sistematika yang akan diterapkan untuk proyek akhir ini adalah sebagai berikut, a. BAB 1 : Pendahuluan Bab ini berisi tentang penjelasan latar belakang masalah, perumusan masalah, tujuan, batasan masalah, metodologi penyelesaian masalah serta sistematika penulisan. b. BAB 2 : Landasan Teori Pada bab ini akan dijelaskan dasar teori yang digunakan untuk mengembangkan sistem sms alert untuk status server ini. Yaitu meliputi tentang nagios, python, gammu, dan django. c. BAB 3 : Analisis dan Perancangan Aplikasi Dalam bab ini, berisi penjelasan berkaitan dengan analisis dan perancangan system sms alert untuk reporting status server. d. BAB 4 : Implementasi dan Pengujian Aplikasi Bab ini menjelasan tentang implementasi dan pengujian sistem sms alert untuk reporting status server. e. BAB 5 : Penutup Dalam bab ini berisi kesimpulan dan saran dari penulis untuk pengembangan sistem.

BAB 2

LANDASAN TEORI

2. 1

Monitoring Server dan Jaringan Istilah Monitoring Jaringan mendiskripsikan sistem yang secara terusmenerus mengawasi jaringan komputer untuk mencari kerusakan komponen jaringan dan melaporkannya ke administrator melalui email, pager, atau alarm[13]. Monitoring jaringan adalah bagian dari manajemen jaringan. Jika4

-

intrusion detection system mendeteksi ancaman jaringan dari luar, maka monitoring jaringan mendeteksi masalah jaringan seperti overload, server crash, network connections, dan device lain termasuk server, switch dan router[5]. Sebagai contoh, untuk menentukan status web server, software monitoring terus menerus mengirimkan HTTP request untuk mengakses suatu page. Untuk mail server, software monitoring mengirim test message melewati SMTP dan dikembalikan oleh IMAP atau POP3[13]. Biasanya yang diguanakan sebagai dasar pengukuran adalah response time, availability, dan uptime. Akan tetapi banyak dikatakan bahwa optimasi WAN menimbulkan kerugian pada network monitoring yaitu akan mengganggu akurasi response time saat monitoring dilakukan karena optimasi WAN akan melimitkan round trip time[5]. Ada beberapa poin yang membuat penggunaan monitoring server dan jaringan ini sangat penting, yaitu Keuntungan utama adalah improvement in quality. Jadi monitoring jaringan membuat admin mengetahui lebih cepat error yang terjadi. Dan bisa mengatasinya lebih cepat. Kadang-kadang butuh beberapa jam atau hari hanya untuk mendapatkan errornya saja.jika menggunakan monitoring jaringan, admin dipastikan untuk tahu saat itu juga[5]. - Mungkin sekali bagi admin untuk bisa membuat script tambahan untuk auto recovery (untuk nagios). Jadi ketika ada service error, nagios akan langsung menjalankan auto recovery, sehingga error langsung bisa ditangani tanpa campur tangan admin[5]. - Monitoring resource tidak hanya berguna untuk menemukan permasalahan, akan tetapi juga bisa untuk mencegah masalah terjadi. Sebagai contoh, untuk monitoring storage, admin menerapkan threshold 30% untuk status critical. Jadi ketika free space tersisa 30%,

-

maka status akan menjadi critical dan admin bisa langsung menanganinya sebelum storage habis terpakai[5]. Monitoring juga bisa diset untuk memonitor host yang jauh sehingga admin tidak perlu mencek manual host-host yang jauh[5]. Nagios Nagios adalah salah satu dari banyak software monitoring yang ada. Artinya nagios melakukan cek status secara kontinyu ke host dan service untuk mencari error. Tujuan utama dari monitoring adalah untuk menemukan kesalahan dan melaporkan secepatnya kepada admin. Nagios tidak mencek sendiri service dan host. Nagios menggunakan plugin untuk melakukan cek ke setiap service yang di monitoring[5]. Hal itu membuat nagios sangat modular dan fleksible untuk meningkatkan performansi dan mencek service. Objek-objek yang di monitoring nagios dibagi menjadi 2 jenis, yaitu hosts dan services. Host adalah mesin fisik seperti komputer, server, switch, router, printer. Sedangkan services merupakan fungsi dari host itu sendiri seperti web server, database server, dan lain-lain. Setiap service miliki host yang di monitor. Dan satu host bisa memiliki beberapa service. Sehingga host dan service bisa saling dikelompokkan ke dalam grup host maupun service. Nagios mempunyai 2 kelebihan dalam scanning yaitu pertama, tidak menampilkan value dari hasil monitoring, akan tetapi me-return status (OK, Warning, Critical, dan Unknown)[5]. Jadi tidak akan membingungkan admin lagi ketika hasil monitoring keluar, karena threshold masing-masing5

2. 2

service bisa di tentukan oleh admin Gambar 1. Nagios via Web sendiri. Mempunyai batas value lebih baik dibandingkan harus menentukan apakah value tersebut 2. 3 Python Python merupakan bahasa warning/ critical setiap kali hasil pemrograman yang dinamis yang value return keluar. Dalam mendukung object oriented programming. memonitor storage atau CPU usage, Seperti beberapa pemrograman dinamis admin bisa menentukan value untuk yang lain seperti java, ruby, python status OK, Warning dan Critical. memungkinkan untuk di jalankan di Kelebihan yang kedua adalah nagios berbagai sistem operasi karena melaporkan semua service baik itu mempunyai interpreter sendiri yang warning ataupun critical, dan juga terintegrasi dengan sistem operasi[6]. disertai dengan jumlah masingPython pertama diciptakan dan masing status, misal critical 2, dikembangkan oleh programmer asal warning 1. Belanda yang bernama Guido van Rossum Semua proses check service pada tahun 1990[14]. Python di nagios menggunakan plugin. dikembangkan sebagai lanjutan dari plugin sendiri adalah komponen pemrograman ABC . Saat ini, tambahan nagios yang bertanggung pengembangan python masih terus jawab untuk menyampaikan dilakukan oleh sekumpulan programmer informasi bagaimana service harus yang di koordinir oleh Guido dan Python di cek dan berapa limit dari warning Software Foundations. Saat ini ditribusi dan critical. Plugin bertanggung python sudah mencapai versi 2.6.1 dan jawab untuk melakukan cek dan 3.0. menganalisa hasilnya. Dan output Dalam pengembangannya python dari pengecekan adalah status (OK, telah menciptakan berbagai filosofiWarning, Critical dan Unknown) filosofi yang melekat erat pada dan keterangan tambahan tentang pemrograman python. Mungkin memang status service tersebut. Keterangan filosofi yang tercipta sengaja dibuat untuk itu dibuat dengan maksud admin mengundang kelucuan, akan tetapi bisa langsung membaca detail status bertahun-tahun jumlah aplikasi python tersebut. yang menggunakan filosofi ini sebagai Nagios tidak hanya petunjuk terus meningkat untuk menawarkan core system untuk meningkatkan quality, readability, dan monitoring, tetapi juga plugin maintainability kode mereka[15]. Berikut standard yang telah mencakup adalah beberapa filosofi-filosofi python. sebagian besar service yang ada. Dan tidak menutup kemungkinan - Beautiful is better than ugly Maksud dari filosofi ini adalah untuk juga admin bisa menulis sendiri mengurangi penggunaan punctuations plugin yang sesuai dengan apa yang seperti tanda && untuk and, || untuk or, akan di monitoring[5]. dan lebih menggunakan bahasa inggris yang tepat. Bagi programmer ini jauh lebih mudah karena pembacaan kode menjadi lebih jelas seperti membaca tulisan inggris[1]. - Explicit is Better than Implicit Disini python bertujuan untuk memudahkan kerja para programmer, karena dengan sekali lihat mereka sudah6

-

-

-

-

tau isi dari source code python karena semuanya tertulis secara Explicit. Sehingga ketika programmer harus bekerja secara tim, mereka bisa mengkoordinasi dengan lebih mudah[1]. - Simple is Better than Complex Penulisan kode python sangatlah simple di bandingkan dengan pemrograman lain. Sebagai contoh biasanya kita menggunakan perintah if value is not None and value != ' ': maka, di python kode ini bisa di ringkas menjadi if value:. Dengan sedikit kode maka proses coding akan menjadi lebih efektif, selain itu, akan mendapatkan dua keuntungan yaitu, program akan running lebih cepat karena lebih sedikit kondisi yang ada. Dan kode tersebut dapat bekerja dalam beberapa kasus[1]. Complex is Better than Complicated Kadang untuk menyelesaikan pekerjaan kita membutuhkan sesuatu yang kompleks. Akan tetapi sesuatu yang kompleks itu tidak harus dibuat menjadi complicated dengan menginisialisasi object-object yang kurang diperlukan[1]. Complex adalah membuat banyak partpart kode terkoneksi. Complicated adalah sangat complex sehingga sulit untuk dipahami. Flat is better than nested Tujuannya adalah untuk menjaga relasi yang sejajar dari pada harus menjadi parent and child[1]. Sparse is Better than Dense Maskudnya adalah untuk mengurangi penggunaan spasi dalam pengkodean python[1]. Contoh: a = spam(1) good a = spam ( 1 ) bad Readability Count Bisa dibilang filosofi ini lahir karena filosofi pertama tadi. Tujuan dari filosofi ini adalah untuk mempermudah pembacaan kode oleh programmer. Karena sebenarnya terserah programmer akan mengkodekan program seperti apa. Akan tetapi perlu di ingat bahwa bukan hanya komputer yang akan membaca kode tersebut. Programmer juga perlu

membacanya untuk maintaining atau developing. Dengan aturan yaitu satu spasi untuk memisahkan fungsi dan 2 spasi untuk memisahkan antar class, jumlah baris bisa ditentukan dan kemungkinan untuk sama dari datu programmer ke programmer lain pun cukup besar[1]. - Special Cases arent Special Enough to Break the Rule Diawal sudah didapatkan berbagai macam filosofi yaitu compatibility, internationalization, readability, dan lain-lain, jangan abaikan semua itu demi feature yang baru[1]. 2. 4 Gammu Gammu adalah sebuah proyek yang meliputi aplikasi, script dan driver untuk memanage berbagai macam fungsi dari peralatan selular dan alat sejenisnya[16]. Gammu sendiri bekerja dengan command line, dan ada juga yang berbentuk gui yang ditulis dengan bahasa python yang lebih dikenal dengan wammu. Proyek ini sebenarnya bercabang dari Gnokii(program untuk berkomunikasi dengan mobile phone) dan sampai versi 0.58 yang dinamakan MyGnokii2[16]. Karena dirasa proyek ini membutuhkan nama yang lebih bagus, maka di pakailah Gammu yang mengandung singkatan GNU All Mobile Management Utilities. Beberapa fitur yang dimiliki oleh gammu adalah sebagai berikut [16] : - Dapat mengaktifkan Nokia Network Monitor - Support untuk mengirim sms - Phonebook - Menelpon/ menerima Telpon - Kalender - Notes - Dapat di konekkkan melalui USB, infrared, dan Bluetooth

7

2. 5

MySQL MySQL adalah salah satu dari sekian banyak DBMS (Database Management System) yang cukup tangguh dan banyak dipakai di dunia. Selain Oracle, PostgreSQL, MySQL sangat popular dikalangan programmer. MySQL menyediakan fasilitas-fasilitas untuk mengatur dan mengolah basis data dan juga menyediakan bahasa pemrograman SQL (Structured Query language) untuk mengolah database client-server. Berikut adalah beberapa kelebihan dari MySQL: a. MySQL dapat berjalan dengan stabil dalam berbagai sistem operasi, seperti, Windows, Linux, Mac OS, FreeBSD, dan masih banyak lagi. b. Pendistribusian yang open source dibawah lisensi GPL, menjadikan MySQL bisa digunakan dengan gratis. c. Multi user, yaitu bisa diguanakan/ diakses oleh banyak user dalam satu waktu tanpa terjadi masalah/ konflik. d. MySQL dapat melakukan query sederhana dengan cepat. Dengan kata lain, bisa memproses lebih banyak query dalam satuan waktu. e. MySQL memiliki security yang berlapis, seperti, level subnetmask, level host, perizinan user dalam mengakses database, serta sandi yang terenkripsi 2. 6 Django Django adalah sebuah web framework open source yang ditulis pada bahasa pemrograman python, dan menganut arsitektur MVC (Model View Controller). Pertama kalinya django tercipta dari aplikasi yang dibuat oleh tim webdevelopment di Lawrence, Kansas, USA. Django lahir pada musim gugur tahun 2003 ketika web programmer di Lawrence Journal-World Newspaper mulai membuat aplikasi dari bahasa python[3]. Django di desain untuk mengapliaksikan system loose coupling dan memisahkan komponen-komponen

pembangun web itu sendiri. Seperti filosofi yang dianutnya, yang intinya, lebih mudah untuk mengubah komponen-komponen aplikasi tanpa mempengaruhi yang lain. Dan terciptalah konsep MVC (Model View Controller). Pada arsitektur MVC terdapat 3 komponen dimana masing-masing bagian dari MVC ini bertanggung jawab untuk menangani hal yang berbeda, yaitu Data(Model), tampilan atau user interface (View), dan untuk menangani aksi dari request-request yang minta user(Controller). Akan tetapi, sebenarnya ada sedikit perubahan dari konsep MVC ini ketika kita menggunakan django. Berikut breakdown MVC menurut django[3]: - M, bagian yang menangani tentang data akses, ini akan ditangani oleh database layer dari django. - V, bagian dimana terdapat pemilihan data dan bagaimana akan ditampilkan. Ini akan ditangani oleh views dan templates. - C, bagian dimana berfungsi untuk mengatur view sesuai dengan inputan user, bagian ini ditangani oleh framework django itu sendiri.

Gambar 2. MVC Diagram Karena C telah ditangani oleh framework itu sendiri, dan pada django sebenarnya keterlibatan kita hanyalah terjadi di models, templates, dan view, maka django ini lebih me-refers ke MTV framework. Di dalam bagian MTV Development[3],8

-

-

-

M untuk Model, berarti bagian yang mengurusi data akses layer, disini mengandung semua yang berhubungan dengan data, seperti bagaimana mengakses datanya, bagaimana memvalidasi datanya dan bagaimana relasi antar datanya. T untuk Template, berarti bagian yang mengurusi tentang presentation layer, yaitu bagian yang mengurusi tentang tampilan. V untuk View, berarti bagian yang berisi tentang fungsi logic yang dipakai dalam apliaksi tersebut.

-

-

-

Django menyediakan tools untuk membuat aplikasi dengan cepat[3]. Dont Repeat Yourself Setiap konsep yang berbeda dan/atau potongan data harus berada dalam satu dan hanya satu tempat[3]. Eksplisit lebih baik dari Implisit Filosofi ini digunakan untuk memudahkan programmer dalam pembacaan kode, sehingga lebih mudah karena sebagian besar tertera secara eksplisit[3]. Konsistensi Framework sebaiknya harus konsisten di berbagai level. Dari level terendah sampai tertinggi[3].

2. 7

Gambar 3. Django Framework Dalam perkembangannya, django juga mempunyai filosofi desain, yaitu,[3] - Loose Coupling Ini merupakan tujuan utama dari django, yaitu memisahkan komponen-komponen pembangun web, sehingga satu komponen tidak mengetahui kerja dari komponen lain. Ini sangat penting sekali dalam pengembangan aplikasi web. Ketika programmer mengubah satu komponen, misal views, kita tidak perlu mengubah komponenkomponen lain seperti models dan urls, karena komponen tersebut saling terpisah[3]. - Sedikit menulis kode Dalam pembuatan project dengan django, akan melibatkan kode seminimal mungkin[3]. - Pengembangan yang cepat

Pemodelan Sistem Untuk memodelkan system yang akan dibuat, penulis akan menggunakan UML sebagai alat untuk pemodelannya. UML (Unifiend Modelling Language) sendiri adalah bahasa pemodelan yang mendefinisikan notasi diagram standar untuk menjelaskan, memvisualisasikan, menspesifikasikan, membangun, dan mendokumentasikan aplikasi perangkat lunak berorientasi objek atau sistem bisnis. UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM. Karena notasi pada UML tidak distandarkan secara mutlak, maka programmer bisa dengan bebas menggunakan bahasa ini sesuai dengan kebutuhan dan teknik mereka sendiri. Fungsi utama dari UML adalah untuk mengetahui bagaimana sebuah perangkat lunak itu dikembangkan. Dengan UML ini, sedikit banyak kode dari perangkat lunak itu pun bida digambarkan.

9

UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu:-

bunyi seperti alarm ketika ditemukan status yang tidak sesuai threshold.

-

-

-

Use Case Diagram, untuk memodelkan proses bisnis. Conceptual Diagram, untuk memodelkan konsep-konsep yang ada di dalam aplikasi. Sequence Diagram, untuk memodelkan pengiriman pesan (message) antar objects. Collaboration Diagram, untuk memodelkan interaksi antar objects. State Diagram, untuk memodelkan perilaku objects di dalam sistem. Activity Diagram, untuk memodelkan perilaku Use Cases dan objects di dalam system. Class Diagram, untuk memodelkan struktur kelas. Object Diagram, untuk memodelkan struktur object. Component Diagram, untuk memodelkan komponen object. Deployment Diagram, untuk memodelkan distribusi aplikasi.

Gambar 4. Analisis Sistem Sekarang Penggunaan sistem seperti diatas kurang efektif dalam penyampaian notifikasi. Admin masih harus aktif mencek status server agar bisa langsung meresponse ketika terjadi error. Akibatnya jika terjadi error, informasi dinilai masih sangat tidak efektif untuk sampai ke admin. Dan memungkinkan keterlambatan informasi error ke admin. 3.1.2. Analisis Sistem Usulan Sistem yang dikembangkan saat ini adalah untuk mengatasi hal-hal yang muncul dalam pembahasan di subbab atas. Di sistem yang baru ini, nagios akan di lengkapi dengan notifikasi via sms dengan mengaitkan gammu sms gateway bersama nagios. Jadi, dengan demikian, keefektifan distribusi informasi error ke admin bisa di tingkatkan. Ketika terjadi error, admin akan langsung menerima sms notifikasi dari sistem.

BAB 3 Analisis dan Perancangan3.1. Analisis Sistem

3.1.1. Analisis Sistem Sekarang Sistem monitoring yang ada saat ini kebanyakan masih meggunakan sistem yang konvensional. Walaupun sudah menggunakan nagios sebagai alat monitornya, akan tetapi masih belum di integrasikan dengan notifikasi tambahan. Hanya mengandalkan remote host komputer yang digunakan untuk memonitoring. Jadi ketika admin ingin meengetahui status server yang dimonitor, admin harus mengaksesnya dari komputer lain via remote host. Kalaupun ada, notifikasi masih sederhana menggunakan plugin dari nagios yang akan menghasilkan

10

Gambar 5. Analisis Sistem Usulan 3.2. Analisis Kebutuhan Sistem

3.2.1. Analisis Kebutuhan Perangkat Lunak Berikut adalah kebutuhan untuk membangun sistem ini : 1. OS Ubuntu Linux 2. Nagios 3.0 3. Python 2.6 + easy_install/ pip 4. Gammu 5. Text Editor 6. Apache 7. MySQL 8. Web Browser 9. Django 3.3. Perancangan Sistem Penggambaran perancangan sistem ini meliputi beberapa hal, yaitu, 1. Perancangan fungsionalitas sistem menggunakan Use Case 2. Perancangan arsitektur sistem menggunakan Component Diagram dan Deployment Diagram 3. Perancangan model sistem menggunakan class diagram 4. Perancangan URL untuk Web

3.3.1. Fungsionalitas Sistem Untuk membuat system ini agar dapat bekerja secara sempurna, maka dalam sistem ini akan di lengkapi dengan fungsifungsi seperti berikut: 1. Menangkap status dari server 2. Menangkap status dari nagios 3. Mengolah/ mendefinisikan status 4. Mengirim notifikasi via sms 5. Menyimpan status error ke database Ada beberapa fitur tambahan yang akan melengkapi aplikasi ini agar dapat mempermudah admin, yaitu: 1. Menampilkan history error di aplikasi web 2. Melihat dan menambahkan suggest(saran perbaikan) pada aplikasi web 3. Manajemen admin Disini, sistem akan digunakan oleh admin-admin yang bertanggung jawab atas server-server di suatu perusahaan. Dan untuk gambaran fungsionalitas sistem ini, akan di operasikan oleh beberapa tingkatan user dan satu sistem eksternal.

View Error

Get Status

Input Suggest Send SMS

Edit Suggest Admin View History Register Edit Profile Super User Delete Admin Login

Input Error

GetDataAdmin

PyGios

Input Service

Input Host

Ubah status Admin Input History

Gambar 6. Usecase system sms alert status server Di atas ada 3 aktor yang berbeda. Yaitu : 1. PyGios : sistem eksternal yang berhubungan langsung dengan nagios dan menjadi penghubung antara nagios, web aplikasi, dan gammu sms gateway11

2. Admin : user yang akan mengoperasikan web aplikasi yang menangani manajemen error 3. Super User : user yang akan mengoperasikan web aplikasi dan admin site Berikut adalah penjelasan naratif dari usecase di atas: Nomor : SMS_ALT-01 Nama Usecase : Get Status Aktor : PyGios Tipe : Primary Tujuan : mengambil status server dari Nagios 1. pyGios mencek return nagios tiap lima menit 2. pyGios mengambil status yang di return nagios Nomor : SMS_ALT-02 Nama Usecase : Send SMS Aktor : PyGios Tipe : Primary Tujuan : mengirim notifikasi status via sms ke admin 1. pyGios mendapatkan status error dari nagios 2. pyGios mengambil data admin yang ada di database 3. pyGios mengirim notifikasi ke admin via sms Nomor : SMS_ALT-03 Nama Usecase : Input Error Aktor : PyGios Tipe : Primary Tujuan : menginputkan hasil pengecekan status error dari nagios ke database 1. pyGios menerima hasil pengecekan dari nagios 2. pyGios memproses hasil status dan mendefinisikan service dan host 3. pyGios menginputkan status ke dalam database Nomor : SMS_ALT-04 Nama Usecase : Get Data Admin Aktor : PyGios Tipe : Secondary

Tujuan : mengambil data admin untuk kepentingan notifikasi 1. pyGios menerima status nagios 2. pyGios mengambil data admin dari database Nomor : SMS_ALT-05 Nama Usecase : View Error Aktor : Admin dan Super User Tipe : Secondary Tujuan : melihat error yang sudah di inputkan oleh pyGios 1. Admin memilih menu yang ada pada aplikasi sesuai kebutuhan 2. Aplikasi akan menampilkan error yang sudah terinput dalam aplikasi Nomor : SMS_ALT-06 Nama Usecase : Input Suggest Aktor : Admin dan Super User Tipe : Secondary Tujuan : menginputkan suggest atau saran perbaikan error ke database sesuai dengan error. 1. Admin memilih menu untuk melihat error yang sedang terjadi 2. Aplikasi menampilkan error yang terjadi dan menampilkan pilihan menu untuk error 3. Admin memilih menu untuk menginputkan suggest 4. Aplikasi menampilkan form untuk input suggest 5. Admin menginputkan suggest sesuai dengan error yang di pilih Nomor : SMS_ALT-07 Nama Usecase : Edit Suggest Aktor : Admin dan Super User Tipe : Secondary Tujuan : mengedit suggest yang telah di inputkan ke database 1. Admin memilih menu view error 2. Aplikasi menampilkan semua error yang ada beserta suggest yang telah di masukkan 3. Admin memilih menu untuk edit suggest untuk salah satu error 4. Aplikasi menampilkan form untuk edit suggest12

5. Admin memasukkan suggest yang baru Nomor : SMS_ALT-08 Nama Usecase : View History Aktor : Admin dan SuperUser Tipe : Secondary Tujuan : menampilkan history dari error yang sudah terjadi 1. Admin memilih menu untuk melihat history error 2. Aplikasi menampilkan semua history error yang pernah terjadi Nomor : SMS_ALT-09 Nama Usecase : Register Aktor : Admin dan Super User Tipe : Secondary Tujuan : menginputkan data admin baru 1. Admin memilih menu register 2. Aplikasi menampilkan form untuk input data admin 3. Admin menginputkan data admin baru Nomor : SMS_ALT-10 Nama Usecase : Edit Profile Aktor : Admin dan Super User Tipe : Secondary Tujuan : mengedit profil sendiri 1. Admin memilih menu edit profile 2. Aplikasi menampilkan form untuk edit profile 3. Admin menginputkan data profile baru Nomor : SMS_ALT-11 Nama Usecase : Delete Admin Aktor : Super User Tipe : Secondary Tujuan : mengedit profil sendiri 1. Super User masuk ke site admin 2. Aplikasi menampilkan menu untuk super user 3. Super user memilih menu admin dan melakukan delete admin Nomor : SMS_ALT-12 Nama Usecase : Ubah Status Admin Aktor : Super User Tipe : Secondary

Tujuan : mengedit status admin (disable, super user, admin biasa) 1. Super user memilih menu admin 2. Aplikasi menampilkan data-data admin yang sudah terdaftar 3. Super User memilih data admin yang akan di hapus, dan menghapus data admin 3.3.2. Arsitektur Sistem Dalalm pembangunan sistem ini, melibatkan beberapa komponen yang menunjang untuk melengkapi fungsionalitas. Sistem ini terdiri dari beberapa komponen, library, maupun framework, yaitu diantaranya adalah Nagios itu sendiri sebagai software monitoring, PyGios sebagai penyedia modul-modul service dan sebagai konektor antara nagios, gammu sms gateway dan web aplikasi, dan yang terakhir adalah django sebagai framework pembuatan web aplikasi. Berikut adalah gambar komponen diagram untuk menjelaskan tentang arsitektur sistem yang di bangun.admin Monitoring Serv er admindocs host

Contrib serv ice sessions

Django

Nagios

Py Gios Man. Error

Error gammu

serv ices module

Gambar Sistem

7.

Componen

Diagram

Gambar diatas adalah kompunen diagram yang menjelaskan tentang arsitektur sistem dari dalam. Untuk menggambarkan system dari luar, digunakanlah deployment diagram sebagai berikut.

13

Monitoring device

Server

Nagios

Gammu -smsd

Connections system/ pygios

MySQL

GSM Modem

Loopback Interface

wsgi

Gambar 8. Deployment Diagram sistem 3.3.3. Perancangan Model Sistem Dari berbagai fungsionalitas yang disebutkan diatas, dapat di gambarkan class diagram yang diapakai dalam pembangunan system ini adalah sebagai berikut:

Gambar 9. Class diagram sistem

Gambar di atas terdiri beberapa class yang digunakan untuk membangun sistem ini. Berikut adalah keterangan dari tiap class yang disebutkan di atas.

Partition : dalam class ini terdapat 3 atribut yaitu nama untuk nama service, host untuk nama hostnya, dan url untuk menunjukkan url service di nagios. Dalam kelas ini juga terdapat 3 operations yaitu : o openUrl() : dalam operasi ini digunakan untuk masuk secara otomatis ke url yang telah di definisikan dan mengambil datadata service. o status() : dalam operasi ini, akan didefinisikan status service yagn dimonitor berdasarkan data-data service yang diambil dari operasi openUrl(). o errorStat() : dalam operasi ini, bertugas untuk mengambil detail error yang terjadi dari data-data service. Mail : dalam class ini terdapat 3 atribut yaitu nama untuk nama service, host untuk nama hostnya, dan url untuk menunjukkan url service di nagios. Dalam kelas ini juga terdapat 3 operations yaitu : o openUrl() : dalam operasi ini digunakan untuk masuk secara otomatis ke url yang telah di definisikan dan mengambil datadata service. o status() : dalam operasi ini, akan didefinisikan status service yagn dimonitor berdasarkan data-data service yang diambil dari operasi openUrl(). o errorStat() : dalam operasi ini, bertugas untuk mengambil detail error yang terjadi dari data-data service. HTTP : dalam class ini terdapat 3 atribut yaitu nama untuk nama service, host untuk nama hostnya, dan url untuk menunjukkan url service di nagios. Dalam kelas ini juga terdapat 3 operations yaitu :

14

o openUrl() : dalam operasi ini digunakan untuk masuk secara otomatis ke url yang telah di definisikan dan mengambil datadata service. o status() : dalam operasi ini, akan didefinisikan status service yagn dimonitor berdasarkan data-data service yang diambil dari operasi openUrl(). o errorStat() : dalam operasi ini, bertugas untuk mengambil detail error yang terjadi dari data-data service. Mysql : dalam class ini terdapat 3 atribut yaitu nama untuk nama service, host untuk nama hostnya, dan url untuk menunjukkan url service di nagios. Dalam kelas ini juga terdapat 3 operations yaitu : o openUrl() : dalam operasi ini digunakan untuk masuk secara otomatis ke url yang telah di definisikan dan mengambil datadata service. o status() : dalam operasi ini, akan didefinisikan status service yagn dimonitor berdasarkan data-data service yang diambil dari operasi openUrl(). o errorStat() : dalam operasi ini, bertugas untuk mengambil detail error yang terjadi dari data-data service. Ping : dalam class ini terdapat 3 atribut yaitu nama untuk nama service, host untuk nama hostnya, dan url untuk menunjukkan url service di nagios. Dalam kelas ini juga terdapat 3 operations yaitu : o openUrl() : dalam operasi ini digunakan untuk masuk secara otomatis ke url yang telah di definisikan dan mengambil datadata service. o status() : dalam operasi ini, akan didefinisikan status service yagn dimonitor berdasarkan data-data

service yang diambil dari operasi openUrl(). o errorStat() : dalam operasi ini, bertugas untuk mengambil detail error yang terjadi dari data-data service. PyGios : class ini berisi banyak sekali operasi-operasi yang berhubungan dengan nagios, database web aplikasi dan gammu. Berikut adalah operasi yang terdapat pada class pyGios: o Setup_environment : operasi ini berfungsi untuk menentukan path settings.py agar dalam class pyGios dapat memakai ORM yang disediakan django. o Check : digunakan untuk mengubah detail service yang berupa kode unicode ke string yang bisa di baca dengan mudah o insertToService : digunakan untuk memasukkan atau menginput data service yang sedang error ke dalam database o insertToError : digunakan untuk memasukkan atau menginput data detail error yang sedang terjadi ke dalam database o insertToHistory : digunakan untuk memasukkan atau menginput data lengkap error yang sedang terjadi beserta waktunya ke dalam database o insert ToHost : digunakan untuk memasukkan atau menginput data host yang sedang error ke dalam database o sms : digunakan untuk memanggil library gammu untuk perintah sms o getId : digunakan untuk mengambil data kode error yang sedang terjadi dari database o checkStatusAll : berfungsi untuk mencek semua service yang telah didefinisikan sebelumnya dan juga akan

15

mengeksekusi semua perintah untuk insert ke database o sendSMS : berfungsi untuk mengambil data admin dan untuk mengirimkan sms ke admin tersebut Model : dalam class ini terdapat dua atribut yaitu id dan object yaitu untuk mewakili tabel yang di create oleh models tersebut. Selain itu juga terdapat 2 operasi yaitu o Save : operasi ini digunakan untuk menyimpan data baru ke database o Full_clean : operasi ini digunakan untuk mengubah karakter menjadi Unicode agar mudah terbaca Host : dalam class ini terdapat satu atribut yaitu nama yang akan menyimpan nama host. Dan ada satu operasi yaitu o __unicode__ : yaitu untuk mengubah karakter menjadi Unicode. Service : dalam class ini terdapat dua atribut yaitu nama yang akan menyimpan nama service, dan host untuk menyimpan relasi antara host dan service. Selain itu ada satu operasi yaitu o __unicode__ : yaitu untuk mengubah karakter menjadi Unicode. Error : dalam class ini terdapat empat atribut yaitu nama yang akan menyimpan nama error, status untuk menyimpan status error apakah sudah ditangani atau belum, saran untuk menyimpan saran perbaikan yang di inputkan oleh admin, dan service untuk menyimpan relasi antara error dan service. Selain itu ada satu operasi yaitu o __unicode__ : yaitu untuk mengubah karakter menjadi Unicode. Admin : dalam class ini terdapat empat atribut yaitu nip yang akan menyimpan nip admin,nama untuk

menyimpan nama admin, alamat untuk menyimpan alamat admin, dan no.Telp untuk menyimpan no telfon admin yang digunakan untuk notifikasi sms. Selain itu ada satu operasi yaitu o __unicode__ : yaitu untuk mengubah karakter menjadi Unicode. History : dalam class ini terdapat empat atribut yaitu tgl yang akan menyimpan waktu(tgl dan jam) ketika error terjadi, nm_host untuk menyimpan nama host dari error yang terjadi, nm_service untuk menyimpan nama service dari error yang sedang terjadi , dan nama untuk menyimpan nama error yang terjadi. Selain itu ada satu operasi yaitu o __unicode__ : yaitu untuk mengubah karakter menjadi Unicode. Users : dalam class ini terdapat empat atribut yaitu username yang akan menyimpan username admin, password untuk menyimpan password admin, is_active untuk menyimpan status user apakah aktif atau tidak , dan is_staff untuk menyimpan status user apakah superuser atau tidak. View : dalam class ini terdapat 13 operasi yang masing-masing mempunyai fungsi yang sesuai dengan halaman web yang ditampilkan. Selebihnya akan dijelaskan dibawah ini. o Dashboard : dalam operasi ini terdapat perintah untuk menampilkan semua error yang belum di tangani dan baru saja terjadi o Suggest : dalam operasi ini berisi perintah untuk menampilkan semua jenis error yang pernah terjadi beserta status suggestnya dan juga menyediakan perintah untuk mengedit suggest o manSuggest : mengandung perintah untuk mengedit suggest yang dipilih.16

o updateSuggSuccess : meredirect tampilan web ketika update suggest berhasil. o history : berisi perintah untuk menampilkan semua error yang pernah terjadi beserta waktu terjadinya error. o editProfile : berisi tentang perintah untuk edit profile dan pengecekan form-form yang dipakai untuk udit profile. Juga berisi tentang link untuk edit password. o updateProfileSuccess : meredirect halaman jika telah sukses mengupdate profile o changePass : berisi tentang perintah untuk ganti password dan pengecekan form untuk ganti password o updatePassSuccess : meredirect halaman ketika update password sukses o register : berisi perintah untuk memasukkan data admin baru kedalam database beserta pengecekan form yang digunakan dalam halaman register o regSuccess : meredirect halaman ketika register berhasil dilakukan o Login : berisi perintah untuk pengecekan ketika login dan pembuatan session untuk user yang akan masuk ke web o Logout : berisi perintah untuk menghapus session yang sedang aktif Web aplikasi menggunakan satu model atau dalam django lebih dikenal dengan applications yaitu error. Error disini adalah aplikasi untuk menangani semua fungsionalitas yang ada pada web aplikasi manajemen error. Diantaranya adalah manajemen error, manajemen suggest, dan manajemen admin. 3.3.4. Perancangan URL untuk Web Berikut adalah perancangan URL yang digunakan untuk

memetakan web aplikasi yang melayani tentang manajemen error. admin/ : menampilkan halaman login untuk admin site / : menampilkan halaman login untuk web aplikasi manajemen error /Dashboard/ : menampilkan halaman yang berisi tentang errorerror yang baru saja terjadi atau error yang belum di tangani. /suggest/ : menampilkan halaman yang berisi tentang daftar error yang pernah terjadi beserta status suggestnya sudah terisi atau masih kosong. /history/ : menampilkan halaman history yang berisi tentang semua error yang terjadi di server beserta tanggal terjadinya error. /reg/ : menampilkan halaman untuk melakukan input data admin yang baru /editProfile/ : menampilkan halaman untuk mengedit data admin yang sedang login /suggest/edit/(\d{1,2})/ : menampilkan halaman untuk mengedit suggest sesuai dengan error yang dipilih /suggest/edit/updateDone/ : menampilkan halaman ketika update suggest berhasil /regSuccess/ : menampilkan halaman ketika registrasi data admin baru berhasil /updateSuccess/ : menampilkan halaman ketika update profile berhasil /changePass/ : menampilkan halaman untuk mengganti password login untuk admin yang sedang login /updatePassSuccess/ : menampilkan halaman ketika update password berhasil

17

/logout/ : berisi tentang fungsi untuk logout di web aplikasi manajemen error

BAB 4

Implementasi dan Pengujian

4.1

Implementasi Pada bagian ini akan dibahas tentang bagaimana dan dengan apa saja sistem ini di bangun. Dan pada bab ini akan di bagi menjadi beberapa subbab yaitu spesifikasi perangkat keras yaitu tentang apa saja alat atau software yang digunakan untuk membuat sistem ini, spesifikasi Environment yaitu tentang apa saja perangkat yang digunakan untuk sistem ini, implemetasi kode yaitu tentang bagaimana cara pengkodean dan implementasi pengembangan pengkodean tersebut, implementasi user interface yaitu tentang bagaimana user interface tersebut dibuat. 4.1.1. Spesifikasi Perangkat Keras Berikut adalah spesifikasi untuk pembuatan sistem. Tipe : Byon M31F Notebook Processor : Intel core2duo T5850-2.16 GHz (2MB L2 Cache, 667MHz, Intel 965GM Chipset) Memori : 1 x 1 GB DIM DDR2 , 1 x 2 GB DIM DDR2 Harddisk : 160 GB Video : Intel Graphics Media Accelerator X3100 256 MB LAN : Intel PRO/Wireless 3945ABG GSM Modem : AT&T Sierra Wireless 880u HSDPA USB Modem 4.1.2. Spesifikasi Environment Berikut merupakan spesifikasi untuk kebutuhan sistem.

OS host dan monitoring : Ubuntu 10.10 32bit(maverick meerkat) Webserver : Apache 2.2.16 mod_wsgi/3.2 Python 2.6.6 Database : Mysql 5.1.49 Database tool : phpMyAdmin 3.3.7 SMS Gateway : Gammu 1.30.0 Web Browser : Mozilla Firefox 5.0, Google Chrome 13.0.782 m Text Editor : Gedit, SublimeText 2 4.1.3. Implementasi dalam konfigurasi monitoring dengan nagios Untuk implementasi monitoring, akan di monitoring satu server yang mempunyai beberapa service di dalamnya yaitu http, database(Mysql), mail server(postfix). Untuk service yang di monitoring adalah http server(apache), database server(Mysql), mail server(postfix), partisi hardisk, dan status computer(ping). Jadi, pertama yang harus di lakukan adalah pendefinisian host terlebih dahulu. Setelah berhasil, barulah di create service-service yang akan di monitoring pada server tersebut. Untuk mencreate service, terlebih dahulu kita harus mendefinisikan plugin yang digunakan dan perintah yang akan digunakan untuk mengecek status service. Detail dari configurasi dapat dilihat dalam lampiran A. 4.1.4. Implementasi dalam proses pengambilan status dan notifikasi Dalam proses implementasi kode untuk pengambilan status dan notifikasi, digunakan bahasa pemrograman python dengan diterapkan beberapa class yang dibentuk untuk merepresentasikan service18

yang akan diambil statusnya. Dan class satu lagi sebagai main class untuk mengolektifkan data status dan mengolahnya kemudian menghasilkan/ mengeluarkan output notifikasi berupa sms ke admin ketika terjadi kesalahan pada status yang sedang di monitoring. Kumpulan kode ini akan di simpan sesuai dengan versi kode yang terus di update. Disini kode akan di simpan berdasarkan tanggal dan versi update kode.versi kode akan di tuliskan dengan v0.1, v0.2 dan lain-lain. Jadi ketika terjadi penambahan spesifikasi atau perubahan spesifikasi akan di simpan kembali dengan mencantumkan versi dan tanggal yang berbeda di setiap updatean nya. Implementasi kode dapat dilihar dalam lampiran B. 4.1.5. Implementasi dalam pembuatan aplikasi web Dalam pembuatan aplikasi web ini pun akan digunakan bahasa pemrograman python sebagai core nya dan ditambah dengan penggunaan framework django untuk mendevelop aplikasi web tersebut. Tujuan utama dari web ini adalah sebagai alat untuk mempermudah admin untuk melihat error yang terjadi beserta penampung saran perbaikan dan sebagai history error saja. Tidak jauh berbeda dengan kode untuk status dan notifikasi, pada implementasi apliaksi web pun kode akan disimpan sesuai dengan versikode yang terus di update ketika terjadi error/ bug atau terjadi penambahan requirement. Dimungkinkan juga missal ketika v0.1 di temukan bug, maka dimungkinkan juga untuk v0.2 akan di ubah juga untuk menangani bug tersebut. Pada umumnya pengimplementasian sistem ini adalah ketika ada bug, maka bug tersebut harus di tangani terlebih dahulu sebelum mengerjakan ke tahap berikutnya, karena di mungkinkan bug tersebut akan mempengaruhi fungsi-fungsi yang lain. Dan ketika tejadi perubahan struktur model, sangat dimungkinkan untuk mengubah struktur database, sehingga

harus mendelete database lama dan mensynconize lagi database baru yang sudah di update lagi. Ketika web aplikasi sudah fix, maka kode-kode tersebut akan digabungkan agar dapat bekerja bersama untuk membentuk sistem monitoring yang diinginkan. 4.1.6. Implementasi User Interface Implementasi user interface aplikasi web dapat di lihat dalam lampiran C. 4.2 Pengujian

4.2.1. Kebijakan Pengujian Untuk menjaga agar pengujian dapat tepat sasaran, maka dibuatlah kebijakankebijakan untuk pengujian, yaitu Tidak melakukan pengujian pada library python yang dipakai Tidak melakukan pengujian pada code atau library framework django yang dipakai Pengujian hanya ditujukan untuk kode yang dibuat sendiri atau kode framework yang di kostumisasi. 4.2.2. Deskripsi Pengujian Functional testing Disini fungsionalitas testing akan mentes semua fungsionalitasfungsionalitas yang ada baik itu dari sisi script python sendiri maupun dari django framework itu sendiri. Dalam pengujian ini di harapkan semua fungsionalitas yang ada akan berjalan sesuai dengan apa yang di targetkan. Dalam fungsionalitas testing ini juga akan di pakai beberapa studi kasus yang akan mewakili user sebagai pemakai sistem ini. 4.2.3. Rencana Pengujian Pada bagian ini akan dijelaskan mengenai hasil pengujian yang dilakukan terhadap sistem. Pengujian yang dilakukan merupakan pengujian terhadap19

fungsionalitas sistem dengan berbagai kondisi inputan untuk memeriksa keberhasilan fungsionalitas. Berikut ini adalah rencana pengujian terhadap sistem dengan berbagai studi kasus yang akan di coba dalam script python maupun dalam web aplikasi django.

20

No 1.

Bagian Nagios

Fungsionalitas Baca status server

Tampilkan ke web nagios

Baca status service

2.

PyGios (script python)

Baca status dari nagios

klasifikasikan status

Cek semua status dari nagios Baca data admin

Kirim sms

Tujuan - Menguji bisa tidaknya nagios mereturn status server - Menguji bisa tidaknya nagios mereturn status dengan waktu yang sudah di tentukan - Menguji apakah status yang di return nagios berhasil di tampilkan di web nagios - Menguji apakah web nagios bisa merefresh halaman sesuai dengan yang di tentukan - Menguji apakah status yang di tampilkan di web nagios sesuai dengan yang terjadi di server - Menguji apakah nagios mampu membaca status service-service yang telah di definisikan - Menguji apakah status service yang di monitor sesuai dengan keadaan service sebenarnya di sisi server - Menguji apakah status yang tertulis di web nagios sangat mewakili keadaan server saat itu. - Menguji apakah status yang di baca pygios sama dengan yang ada di web nagios - Menguji apakah semua status dapat di baca dengan baik oleh pygios - Menguji apakah status error saja yang diambil dari nagios - Menguji apakahklasifikasi yang dilakukan pygios sesuai dengan status nagios aslinya - Menguji apakah semua status yang sudah di klasifikasikan pygios, error atau tidak - Menguji apakah pembacaan data admin sudah sesuai dengan yang ada ddi dalam database atau tidak - Menguji apakah sistem berhasil mengirim sms ketika status yang di klasifikasikan21

Input status ke database

-

-

-

3

Man. Error Login (web aplikasi manajemen error) Menampilkan error yang sedang terjadi dan atau error yang belum ditangani beserta saran perbaikan Menginputkan atau mengedit saran perbaikan Mengubah status error yang akan atau selesai ditangani Menampilkan semua daftar error yang pernah terjadi beserta status saran Menampilkan semua history error yang pernah terjadi beserta waktu terjadinya error Mengedit data admin/ profile yang sedang login

-

-

-

-

-

-

-

terjadi error Menguji apakah ketika ada status error, semua error yang terjadi berhasil di inputkan ke dalam database atau tidak Menguji apakah inputan error ke database memang benar ketika status error saja Menguji apakah inputan tidak mengandung kode-kode yang menyulitkan untuk di baca Menguji apakah admin bisa login sesuai dengan user yang dipunyai Menguji apakah kesalahankesalahan inputan bisa ditangani dengan baik Menguji apakah error yang terjadi akan langsung muncul di web Menguji apakah semua error yang muncul memang error yang belum ditangani Menguji apakah admin bisa menginputkan atau mengedit saran perbaikan Menguji apakah admin dapat melakukan perubahan status error pada error yang belum di tangani Menguji apakah semua jenis error dapat di tampilkan dengan baik

Menginput data admin baru

Menguji apakah semua error yang penah terjadi bisa di tampilkan dengan baik dan semua keteragan bisa di tampilkan - Menguji apakah admin yang sedang login bisa mengedit profilenya sendiri - Menguji apakah aplikasi ini mampu menangani kesalahan masukan data dalam form edit profile - Menguji apakah admin bisa memasukkan data admin baru sesuai dengan aturan aturan yang telah di tetapkan-

22

-

Logout

-

4

Admin site

Mengubah status admin

-

Delete Admin Otorisasi superuser

-

Menguji apakah alert yang muncul sesuai dengan kesalahan yang terjadi. Menguji apakah admin bisa logout dengan baik Menguji apakah session tidak berlaku ketika sudah logout Menguji apakah superuser dapat mengubah status admin(deactive, active, to superuser) Menguji apakah superuser dapat menghapus data admin Menguji apakah superuser sudah mempunyai akses ke semua bagian dari web.

Tabel 1. Rencana Pengujian Detail hasil pengujian dapat di lihat dalam lampiran E.

23

DAFTAR PUSTAKA BAB 55.1 KesimpulanKesimpulan yang dapat di ambil dari proyek akhir ini adalah : 1. Notifikasi sms dapat di tambahkan di nagios, dengan menambahkan modul tambahan pada nagios. 2. Dengan menambahkan aplikasi web, maka manajemen error dalam nagios lebih terorganisir dengan baik.

PENUTUP

5.2

Saran Saran yang harus dilakukan untuk pengembangan aplikasi ini lebih lanjut adalah : 1. Untuk menambahkan fungsi untuk auto heal ketika terjadi error. Sehingga error yang sederhana dapat ditangani secara otomatis dan tidak membutuhkan campur tangan admin. 2. Menambahkan tampilan mobile untuk web dan menambahkan fungsi untuk remote dari smartphone.

[1] Alchin, Marty. 2010. Pro Python, Apress [2] Bennet, James. 2009. Practical Django Projects, Apress; 2nd Edition. [3] Holovaty, Adrian and Kaplan-Moss, Jacob. 2009. The Definitive Guide to Django Web Development Done Right Second Edition, Apress [4] Imron. R Romzi, 2006, Membuat Sendiri SMS Gateway (ESME) berbasis Protokol SMPP, Jakarta. [5] Kocjan, Wojciech, 2008, Learning Nagios 3.0, Birmingham-Mumbai [6] Lutz, Mark. 2009. Learning Python : Fourth Edition. Cambridge:O'Reilly Media. [7] Pilgrim, Mark, 2004. Dive Into Python. diveintopython.org [8] Shaw, Zed A. 2010. Learn Python The Hard Way 1.0, learnpythonthehardway.org [9] Sileika, Rytis. 2010. Pro Python System Administration, Apress; 1st edition. [10] Forum Nagios http://forums.meulie.net/viewforum.php?f= 60 diakses terakhir tanggal 27 Januari 2011 [11] NAGIOS Documentation 2010, http://nagios.sourceforge.net/docs/nagios3.pdf . diakses terakhir tanggal 27 Januari 2011 [12] http://www.ardyans.co.cc/sms-gatewaymenggunakan-gammu-dan-ubuntu-1004.htm diakses terakhir tanggal 5 November 2010 [13] http://en.wikipedia.org/wiki/Network_mon itoring diakses terakhir tanggal 27 Januari 2011 [14] http://en.wikipedia.org/wiki/Python_(progr amming_language) diakses terakhir tanggal 28 Januari 2011 [15] http://wammu.eu/docs/man/ diakses terakhir tanggal 14 November 2010 [16] http://en.wikipedia.org/wiki/Gammu_(soft ware) diakses terakhir tanggal 28 Januari 2011

24