Fakultas Ilmu Komputer
695
Implementasi MQTT (
Message Queuing Telemetry Transport
) pada Sistem
Monitoring Jaringan berbasis SNMP (
Simple Network Management
Protocol
)
Akbar Pandu Segara1, Rakhmadhany Primananda2, Sabriansyah Rizqika Akbar3 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya
Email: 1akbarpandu94@gmail.com, 2rakhmadhany@ub.ac.id, 3sabrian@ub.ac.id
Abstrak
Semakin berkembangnya pengguna teknologi informasi saat ini, dibutuhkan sistem monitoring yang memudahkan administrator jaringan untuk memantau perangkat yang terhubung dalam sebuah jaringan komputer. Saat ini sistem monitoring jaringan umumnya menampilkan informasi dengan cara polling data perangkat setiap beberapa menit sekali. Hal ini menyebabkan administrator tidak dapat mengetahui sedini mungkin apabila terjadi sesuatu pada perangkat yang dimonitor. Pada penelitian ini dikembangkan sebuah sistem monitoring jaringan berbasis SNMP dengan mengimplementasikan MQTT. MQTT menggunakan prinsip publish-subscribe dalam berkomunikasi. MQTT digunakan karena protokol pengiriman pesannya yang ringan (lightweight) dan hemat daya. Penelitian ini menghasilkan sistem monitoring jaringan yang dapat menampilkan informasi perangkat yang dimonitor yakni CPU, load, dan memory secara periodik dalam bentuk grafik dan tabel pada antarmuka web. Pengembangan sistem dilakukan dengan mengimplementasikan SNMP agent pada setiap perangkat yang dimonitor. Kemudian mengimplementasikan SNMP manager pada NMS Server yang bertindak sebagai publisher. Manager melakukan request informasi ke agent setiap 2 detik sekali. Pada sisi client diimplementasikan sebuah subscriber untuk berlangganan data yang telah dipublikasi oleh manager untuk kemudian diolah pada antarmuka berbasis web. Dari hasil pengujian menunjukkan waktu pemrosesan data oleh manager/server dan client membutuhkan waktu rata-rata 2,029 detik, untuk waktu pemrosesan data dari server ke client membutuhkan waktu rata-rata 1,210 detik.
Kata kunci: Monitoring Jaringan, SNMP, MQTT, publish, subscribe
Abstract
The growing use of current information technology users, monitoring system is needed to facilitate network administrators to monitor the devices connected in a computer network. Currently network monitoring systems generally display information by polling device data every few minutes. This causes the administrator don’t know as early as possible if something happens to the device being monitored. This study developed an SNMP based network monitoring system by implementing MQTT.
MQTT uses the principle of publish-subscribe to communicating.
MQTT is used because power-saving and lightweight messaging protocol. This research produces a network monitoring system which can monitored device information like CPU, load, and memory periodically and display it in graphical form and table in web interface. System development with implementing SNMP agent on monitored device and SNMP manager on NMS Server as publisher. Manager requested information to agent every 2 seconds. On the client side is implemented a subscriber to subscribe published data by manager and then processed on the web-based interface. From the test results show the processing time data by the server and client takes an average time of 2.029 seconds. For data processing time from server to client takes an average time of 1.210 seconds.Keywords: Network Monitoring, SNMP, MQTT, publish, subscribe
1. PENDAHULUAN
Teknologi Informasi saat ini sudah menjadi kebutuhan sebagian besar manusia, begitu juga
dewasa ini sudah sangat banyak digunakan dalam berbagai bidang, karena semua saling terhubung dalam bidang satu dengan yang lain dalam suatu jaringan komputer. Dengan adanya teknologi informasi berupa jaringan komputer, pengguna tentu saja merasa terbantu dan dipermudah dengan adanya layanan ini. Menurut lembaga riset pasar e-Marketer, memperkirakan pengguna internet Indonesia akan mencapai 112 juta orang. Secara keseluruhan, jumlah pengguna internet di seluruh dunia diproyeksikan akan mencapai 3 miliar orang pada 2015. Tiga tahun setelahnya, pada 2018, diperkirakan sebanyak 3,6 miliar manusia di bumi akan mengakses internet setidaknya sekali tiap satu bulan (kominfo, 2014).
Dengan semakin berkembangnya pengguna teknologi informasi ini, dibutuhkan suatu administrator untuk memanajemen jaringan agar sebuah jaringan dapat digunakan secara optimal. Simple Network Management Protocol (SNMP) merupakan metode paling dasar untuk mengumpulkan informasi pengguna pada sebuah jaringan komputer. Simple Network Management Protocol (SNMP) adalah sebuah protokol yang digunakan untuk monitoring jaringan yang banyak digunakan. SNMP terdiri dari Network Management Station (NMS) atau manager dan perangkat yang dimonitor atau SNMP agent. NMS Server berfungsi sebagai mesin pengolahan informasi dari perangkat-perangkat jaringan yang dimonitor. SNMP dapat digunakan untuk memantau penggunaan data dari router, switch port-to-port, dan device. Proses monitoring dilakukan dari suatu PC yang bertindak sebagai manager terhadap suatu agent SNMP. Manager bertugas mengumpul-kan data-data monitoring dengan menggunakan polling dalam waktu periodik. Ada dua jenis polling utama yaitu, polling untuk status (up/down/warning) dan polling untuk statistik (CPU, load, memory, dll.). Umumnya pada seluruh industri, polling setiap 5 menit sekali merupakan standar yang digunakan (Stephens, 2008).
MQTT adalah Message Queuing Telemetry
Transport yang menggunakan
prinsip publish/subscribe, sangat sederhana dengan protokol pesan yang ringan (lightweight). Dirancang untuk memberikan latency rendah, pengiriman pesan yang terjamin dan distribusi yang efisien ke satu atau banyak penerima. MQTT adalah protokol konektivitas machine-to-machine (M2M) atau Internet of
Things (IoT) sangat ideal untuk perangkat yang terhubung dan aplikasi mobile. Protokol ini berfokus pada meminimalkan jumlah bytes pada sebuah jalur dan penggunaan daya yang rendah. Ukuran pesan maksimal 256 MB, namun tidak benar-benar dirancang untuk mengirim sejumlah data yang besar. Menyediakan saluran komunikasi dua arah. MQTT memiliki 3 macam Quality of Service : (QoS 0, QoS 1 & QoS 2). Kita akan dapat jaminan bahwa paket data yang kita kirimkan pasti akan sampai jika menggunakan QoS 1 & QoS 2 (MQTT.org, 2016).
Berdasarkan latar belakang tersebut, dibuatlah sistem monitoring dengan prinsip publish/subscribe dimana protokol pengiriman pesannya sangat ringan (lightweight) dan low latency. Dalam penelitian ini penulis akan mencoba mengimplementasikan MQTT untuk sebuah sistem monitoring jaringan. Dengan memanfaatkan MQTT, pengguna dapat melihat data perangkat yang sedang dimonitor hanya dengan melakukan subscribe. Kemudian MQTT akan diintegrasikan dengan protokol SNMP agar dapat menampilkan data perangkat yang dimonitor. Simple Network Management Protocol (SNMP) adalah sebuah protokol yang digunakan untuk memonitor kondisi jaringan dan perangkat-perangkat yang terhubung pada jaringan tersebut (Net-SNMP.org, 2016). Setelah mengintegrasikan MQTT dengan SNMP kemudian dilakukan pengujian dan analisis aplikasi monitoring yang telah dibuat. Pengujian dan analisis meliputi fungsionalitas dan non-fungsional dari implementasi monitoring jaringan menggunakan MQTT pada protokol SNMP, yang diharapkan mendapatkan hasil yang dibutuhkan untuk kepentingan analisis lebih lanjut.
2. METODE PENELITIAN
Beberapa tahapan penelitian yang dilakukan meliputi studi literature, analisis kebutuhan, perancangan, implementasi, pengujian dan analisis, kesimpulan dan saran.
Studi Literatur
Analisis Kebutuhan
Perancangan
Implementasi
Pengujian dan Analisis
Kesimpulan dan Saran
Gambar 1. Alur metodologi penelitian
Berdasarkan alur metodologi penelitian pada gambar 1 diatas, studi literatur meliputi studi tentang SNMP, MQTT dan penelitian sebelumnya. Kemudian dilanjutkan dengan analisis kebutuhan meliputi kebutuhan fungsional dan non-fungsional. Perancangan dan implementasi sistem meliputi perancangan manager, agent, dan client. Pengujian dan analisis meliputi fungsional dan non-fungsional. Setelah semua proses selesai akan ambil sebuah kesimpulan dan saran untuk penelitian selanjutnya.
3. PERANCANGAN DAN IMPLEMENTASI
Proses perancangan sistem dibagi menjadi beberapa tahap yaitu dimulai dengan menggambarkan diagram blok sistem dan diagram komunikasi sistem.
3.1 Perancangan Sistem
Gambar 2. Diagram blok sistem
Berdasarkan pada diagram blok pada gambar 2 diatas sistem dibagi menjadi 3 sub sistem yaitu perangkat yang dimonitor, NMS Server dan client. Selain itu dibuat diagram sekuensial sistem untuk menggambarkan bagaimana komunikasi yang terjadi antara NMS Server, agent, dan client. Diagram Sekuensial ini dimulai dari bagian atas dan berlanjut hingga ke
bawah, mulai dari proses yang pertama terjadi kemudian proses yang akan terjadi selanjutnya.
Client/Subscriber Broker NMS Server/Publisher Agent
Subscribe (Topic)
Publish (Topic, Information)
Get (Information)
SNMP Respone (Information) SNMP Get (OID)
Gambar 3. Diagram sekuensial sistem
Pada gambar 3 diatas, dijelaskan bahwa komunikasi MQTT pada protokol SNMP dimulai dengan NMS Server melakukan SNMP Get ke agent dengan menggunakan Object ID yang telah ditentukan pada NMS Server. Setelah agent merespon kemudian agent akan melakukan SNMP Response dengan memberikan informasi perangkat yang sudah di request oleh NMS Server. Setelah itu NMS Server yang juga bertindak sebagai publisher akan melakukan publikasi informasi secara terus menerus dengan topik yang sudah ditentukan ke broker. Broker bertugas sebagai perantara komunikasi antara NMS Server dan client. Kemudian client akan melakukan subscribe dengan Topic ke broker untuk mendapatkan informasi perangkat. Jika topic sesuai maka broker akan meneruskan data yang telah dipublikasi sebelumnya oleh NMS Server ke client atau subscriber. Proses perancangan dilakukan pada masing-masing sub sistem.
3.2 NMS Server
Mulai
session = netsnmp.Session( DestHost='IP address agent', Version=2, Community='skripsi' )
vars = netsnmp.VarList( netsnmp.Varbind('OID') )
data = str(session.get(vars)).split("'")
print(data)
publish.single("topic", data[1], hostname="IP address manager" )
NMS Server berhenti mempublish TIdak
Selesai Ya Melakukan publikasi
data ke broker
Gambar 4. Diagram alir program server
Pada gambar 4 adalah diagram alir bagaimana program server nantinya akan bekerja. Perancangan ini dibutuhkan library netsnmp dan paho.mqtt pada python. Library netsnmp digunakan agar program mendapatkan informasi perangkat yang dimonitor, sedangkan paho.mqtt digunakan sebagai protokol komunikasi antara server dengan client. Pertama program mendefinisikan session yang berisi informasi perangkat yang akan dimonitor diantaranya berisi DestHost, Version, dan Community yang digunakan. DestHost adalah alamat IP dari perangkat yang akan dimonitor, Version adalah versi dari snmp yang digunakan, pada penelitian kali ini menggunakan SNMPv2 (versi 2), dan Community yang digunakan yaitu
‘skripsi’ agar administrator jaringan dapat
melakukan monitoring terhadap perangkat dengan komunitas yang sama. Kemudian langkah selanjutnya adalah mendefinisikan Object ID yang digunakan sesuai dengan kepentingan administrator. Kemudian data dipanggil dengan menggunakan definisi session dan vars yang sudah dibuat sebelumnya dengan tipe data string. Kemudian data dicetak guna mengetahui apakah data yang didapatkan sudah merupakan data real. Setelah pencetakan data kemudian dilanjutkan publikasi data yang sudah
didapat ke broker dengan topik yang sudah ditentukan. Program akan terus mengambil data dan mempublikasi data selama program dijalankan, dan akan selesai apabila NMS Server berhenti menjalankan program.
3.3 Perangkat yang dimonitor
Perancangan perangkat yang dimonitor diterapkan sebuah SNMP agent dan Management Information Base (MIB). MIB merupakan basis informasi dari perangkat yang dimonitor.
SNMP Agent Perangkat yang
dimonitor MIB
N
M
S
S
e
rv
e
r
SNMP Get
SNMP Response OID
Nilai MIB
Gambar 5. Diagram blok perangkat yang dimonitor
Pada gambar 5 diatas dijelaskan bahwa didalam perangkat yang dimonitor terdapat dua proses pertukaran informasi antara SNMP agent dan MIB. Didalam perangkat yang dimonitor melakukan pertukaran informasi ketika NMS Server melakukan SNMP Get ke perangkat yang dimonitor. SNMP agent mengirimkan informasi yang diminta berupa OID agar dapat diterjemahkan oleh MIB yang berisi nilai dari informasi yang diminta, nilai yang diminta berupa angka. Kemudian MIB akan memberikan respon dengan memberikan nilai tersebut kepada SNMP agent yang nantinya akan dikirimkan ke NMS Server melalui SNMP response.
3.4 Client
Mulai
Fungsi subscriber mendapatkan data secara list
Fungsi memasukkan data pada array
Membuat koneksi
Koneksi Terputus
Fungsi menyimpan data
Fungsi menerima data
Fungsi memulai komunikasi MQTT
Fungsi main dengan websoket
Selesai Tidak
Class MQTTtoWeb
Gambar 6. Diagram alir program client
Pada gambar 6 diatas merupakan program dengan prinsip MQTT subscribe yang diterapkan pada client. Data yang didapat oleh client berupa list dan kemudian diolah agar dapat ditampilkan pada antarmuka web pada class MQTTtoWeb. Class MQTTtoWeb sendiri terdapat beberapa fungsi diantaranya memasukkan data dalam bentuk array setelah client akan membuat koneksi. Client memutus koneksi jika program berhenti dijalankan jika tidak maka client akan melanjutkan ke fungsi penyimpanan informasi yang nantinya digunakan untuk menyimpan data yang telah ter- subscribe. Setelah itu dilanjutkan dengan menerima data pada fungsi memulai komunikasi MQTT yang sudah dipublikasi oleh NMS Server/publisher dengan topic yang sudah ditentukan agar data tidak tercampur. Kemudian setelah itu dilanjutkan dengan fungsi main dengan websocket untuk kemudian ditampilkan dalam antarmuka web.
3.5 Implementasi Sistem
Implementasi sistem berbasis SNMP dan MQTT dilakukan pada sebuah jaringan virtual menggunakan virtualbox. Masing-masing sub sistem akan dikonfigurasi agar dapat saling berkomunikasi pada sebuah jaringan virtual. Implementasi dilakukan berdasarkan perancangan sistem yang telah disusun sebelumnya.
Gambar 7. Implementasi program publisher
Pada gambar 7, sub-sistem NMS Server diimplentasikan sebuah SNMP manager agar dapat melakukan polling informasi terhadap perangkat yang dimonitor. Selain itu, diimplentasikan broker sebagai tempat pertukaran informasi dan sebuah program publisher.
Gambar 8. Implementasi SNMP agent
Pada gambar 8, perangkat yang dimonitor dilakukan implementasi SNMP agent. Dilakukan konfigurasi agar perangkat dapat dimonitor oleh server dengan mengkonfigurasi security name, source, community, group name dan informasi Object ID apa saja yang ingin ditampilkan.
Gambar 9. Implementasi program subscriber
javascript untuk menampilkan fluktuasi data pada antarmuka web.
4. PENGUJIAN
Pengujian non fungsional dilakukan untuk mengetahui waktu pemrosesan sistem dari server hingga sampai ke client. Pengujian dilakukan pada sisi server dan client.
4.1 Pengujian Server
Pengujian pertama dengan menguji polling data pada sisi server dengan menggunakan waktu UTC dan diambil menggunakan aplikasi wireshark dengan melakukan filter paket yakni paket SNMP dari manager ke agent.
Tabel 1. Tabel delay server
Pada tabel 1 diatas, diambil 10 sample setiap manager saat melakukan polling data pada agent dan mendapatkan hasil rata-rata delay 2.029 detik.
4.2 Pengujian Client
Pengujian kedua dengan menguji subscribe data pada sisi client dengan menggunakan waktu UTC dan diambil menggunakan aplikasi wireshark dengan melakukan filter paket yakni paket MQTT pada port 1883 dari server ke
Pada tabel 2 diatas, diambil 10 sample setiap client melakukan subscribe data dan mendapatkan hasil rata-rata delay 2.029 detik.
4.3 Pengujian Waktu Pemrosesan dari Server ke Client
Pengujian selanjutnya dilakukan dengan melihat waktu pengiriman informasi dari server ke client dengan menggunakan waktu saat data sampai ke client dikurangi waktu saat data di publikasi server.
Tabel 3. Tabel waktu pemrosesan server ke client
data
10
11:54:35.729 11:54:34.520
1.209
Rata-rata
1.210
Pada tabel 3 diatas, setelah dilakukan pengurangan, pemrosesan informasi yang dilakukan dari server ke client membutuhkan waktu rata-rata 1.210 detik.
4.4 Analisis Hasil pengujian
Antarmuka web pada sisi client juga sudah terintegrasi dengan program subscriber, ditunjukkan dengan grafik dan tabel yang berubah secara periodik setiap 2 detik sekali sesuai dengan informasi yang telah ter subscribe oleh client. Secara keseluruhan sistem sudah berjalan sesuai dengan yang diharapkan.
Gambar 7. Grafik Pengujian Delay Server
Pada gambar 7 diatas menunjukkan grafik perubahan delay pada setiap polling. Delay yang dihasilkan rata-rata adalah 2 detik. Hal tersebut dikarenakan pada kode program server menggunakan library time dengan kode program perulangan dengan time.sleep(2) dengan demikian program akan berhenti sementara selama 2 detik. Delay rata-rata selama 30 kali polling adalah 2.029 detik.
Gambar 8. Grafik Pengujian Delay Client
Pada gambar 8 diatas menunjukkan grafik perubahan delay pada saat client melakukan subscribe. Delay yang dihasilkan rata-rata adalah 2 detik. Client juga akan berlangganan informasi setiap 2 detik dikarenakan mengacu pada program server saat mempublish informasi setiap 2 detik Pada saat client melakukan subscribe informasi ke-17 secara perhitungan waktu yang dibutuhkan tidak sampai 2 detik yakni 1,944, namun hanya terpaut beberapa milisekon saja dan sebenernya sudah dikategorikan 2 detik. Delay rata-rata selama 30
kali subscribe adalah 2.029 detik.
Gambar 9. Grafik Pengujian waktu pemrosesan sistem
Pada gambar 9 diatas menunjukkan grafik perubahan pemrosesan informasi dari server ke client. Waktu pemrosesan yang dihasilkan rata-rata adalah 1 detik. Waktu pemrosesan keseluruhan sistem membutuhkan waktu rata-rata 1,210 detik. Kesuluruhan sistem membutuhkan waktu pengiriman data yang sangat cepat dan dalam kategori handal karena sistem melakukan pemrosesan informasi setiap 1 detik. Dengan demikian MQTT dapat dijadikan sebagai protokol pengiriman pesan pada sistem monitoring jaringan dengan diintegrasikan dengan SNMP.
5. KESIMPULAN
Berdasarkan hasil pengujian yang dilakukan dalam penelitian ini, dapat diambil kesimpulan. Sistem monitoring jaringan dengan protokol SNMP diimplementasikan dengan cara menerapkan sebuah SNMP agent pada perangkat yang dimonitor, menerapkan sebuah SNMP manager pada NMS Server. Sistem monitoring jaringan dengan MQTT diimplementasikan dengan cara melakukan instalasi broker pada NMS Server, mengimplementasikan NMS Server sebagai publisher dengan membuat program publikasi informasi, dan mengimplementasikan subscriber pada sisi client untuk berlangganan informasi. Pada server dibuat sebuah program untuk melakukan polling informasi perangkat yang dimonitor menggunakan SNMP. Hasil polling kemudian dipublikasi oleh publisher pada NMS Server ke broker.
Client yang bertindak sebagai subscriber berlangganan informasi yang telah dipublikasi oleh NMS Server. Kemudian client melakukan akses pada web server yang sudah terkonfigurasi
0.00.02,013
Waktu Pemrosesan Data ke
-Grafik Waktu Pemrosesan
pada NMS Server untuk menampilkan informasi perangkat yang dimonitor secara periodik. Waktu NMS Server/publisher dalam melakukan polling informasi dan waktu client dalam melakukan subscribe informasi membutuhkan waktu rata-rata 2.029 detik. Waktu pemrosesan data dari server ke sisi client membutuhkan waktu rata-rata 1.210 detik. dimana dengan waktu tersebut administrator dapat memonitoring sedini mungkin perangkat yang terhubung karena waktu proses hanya 1 detik.
6. DAFTAR PUSTAKA
Cacti.net, 2016. Cacti. [Online]
Tersedia di:
http://www.cacti.net/what_is_cacti.php [Diakses 17 Desember 2016].
Case, J., 1990. About SNMP, SNMP Architecture, Protocol Specification. In: RFC 1157. s.l.:The Internet Society.
Chung-Nan, L., Tian-Hsiang, H., Chen- Ming, W. & Ming-Chun, T., 2017. THE INTERNET OF THINGS AND ITS APPLICATIONS. In: Kaohsiung: s.n., pp. 259-261.
Harrington, D., 2002. An Architecture
Describing SNMP Management
Frameworks. In: RFC 3411. s.l.:The Internet Society.
kominfo, 2014. kominfo.go.id. [Online]
Tersedia di:
https://kominfo.go.id/content/detail/4286/pe ngguna-internet-indonesia-nomor-enam-dunia/0/sorotan_media
[Diakses 7 7 2017].
Kurniawan, E. & Khoirurrosyidin, 2015. ANALISA PENGGUNAAN BANDWIDTH
UNTUK OPTIMALISASI
PEMANFAATAN INTRANET DAN
INTERNET DI JARINGAN
UNIVERSITAS.
Mauro, D. R. & Schmidt, K. J., 2005. Essential SNMP. 2nd ed. Sebastopol: O'Reilly Media, Inc.
McCloghrie, K., 1991. Management Information Base for Network Management of TCP/IP-based internets: MIB-II. In: RFC 1213. s.l.:Hughes LAN Systems, Inc..
Mitchell, B., 2015. Bandwidth. [Online]
Tersedia di:
http://compnetworking.about.com/od/speedt est/g/bldef_bandwidth.htm
[Diakses 16 April 2016].
MQTT.org, 2016. MQTT. [Online] Tersedia di: http://mqtt.org/faq [Diakses 17 Desember 2016].
Net-SNMP.org, 2016. Net-SNMP. [Online] Tersedia di: http://www.net-snmp.org/ [Diakses 16 Desember 2016].
Paessler AG, 2016. Infographic. [Online]
Tersedia di:
http://www.paessler.com/prtg/infographic [Diakses 16 Desember 2016].
Rusli, D. P., 2006. Analisa Efektifitas Penggunaan Bandwidth Jaringan Computer di Universitas Kristen Petra.
Stephens, J., 2008. Geek Speak. [Online]
Tersedia di:
https://thwack.solarwinds.com/community/s
olarwinds-community/geek- speak_tht/blog/2008/05/20/understanding-snmp-polling-and-counters