Aplikasi Pengelolaan Layanan-layanan Server memanfaatkan SMS Gateway Good Fried Panggabean 1, Tulus Pardamean Simanjuntak 2, Chairul Friks Gunawan Manalu 3, Lasdiarion A. Simanjuntak 4 Politeknik Informatika Del, Sitoluama, Laguboti, Sumatera Utara
[email protected],
[email protected],
[email protected],
[email protected]
1
Abstrak Jika ada gangguan pada server yang mengakibatkan kegagalan layanan server, maka hal ini perlu segera diketahui oleh administrator server agar dapat dilakukan penanganan. Penanganan melalui remote login dimungkinkan jika akses jaringan tersedia ke server yang mengalami gangguan. Namun jika tidak tersedia akses ke server dapat menggunakan jaringan GSM dengan mengirimkan command Linux melalui SMS. Penelitian ini bertujuan untuk membangun sebuah aplikasi yang dapat digunakan oleh administrator melakukan pengelolaan terhadap server. Selain itu, aplikasi ini juga dapat melakukan penanganan sendiri terhadap kegagalan layanan tertentu pada server dan akan mengirimkan informasi kegagalan layanan tersebut kepada administrator. Dengan demikian penanganan kegagalan layanan server oleh administrator dapat dilakukan dengan lebih mudah dan lebih baik. Aplikasi ini dibangun dengan menggunakan bahasa pemrograman Java dengan memanfaatkan perangkat lunak SMS Gateway Gammu 1.28.92. Ada enam jenis layanan server yang dapat dikelola pada sistem ini yaitu mail server, dns server, web server, proxy server, file server dan chat server. Kata kunci: Administrator, administrasi server, aplikasi, SMS Gateway Abstract If there is failure of the server service, then this needs to be known by the server administrator to do the handling. Handling via remote login is possible if network access is available to the server. But if there is not access to the server, we can use the GSM network by sending a linux command via SMS. This study aims to build an application that can be used by administrators to manage the server. In addition, this application can also perform their own handling of the failure of certain services on the server and will send notification to the administrator of the service. Thus the handling of service failure by the administrator of the server can be done more easily and better. This application is built using the Java programming language by utilizing the SMS Gateway software Gammu 1.28.92. There are six types of services that the server can be managed on this system are mail servers, dns servers, web servers, proxy servers, file servers and chat servers. Keywords: Administrator, server administration, application, SMS Gateway sistem operasi Windows, sedangkan Remote Login digunakan untuk server yang menggunakan sistem 1. Pendahuluan operasi Linux. Penanganan server dengan cara Tugas utama seorang administrator dalam seperti ini banyak dilakukan karena seorang pengelolaan server adalah menjamin agar seluruh administrator tidak harus berada di ruang server layanan server yang ditanganinya berfungsi dengan pada saat menangani kegagalan layanan server. Jika baik. Server adalah sebuah komputer yang menjadi penanganan yang dilakukan tetap tidak berhasil, pusat kegiatan suatu jaringan (intranet) yang dapat maka administrator kemudian menggunakan memroses satu atau lebih layanan jaringan[1]. komputer melalui console server yang bermasalah. Kebanyakan server menggunakan sistem operasi Namun, penanganan tersebut hanya dapat Linux, namun ada juga yang menggunakan sistem dilakukan jika administrator dapat mengakses operasi Windows. Layanan server dapat berupa jaringan intranet. Ketika seorang administrator aplikasi e-mail, file, proxy, web, dan DNS server. berada jauh dari ruang server atau di luar intranet, Jika ada gangguan pada server yang penanganan server tidak memungkinkan lagi mengakibatkan kegagalan layanan server, maka hal dilakukan secara remote jika ada kegagalan layanan tersebut seharusnya diketahui oleh administrator server. Misalnya, seorang client pada suatu saat jaringan secepat mungkin agar dapat dilakukan tidak dapat mengakses mail untuk keperluan penting penanganan yang sesuai. Penanganan yang biasanya karena server mail mati, sementara administrator dilakukan oleh administrator adalah melakukan server sedang berada di luar kota. Remote Desktop atau Remote Login dari sebuah Untuk mengatasi hal tersebut, dibutuhkan komputer yang terhubung ke jaringan. Remote sebuah teknologi yang menghubungkan komputer Desktop digunakan untuk server yang menggunakan dengan sebuah media komunikasi dari jarak jauh ISSN: 2088-8252
13
untuk segera memberitahu administrator bahwa ada kegagalan layanan server. Media komunikasi yang dipakai pada teknologi tersebut adalah jaringan GSM yang memanfaatkan sebuah handphone. Perangkat lunak yang dapat menghubungkan komputer dan media komunikasi tersebut adalah SMS Gateway. SMS Gateway adalah perangkat lunak yang memungkinkan untuk mengirim dan menerima pesan teks (SMS) dengan mudah melalui jaringan telepon seluler GSM dari PC lokal atau melalui jaringan [2]. 2.
Related Work
Beberapa perangkat lunak yang sudah ada untuk menghubungkan antara komputer dengan handphone memanfaatkan SMS adalah Kannel, Gammu, SMS Server Tools, dan CUTs. Kannel melakukan fungsinya sebagai SMS Gateway menggunakan protokol HTTP sebagai antarmukanya [3], sedangkan Gammu langsung melalui utilitas sistem, yaitu terminal sebagai antarmuka. Aplikasi lain adalah SMS Server Tools, dimana perangkat lunak ini hanya menangani penyimpanan SMS dan mengirimkan balasan sesuai dengan format SMS yang dikirimkan [4]. Sementara untuk pengelolaan server tidak dapat dilakukan karena tidak ada aksi yang diberikan ke sistem server. Sementara aplikasi lain, CUTs, memang dapat menerjemahkan SMS menjadi command pada sistem server tetapi, server juga harus merupakan mail server, karena sistem CUTs menerjemahkan SMS tersebut melalui Procmail [5]. SMS yang dikirimkan diterima sebagai command oleh mail server kemudian sistem aplikasi Procmail menangkapnya, dan kemudian menerjemahkannya [6]. Perangkat lunak SMS Gateway tersebut dapat dimanfaatkan sebagai media perantara antara komputer dengan handphone dalam pembuatan aplikasi ini. 3.
master adalah menerjemahkan pesan SMS menjadi perintah, mengirimkan perintah tersebut kepada komputer agent untuk dieksekusi, memantau mesin dan modul agent pada komputer agent apakah hidup atau mati, dan melakukan pengiriman pesan SMS baik dari komputer master maupun dari komputer agent. Modul agent pada masing-masing komputer agent berfungsi untuk mengeksekusi perintah yang dikirimkan oleh server master pada mesinnya sendiri, dan melakukan fungsi monitoring terhadap layanan server pada mesinnya sendiri. Ada enam jenis server yang dapat dikelola pada sistem ini yaitu mail server, dns server, web server, proxy server, file server dan chat server. Komponen-komponen layanan server yang dipantau adalah status layanan, port layanan, koneksi ke gateway, error code layanan tertentu dan status kapasitas hard disk yang tersisa. Sistem pengelolaan yang dibuat untuk melakukan fungsi pengelolaan kegagalan layanan server ditunjukkan oleh gambar 1.
Deskripsi Sistem yag Dibangun Gambar 1: Arsitektur sistem
Aplikasi dibagi menjadi dua modul, yang pertama disebut modul master dan yang kedua disebut modul agent. Kedua modul ini sama-sama berfungsi sebagai perangkat lunak pengelola server. Jenis pengelolaan server yang dilakukan oleh sistem dibedakan menjadi dua yaitu administrasi dan monitoring. Pengelolaan secara administrasi adalah pengelolaan dimana administrator bertindak aktif untuk melakukan aksi tertentu terhadap komputer server, sedangkan pengelolaan secara monitoring adalah pengelolaan dimana aplikasi bertindak aktif untuk melakukan pemantauan terhadap komputer server, kemudian aplikasi juga bertugas untuk mengirimkan notifikasi kepada administrator jika terdapat kegagalan pada server yang dipantaunya. Arsitektur Sistem Modul master dipasang pada sebuah komputer yang disebut server master. Tugas utama server 14
Pada gambar 1 juga diuraikan sistem komunikasi yang ada pada aplikasi, yang dibagi kedalam dua bagian, yaitu sistem secara front-end dan sistem secara back-end. Secara front end, sistem komunikasi merupakan komunikasi antara administrator dengan handphone. Pada sistem komunikasi ini, handphone berfungsi sebagai interface antara administrator dengan aplikasi. Untuk fungsi administrasi, handphone digunakan oleh administrator untuk mengetik pesan SMS untuk dieksekusi oleh aplikasi. Sementara untuk fungsi monitoring, handphone digunakan oleh aplikasi untuk menampilkan informasi kegagalan yang terjadi. Sedangkan secara back end, sistem komunikasi merupakan komunikasi antara perangkat lunak SMS Gateway dengan aplikasi. Untuk fungsi administrasi, pesan yang diterima dari modem masuk ke database ISSN: 2088-8252
aplikasi Gammu pada server master. Kemudian aplikasi mengambil pesan yang baru masuk tersebut dan menerjemahkan menjadi executable command. Executable command kemudian dieksekusi. Setelah itu pesan yang merupakan output hasil eksekusi perintah tersebut dikirimkan kembali ke administrator melalui Gammu yang ada pada server master. Untuk fungsi monitoring, aplikasi menggunakan Gammu untuk mengirimkan pesan kegagalan kepada administrator. Aliran Proses Pengelolaan Pengelolaan yang dilakukan oleh sistem ada dua, yaitu administrasi dan monitoring. Alur proses pengelolaan yang dilakukan sistem pada proses administrasi ditunjukkan pada gambar 1.
Gambar 1: Alur proses administrasi
Proses administrasi di inisialisasi oleh administrator. Administrator mengirimkan perintah melalui pesan SMS ke aplikasi. (1) Kemudian melalui jaringan GSM pesan tersebut diterima oleh modem yang dipasang pada mesin master, setelah itu (2) modem meneruskannya ke perangkat lunak SMS Gateway yaitu Gammu. (3) Gammu menerima pesan SMS tersebut kemudian memasukkannya ke tabel inbox dalam database SMS, yang dilakukan (4) melalui pengecekan yang dilakukan aplikasi setiap 500ms pada tabel inbox dalam database SMS.
ISSN: 2088-8252
(5) Jika ada pesan SMS baru, maka aplikasi melakukan eksekusi terhadap pesan tersebut. Dalam pengeksekusian pesan SMS tersebut aplikasi melakukan validasi, parsing dan penerjemahan terhadap pesan SMS tersebut dengan mengacu pada database interpreter. (6) Setelah pesan SMS tersebut diterjemahkan menjadi perintah, kemudian aplikasi mengeksekusi perintah tersebut pada agent yang ditentukan dalam pesan SMS. (7) Output hasil eksekusi perintah tersebut menjadi nilai yang dikirimkan kepada administrator. (8) Untuk mengirimkannya, output tersebut dimasukkan ke tabel outbox dalam database SMS untuk dikirimkan oleh Gammu. (9) Gammu selalu mengirimkan semua isi yang ada pada tabel outbox, dengan cara inilah aplikasi dapat memanfaatkan Gammu untuk mengirimkan pesan SMS ke administrator. (10) Gammu meneruskan pengiriman pesan SMS melalui modem, (11) kemudian modem mengirimkan pesan SMS tersebut kepada administrator melewati jaringan GSM. Sedangkan alur proses pengelolaan yang dilakukan sistem pada proses monitoring ditunjukkan pada gambar 2. Proses monitoring diinisialisasi oleh aplikasi, dimana pada rentang waktu tertentu, aplikasi melakukan pengecekan terhadap status mesin, koneksi, layanan dan sistem tempat aplikasi bekerja. (1) Ketika ditemui error dari pengecekan tersebut, aplikasi mengirimkan laporan kegagalan ke server master. Kemudian (2) server master mengirimkan laporan tersebut kepada administrator dengan memasukkan laporan tersebut ke tabel outbox pada database SMS. (3) Gammu selalu mengirimkan semua isi yang ada pada tabel outbox, dengan cara inilah aplikasi dapat memanfaatkan Gammu untuk mengirimkan pesan SMS ke administrator. (4) Gammu meneruskan pengiriman pesan SMS melalui modem, (5) kemudian modem mengirimkan pesan SMS tersebut kepada administrator melewati jaringan GSM.
15
Tabel server_agent berfungsi untuk menyimpan data mengenai agent yang merupakan agent yang dipantau oleh master. Ketiga tabel tersebut menggunakan tabel operating_system sebagai tabel referensi sistem operasi yang digunakan. Sementara tabel user merupakan tabel terpisah yang berfungsi untuk menyimpan data user yang berfungsi dalam proses autentikasi.
Gambar 2: Alur proses monitoring
Data Analysis Database yang digunakan memiliki lima tabel yang berfungsi menyimpan seluruh data yang diperlukan untuk menjalankan aplikasi. Database yang digunakan oleh aplikasi ditunjukkan pada gambar 3.
Class Diagram Aplikasi dibagi menjadi dua modul, yaitu modul master dan modul agent. Deskripsi sekelompok objek dari atribut, operasi, dan relasi antar objek pada modul master ditunjukkan oleh class diagram modul master pada gambar 4. MasterDriver merupakan entri point bagi modul master. Ketika pertama kali dijalankan, MasterDriver menginstansiasi sebuah objek dari MasterManager dan sebuah objek dari ConfigManagerMaster untuk mengelola file konfigurasi master. Kemudian MasterDriver menginstansiasi 3 objek untuk melakukan pengelolaan, yaitu sebuah objek dari DbDriver untuk mengelola database, objek dari LogManager untuk mengelola log, dan sebuah objek dari ConnectionManager untuk mengelola koneksi secara umum, serta MasterThread untuk mengelola koneksi dengan agent.
Gambar 3: Physical Data Model database aplikasi
Tabel SMS_command merupakan tabel yang berguna untuk menyimpan pemetaan perintah dengan pesan SMS yang berkaitan dengan fungsi administratif. Sedangkan tabel os_service berisi pemetaan perintah dengan sistem operasi yang sesuai yang berkaitan dengan fungsi pemantauan.
16
Gambar 4: Class diagram modul master
Sedangkan deskripsi sekelompok objek dari atribut, operasi, dan relasi antar objek pada modul agent ditunjukkan oleh class diagram modul agent pada gambar 5. ISSN: 2088-8252
AgentDriver merupakan entry point pada modul agent. Ketika pertama kali dijalankan, AgentDriver menginstansiasi sebuah objek dari AgentManager dan sebuah objek dari ConfigManagerAgent untuk mengelola file konfigurasi agent. AgentManager kemudian menginstansiasi beberapa objek, yaitu sebuah objek dari AgentThread untuk mengelola koneksi dengan agent dan beberapa objek yang ditentukan dari file konfigurasi agent untuk mengelola layanan. Objekobjek yang ditentukan tersebut adalah objek dari Class DnsManager, FtpManager, WebManager, MailManager, ChatManager, SambaManager, dan ProxyManager.
menerjemahkannya menjadi perintah dan menentukan tempat eksekusi perintah. Validasi yang dilakukan adalah mencek apakah pesan SMS mengikuti format yang benar atau tidak. Format pesan SMS tersebut adalah sebagai berikut. [COMMAND] [PIN] [SERVER_TUJUAN] [PARAMETER1] [PARAMETER2] [PARAMETER...]
Contohnya : START 1234 web1 httpd Segmen [COMMAND] adalah perintah dari pesan SMS yang mewakili perintah yang sesungguhnya pada database. Segmen [PIN] adalah kombinasi karakter pada pesan SMS yang berguna untuk mengautentikasi penggunanya. Segmen [SERVER_TUJUAN] merupakan kata yang menunjukkan ke server mana perintah akan di eksekusi. Segmen [PARAMETER] merupakan parameter-parameter yang diperlukan untuk membentuk perintah yang sebenarnya. Kondisi yang harus dipenuhi pada saat aplikasi menvalidasi pesan SMS adalah sebagai berikut. 1. Jumlah segmen pesan SMS tidak boleh kurang dari tiga segmen. 2. COMMAND harus terdaftar dalam database. 3. Kombinasi PIN dan nomor telepon harus sesuai dengan yang terdaftar dalam database. 4. SERVER_TUJUAN harus terdaftar dalam database, kecuali jika SERVER_TUJUAN tersebut bernilai ’MASTER’. Jika demikian, maka mesin tempat pesan dieksekusi adalah mesin master. Autentikasi yang dilakukan aplikasi adalah mencek apakah pesan SMS berasal dari nomor administrator yang didaftarkan dalam database, kemudian mencek apakah PIN yang terdapat pada pesan SMS benar atau tidak. Setelah pesan SMS divalidasi dan diautentikasi maka pesan SMS kemudian diterjemahkan menjadi perintah yang sesungguhnya. Penerjemahan pesan SMS ini dilakukan dengan cara sebagai berikut. Pertama sekali, dilakukan pengambilan alamat IP dan jenis sistem operasi dari mesin tujuan yang ditentukan pada segmen SERVER_TUJUAN.
Gambar 5: Class diagram modul agent
4.
SMS message processing
Dalam sistem yang dibuat, pesan SMS menjadi media yang digunakan untuk pengelolaan. Dengan demikian diperlukan sesuatu agar komputer dapat mengirim dan menerima pesan SMS. Untuk itu digunakan sebuah perangkat lunak yang disebut Gammu yang bertindak sebagai SMS Gateway agar komputer dapat mengirim dan menerima pesan SMS. Pesan SMS yang diterima oleh server master diproses untuk menvalidasinya, mengautentikasinya, ISSN: 2088-8252
db_man.executeQuery("SELECT * FROM server_agent WHERE `keyword`='"+parsedData.get("type")+"'");
Setelah itu, dilakukan pengambilan pemetaan dari perintah pesan SMS ke perintah sistem operasi dari tabel sms_command. db_man.executeQuery("SELECT * FROM `sms_command` WHERE `sms` = '"+[COMMAND]+"' AND `id_os`='"+[SERVER_TUJUAN]+"'"); db_man.getResultSet().getString("command");
Berikutnya adalah melakukan parsing terhadap parameter. Pada proses ini dibuat sebuah konstanta penamaan variable yang didaftarkan kedalam database yaitu ’#varn’ dimana ’#var’ adalah konstantanya dan ’n’ adalah nomor parameter yang 17
disesuaikan dengan parameter pada perintah pesan SMS. Kemudian konstanta tersebut di-replace() oleh parameter pada pesan SMS. for(int i = 1;i<=smsParameterLength;i++){ linuxCommand = .replaceAll(cmdDynamicValue+i, parsedData.get("parameter"+i)); }
dimana cmdDynamicValue bernilai ‘#var’. Setelah semua bagian dari perintah dibentuk, kemudian ditentukan tempat eksekusi perintah tersebut.
5.
Dari hasil penelitian ini, didapatkan beberapa kesimpulan, yaitu sebagai berikut. 1. Gammu tidak digunakan sebagai pengeksekusi aplikasi namun, hanya menjadi penyimpan data SMS ke dalam database, karena aplikasi berjalan sebagai layanan yang tidak tergantung kepada Gammu untuk proses eksekusi. 2.
Beberapa layanan server tidak dapat ditentukan kegagalannya melalui log oleh aplikasi, karena informasi yang diperoleh dari log tersebut tidak dapat menjadi tolak ukur untuk menyatakan layanan server tersebut gagal. Layanan yang dapat ditentukan kegagalannya melalui log oleh aplikasi adalah layanan web.
3.
Sistem komunikasi antar mesin yang diterapkan pada aplikasi tidak dapat dilakukan dengan searah, artinya baik modul master maupun modul agent harus bertindak sebagai client sekaligus server dalam alur komunikasinya.
if(isToMaster){ //Eksekusi langsung pada mesin ini }else{ sendToAgent([command yang dibentuk],[ip tujuan]);
} Hasil eksekusi ini pada mesin server menghasilkan sebuah nilai string yang kemudian dikembalikan untuk dikirimkan ke administrator. Communication Protocol Aturan komunikasi yang diterapkan merupakan aturan yang mengatur komunikasi antara aplikasi master dengan agent. Master dan agent dapat menjadi inisiator koneksi, sehingga baik master maupun agent dipasang sebuah thread yang dapat mendengar permintaan koneksi. Master menggunakan port 4444 untuk mendengarkan koneksi sedangkan agent menggunakan port 4445. Pemilihan port tersebut tidak didasari oleh pertimbangan apapun, namun hanya untuk membedakan koneksi master dengan agent. Jika master menjadi inisiator (aktif), maka master meminta koneksi ke agent pada port 4445. Hal ini terjadi ketika master mengecek status agent dan ketika master mengirimkan perintah yang dieksekusi di agent. Sementara jika agent menjadi inisator (aktif), maka agent meminta koneksi ke master pada port 4444. Hal ini terjadi ketika agent melakukan fungsinya untuk melaporkan keadaan mesin dan layanan yang ditanganinya ke master. Fungsi pengecekan dilakukan oleh master menggunakan dua jalur. Jalur yang pertama adalah TCP port 1624 ke port 7, yang merupakan jalur yang digunakan oleh method Java isReachable() dan jalur yang kedua adalah jalur TCP dari port 4444 dan 4445. Jalur pertama digunakan untuk pemantauan koneksi mesin. Dibandingkan dengan jalur ICMP, jalur pertama tersebut dipilih karena bahasa pemrograman yang digunakan adalah bahasa Java yang tidak mengimplementasikan fungsi komunikasi pada protokol ICMP. Jalur yang kedua digunakan oleh kedua modul untuk berkomunikasi. Jalur ini berfungsi untuk memastikan apakah modul agent berjalan atau tidak.
18
Kesimpulan
Daftar Pustaka [1] [2]
[3]
[4]
[5] [6]
D. George M., Tip Server RED HAT Linux, Elex Media Komputindo, 1999. funSMS.NET, “SMS Gateway”, http://funsms.net/sms_gateways.htm, diakses tanggal 26 Oktober 2010 The Kannel Group, “Kannel: Overview”, http://kannel.org/overview.shtml, diakses tanggal 16 Oktober 2010 Keijo Kasvi, “SMS Server Tools 3”, http://smstools3.kekekasvi.com, diakses tanggal 26 Oktober 2010 Tobias Ekbom, ”CUTs”, http://codewar.net/cuts, diakses tanggal 7 Oktober 2010. B. Bill dan D. Hoyt, Red Hat Linux 8 UNLEASHED, Techmedia , 1st Edition, 20
ISSN: 2088-8252