perancangan bot untuk remote monitoring pada server...

21
Perancangan Bot untuk Remote Monitoring pada Server menggunakan Telegram Bot API Artikel Ilmiah Peneliti: David Karismata W. Tion (672012109) Indrastanti Ratna Widiasari, M.T. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Juli 2016

Upload: lyanh

Post on 07-Mar-2019

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

Perancangan Bot untuk Remote Monitoring pada Server

menggunakan Telegram Bot API

Artikel Ilmiah

Peneliti:

David Karismata W. Tion (672012109)

Indrastanti Ratna Widiasari, M.T.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Juli 2016

Page 2: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

i

Perancangan Bot untuk Remote Monitoring pada Server

menggunakan Telegram Bot API

Artikel Ilmiah

Diajukan kepada

Fakultas Teknologi Informasi

Untuk Memperoleh Gelar Sarjana Komputer

Peneliti:

David Karismata W. Tion (672012109)

Indrastanti Ratna Widiasari, M.T.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Juli 2016

Page 3: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

ii

Page 4: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

iii

Page 5: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

iv

Page 6: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

v

Page 7: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

vi

Page 8: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

1

Perancangan Bot untuk Remote Monitoring pada Server

menggunakan Telegram Bot API

1) David Karismata W. Tion, 2) Indrastanti R. Widiasari

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Jalan Diponegoro 52-60, Salatiga 50711, Indonesia

Email: 1) [email protected], 2) [email protected]

Abstract

The problems that often occur in a company or institution that owns the server is

the lack of flexibility in the regulatory process due to problems of human error

especially server admin duty to observe the performance of the server is less able

to observe the server for 24 hours. Seeing these problems, need a system that can

perform remote monitoring for added flexibility admin server. The system can

monitor both the server and sends a notification if a problem occurs. Server admins

can also send available commands to the server to check the status of the server in

real time.

Keyword: Remote monitoring, Notification, Linux Server

Abstrak

Permasalahan yang kerap terjadi di dalam sebuah perusahaan atau institusi yang

memiliki server adalah kurangnya fleksibilitas dalam proses pengawasan

dikarenakan permasalahan human error terutama server admin yang bertugas

mengamati kinerja server kurang mampu dalam mengamati server selama 24 jam.

Melihat permasalah tersebut, maka dibutuhkan sistem yang dapat melakukan proses

remote monitoring untuk menambah fleksibilitas server admin. Sistem tersebut

dapat melakukan monitoring terhadap server dan mengirimkan notifikasi jika

terjadi masalah. Server admin juga dapat mengirimkan perintah yang tersedia

terhadap server untuk mengecek status terakhir dari server secara real time.

Kata Kunci: Remote monitoring, Notifikasi, Linux Server

1) Mahasiswa Fakultas Teknologi Informasi Jurusan Teknik Informatika, Universitas

Kristen Satya Wacana Salatiga. 2) Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga

Page 9: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

2

1. Pendahuluan

Server Administrator atau yang sering disingkat Server Admin merupakan

orang yang bertanggung jawab atas server pada sebuah perusahaan atau institusi.

Perlunya remote monitoring terhadap server berpengaruh terhadap perkembangan

suatu perusahaan atau institusi tersebut. Pentingnya tanggapan cepat terhadap

server yang bermasalah menjadikan salah satu munculnya berbagai macam aplikasi

remote dan monitoring. Disebabkan server admin tidak selalu dekat dengan server,

maka dibutuhkannya cara cepat untuk dapat berkomunikasi dengan server.

Fleksibilitas dalam hal ini dibutuhkan agar mempercepat proses pemeriksaan

terhadap server, sehingga server admin tidak perlu membuka PC ataupun laptop

agar dapat mengetahui masalah yang dihadapi. Kemampuan bot dalam memberikan

Notification system dan Simple Execution system merupakan tujuan utama dalam

penelitian ini. Kebanyakan perusahaan yang masih berkembang memiliki kendala

pada server terutama masalah pengawasan, sedangkan server merupakan hal fatal

jika tidak diawasi dengan baik. Perusahaan besar yang memiliki jadwal shift dalam

mengawasi server terkadang mengalami masalah kelalaian sehingga membutuhkan

cara cepat untuk berkomunikasi dengan server yang diawasi. Masalah yang sering

muncul adalah server mengalami down dikarenakan harddisk penuh, CPU &

memory usage tinggi sehingga server admin membutuhkan notifikasi cepat [1].

Rumusan masalah dalam penelitian ini adalah kebutuhan fleksibilitas dalam

penanganan server oleh server admin dalam mengawasi server.

2. Tinjauan Pustaka

Penelitian terdahulu yang berjudul Sistem Monitoring Jaringan pada Server

Linux dengan Menggunakan SMS Gateway membahas mengenai pemantauan

jaringan server menggunakan SMS Gateway sebagai alert system yang dapat

digunakan oleh administrator jaringan jika terjadi gagal koneksi atau Request Time

Out. Penelitian yang dilakukan menggunakan aplikasi Gammu yang berfungsi

sebagai database untuk menyimpan semua pesan yang dikirim maupun yang

diterima [2].

Penelitian lainnya yang pernah dilakukan berjudul Pengembangan Aplikasi

Remote Spesifikasi Desktop Berbasis Client Server menggunakan Internet Direct

(Indy) yang digunakan untuk membuat aplikasi dengan menggunakan protokol

jaringan. Indy merupakan komponen open source yang terdiri dari protokol internet

yang sudah dikenal, seperti HTTP, FTP, SMTP, TCP, UDP, Gopher, Whois dan

lain-lain. Kemudahan Indy yaitu mendukung protokol sampai 120 protokol [3].

Pada kedua penelitian tersebut dibahas mengenai sistem notifikasi dan

remote, sedangkan teknologi yang digunakan adalah SMS Gateway gammu dan

Indy untuk membangun aplikasi. Perbedaan dari kedua penelitian tersebut adalah

Page 10: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

3

aplikasi Remote Monitoring ini dirancang menggunakan bahasa pemrograman

Python dengan teknologi Telegram Bot API (Application Programming Interface)

yang dapat dipahami oleh server admin untuk pengembangan program sesuai

kebutuhan dimana aplikasi ini disebut bot karena dapat berkomunikasi dengan

server admin dengan memanfaatkan program client Telegram yang terpasang pada

perangkat mobile server admin. Adapun dasar teori yang digunakan pada penelitian

yang dilakukan adalah API (Application Programming Interface). API merupakan

software yang digunakan untuk dapat berkomunikasi dengan program lainnya

seperti akses data, kirim data. API memberikan dua keuntungan utama yaitu:

penyederhanaan dan standarisasi. Kedua hal ini dapat dipergunakan sebagai sarana

penggunaan API pada sistem yang dibangun [4].

Pada penelitian yang dilakukan terdapat batasan masalah yaitu sebagai

berikut: (1) Pembuatan bot menggunakan Bahasa pemrograman Python; (2)

Penelitian ini tidak membahas keamanan jaringan; (3) Perancangan dan pengujian

dilakukan secara virtualisasi pada virtualbox; (4) Parameter yang digunakan untuk

parameter jaringan adalah Delay antara server dan perangkat mobile; (5) Parameter

yang digunakan untuk penelitian kerja sistem adalah server response, mobile

response. Penelitian yang dilakukan menggunakan arsitektur yang telah ada guna

merancang sistem Remote Monitoring seperti yang terlihat pada Gambar 1.

HTTPS

Gambar 1 Telegram Bot Arsitektur

Gambar 1 menjelaskan smartphone berkomunikasi dengan Telegram server

sebagai jembatan penghubung antara client dan bot server. Ada dua istilah utama

yang digunakan, yaitu request dan update. Server Admin melakukan request

melalui Telegram server sebagai jembatan penghubung antara perangkat mobile

dan server yang diawasi, kemudian Telegram server menjalankan proses polling

dengan protokol HTTPS ke dalam server dan bot server memberikan update dari

Page 11: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

4

hasil request Server Admin. Agar dapat melakukan hal tersebut, maka perancangan

yang dilakukan memanfaatkan Telegram Bot API sebagai media perantara antara

Server Admin dan Server yang diawasi. Telegram Bot API merupakan API

(Application Programming Interface) yang digunakan untuk melakukan remote

monitoring dengan memanfaatkan bot sebagai program yang berjalan pada server.

Telegram Bot API menggunakan MTProto encryption protocol yang telah

dipersiapkan kepada developer sebagai sarana keamanan sehingga tidak dibahas

pada penelitian ini [5].

Dalam pembuatan bot server tersebut, bahasa pemrograman yang

digunakan adalah bahasa pemrograman Python. Pemrograman Python memiliki

keunggulan yang dapat diterapkan ke dalam server seperti scalable atau dapat

dikembangkan lebih dalam tanpa membongkar fungsi lainnya dikarenakan Python

mudah dibaca, Python juga portable saat dipindahkan ke server lainnya selama

server tersebut telah mengunduh dan memasang Modul Python. Python efektif

digunakan sebagai Rapid Prototyping Tool dikarena memiliki banyak library yang

mendukung pemrograman Python. Memory management pada Python telah

ditangani oleh Python interpreter, aplikasi developer yang mampu membersihkan

isu memori dan berfokus pada pembuatan aplikasi yang telah dirancang sejak awal

[6]. Disebabkan keunggulan tersebut, maka bahasa pemrograman Python cocok

digunakan untuk pembuatan Remote Monitoring atau RMON.

RMON disebut sebagai software yang memiliki kemampuan mengelola,

mengatur dan mengamati server atau clients. RMON berfungsi sebagai pengamat

paket yang lewat atau beberapa segmen. Namun sekarang, RMON dapat melakukan

pengumpulan data, dan hal-hal lainnya. Tujuan RMON (Remote Monitoring):

Offline Operation : Ada kondisi dimana stasiun manajemen tidak

menginformasikan secara konstan statusnya kepada perangkat remote monitoring.

Untuk alasan ini, RMON mengijinkan probe terkonfigurasi untuk melakukan

diagnosis dan mengumpulkan data walaupun tidak terhubung dengan internet.

Proactive Monitoring : Monitoring terus berlanjut untuk melakukan diagnosis dan

mengecek log jaringan. Secara berkala, monitoring selalu tersedia untuk

memberikan notifikasi tentang kegagalan perangkat yang diawasi. Problem

Detection and Reporting : Monitoring dapat disesuaikan untuk mengetahui kondisi

tertentu, sebagian kondisi error dan terus-menerus melakukan pengecekan dalam

hal itu. Saat salah satu kondisi terdeteksi, hal tersebut kemudian akan tercatat dan

kemudian management stations akan memberikan pemberitahuan. Value Added

Data : Perangkat remote monitoring jaringan memiliki keuntungan untuk

menambahkan penilaian data yang dikumpulkan. Misalnya dengan

menitikberatkan beberapa host dari bagian jaringan yang mengalami jalur padat

atau error, bagian tersebut dapat mengirimkan informasi yang dibutuhkan ke pusat

manajemen. Multiple Managers : Sebuah organisasi mungkin memiliki beberapa

pusat manajemen untuk unit yang berbeda serta beberapa fungsi. Oleh sebab itu,

perangkat remote monitoring harus berurusan dengan lebih dari satu pusat

manajemen [7].

Page 12: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

5

3. Metode dan Perancangan Sistem

Metode yang digunakan pada penelitian ini adalah PPDIOO (Prepare, Plan,

Design, Implement, Operate, Optimize) yaitu metode yang digunakan oleh Cisco

pada perancangan jaringan dan kemudian digunakan dalam perancangan bot server

sebagai media remote monitoring yang ditunjukkan pada Gambar 2.

Gambar 2 Skema Metodologi PPDIOO (Cisco, 2010)

Prepare merupakan analisis masalah dengan melakukan studi literatur

mengenai Telegram Bot API untuk remote monitoring serta mengidentifikasi

masalah dan sistem seperti apa yang diperlukan untuk mengatasi masalah tersebut. Plan merupakan tahapan perancangan tentang sistem dan analisis kebutuhan yang

akan dibuat apakah sesuai dengan kebutuhan yang diperlukan. Tahapan ini juga

merencanakan susunan penelitian agar terorganisir dengan baik. Design merupakan

tahapan dilakukannya perancangan sistem yang akan dibangun. Mulai dari flowcart

diagram hingga alur kerja sistem yang dirancang. Implement merupakan tahapan

dimana kebutuhan perangkat, penulisan kode program bot serta penerapan

rancangan arsitektur Telegram Bot API. Pada tahap ini, program dibuat sesuai

rancangan pada tahapan design serta mengikuti alur diagram yang telah dibuat. Operate merupakan percobaan dalam menjalankan program bot yang telah

dirancang. Program bot diujicobakan ke dalam virtual machine agar setiap langkah

dapat diamati saat melakukan pengujian. Data yang didapat pada tahapan ini

menentukan apakah sistem dapat menjawab permasalahan yang telah dirumuskan. Optimize melakukan pengoptimalan dalam setiap komponen perancangan. Mulai

dari hardware, software dan kebutuhan perancangan bot yang lain seperti

pengawasan terhadap pengaruh jaringan serta penambahan tiap komponen yang

diperlukan [8].

Bot merupakan program yang berjalan disisi server dan untuk mendapatkan

informasi dengan cara menggunakan Telegram Client yang telah terpasang pada

perangkat mobile admin server. Penggunaan Telegram Client berfungsi sebagai

antarmuka yang menampilkan informasi tertentu. Fungsi bot dapat terlihat pada

Gambar 3.

Page 13: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

6

Server AdminServer Admin

UserCPU

ServiceMemoryHarddisk

Ping

Bot ServerBot Server

UserCPU

ServiceMemoryHarddisk

PingNotifikasi Alert

Request Request

UpdateUpdate

Gambar 3 Proses Request dan Update

Pada Gambar 3 menjelaskan tentang peran server admin dan bot server.

Server admin dapat melakukan request User Login, CPU status, Service running,

memory usage, harddisk usage dan ping. Bot server dapat mengirimkan informasi

yang telah di-request oleh server admin dan mengirimkan pemberitahuan jika

terjadi masalah pada bagian CPU, memory, harddisk serta memberitahukan user

login dari lokasi yang berbeda.

Pada proses yang dilakukan, terdapat dua peran yang bekerja yaitu request

dan update. Request digunakan sebagai permintaan dari admin agar mendapatkan

informasi yang dibutuhkan sedangkan update merupakan balasan dari bot server

sebagai hasil proses yang telah di-request. Alur kerja sistem request dapat terlihat

pada Gambar 4.

Gambar 4 Request Telegram Bot API

Mulai

Input perintah

dengan format

“/perintah”

Format

perintah

benar ?

Tidak

Perintah masuk

ke Server

Telegram Ya

perintah

tersedia di

Bot Server ?

Request via

HTTPS ke Bot

Server

Ya

Perintah tidak

tersedia

Tidak

Cek daftar

perintah yang

tersedia

Bot Server

memproses

perintah

Selesai

Page 14: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

7

Pada Gambar 4 menjelaskan proses request dari server admin untuk

melakukan pemeriksaan terhadap server yang diawasi. Proses request ini terjadi

saat admin hendak melakukan pemeriksaan secara manual. Bot yang ditanamkan di

dalam server memiliki perintah yang telah di program dimaksudkan untuk

memfokuskan permasalahan server yang sering terjadi. Dari tahapan mulai yaitu

admin berkomunikasi melalui Telegram Client yang telah terpasang pada

smartphone dan kemudian memasukan perintah.

Bot di sisi client akan memeriksa masukkan perintah yang sesuai atau tidak,

kemudian akan diteruskan ke Telegram Server sebagai jembatan penghubung

antara admin dan bot yang ada di sisi server. Saat Telegram Bot Server telah

memastikan masukan perintah adalah valid, perintah akan diteruskan melalui

HTTPS ke dalam server dan kemudian bot server menerima request perintah.

Proses request telah selesai dan untuk mengembalikan ke sisi admin, Bot

server yang berjalan di sisi server akan mengembalikannya ke sisi admin server

melalui proses update. Proses update berjalan dalam beberapa detik saat admin

melakukan request. Pada proses yang terjadi, Telegram server menjadi jembatan

penghubung antara bot dan admin server yang dapat terlihat pada Gambar 5.

Gambar 5 Update Telegram Bot API

Proses update yang berjalan merupakan proses pengiriman hasil, baik

pemeriksaan manual atau request data maupun berupa peringatan yang digunakan

untuk melaporkan masalah dibagian server. Proses update diawali dengan mulai

yaitu proses dimana program bot berjalan di server. Kemudian script yang telah

ada melakukan inisialisasi program sesuai yang di-coding-kan. Setelah itu bot

melakukan pemeriksaan terhadap request admin, proses “ya” bila admin melakukan

Mulai

Script Kode program

berjalan

Apakah ada

request

admin?

Menjalankan script

yang di request

Update perubahan

Value di Bot dan di

kirim via HTTPS

Inisialisasi kode

program

Update masuk ke

Telegram Server Selesai

Tidak

Ya

Notification/

pesan sampai ke

sisi Admin Server

Page 15: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

8

perintah request untuk melakukan pemeriksaan secara manual sedangkan pada

proses “tidak” artinya bot melakukan tugasnya dengan mengamati perubahan nilai

yang terjadi di dalam server dan langsung mengirimkan hasil ke admin server

melalui Server Telegram. Setelah melalui server Telegram, akan dilanjutkan

pengiriman hasil ke Telegram client milik admin server berupa notifikasi atau

pesan.

4. Hasil dan Pembahasan

Sesuai dengan perancangan sistem yang telah dibuat, sistem bot dibagi

menjadi dua bagian, yaitu sistem request dan update. Agar dapat terhubung dengan

sistem bot, perancangan membutuhkan akses yang dinamakan token. Token

didapatkan dari request token ke server Telegram. Token bertujuan sebagai

pengenal antara bot dan server yang diawasi. Chat_id digunakan sebagai identitas

agar dikenali bot untuk mengirim pesan. Fungsi ini termasuk ke dalam proses

update disebabkan bot yang akan membutuhkan chat_id sebagai pengenal. Kode

program untuk inisialisasi token dan chat_id dapat terlihat pada Kode Program 1.

Kode Program 1 Import Library dan Inisialisasi Token

Kode Program 1 melakukan inisialisasi awal untuk mengenali bot yang akan

bertukar informasi dengan perangkat mobile. Inisialisasi bot digunakan untuk tiap

pemanggilan proses request dan update.

Untuk mendapatkan chat_id, dapat mengakses melalui browser ke:

https://api.telegram.org/botTOKEN/getUpdates?offset=0 pada browser. Logging

merupakan fungsi yang bertujuan untuk melakukan log jika terjadi kesalahan

program saat program dijalankan.

1. from telegram.ext import Updater, CommandHandler, MessageHandler, Filters

2. import telegram

3. import logging

4. import psutil

5. import os

6. import time

7. import operator

8. import threading

9. from multiprocessing import Process

10. logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s,

level=logging.INFO')

11. logger = logging.getLogger(__name__)

12. token = "239279412:AAEv3gega9Tb9HxvgrwXTH_tuiCVemRGN3c"

13. bot = telegram.Bot(token = token)

14. chat_id = 140454144

Page 16: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

9

Kode Program 2 Pemanggilan fungsi request

5. Simpulan

Pada Kode Program 2 merupakan fungsi yang digunakan untuk

pemanggilan request yang ditangani oleh method di nomor 3. Proses ini dinamakan

echo oleh Telegram dikarenakan proses update dan request dilakukan secara

bersamaan. Saat request disisi admin, maka fungsi ini akan berjalan sebagai fungsi

update.

Gambar 5 Request disisi Admin melalui Smartphone

1. def main():

2. updater = Updater(token)

3. dp = updater.dispatcher

4. dp.add_handler(CommandHandler('start', start))

5. dp.add_handler(CommandHandler('hello', hello))

6. dp.add_handler(CommandHandler('user', user))

7. dp.add_handler(CommandHandler('cpu', CPU))

8. dp.add_handler(CommandHandler('service', servrun))

9. dp.add_handler(CommandHandler('memory', memory))

10. dp.add_handler(CommandHandler('hdd', hdd))

11. dp.add_handler(CommandHandler('ping', ping))

12. dp.add_handler(CommandHandler('help', help))

13. unknown_handler1 = MessageHandler([Filters.command], unknown)

14. unknown_handler2 = MessageHandler([Filters.text], unknown)

15. dp.add_handler(unknown_handler1)

16. dp.add_handler(unknown_handler2)

17. updater.start_polling()

18. updater.idle()

Page 17: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

10

Gambar 5 menjelaskan proses request dengan menjalankan command yang

telah tersedia di sisi bot. Saat proses request terjadi, bot akan membalas dengan

menjalan fungsi yang sesuai dengan command.

Kode Program 3 Fungsi utama bot yang dijalankan

Kode Program 3 menjelaskan tentang fungsi utama yang dijalankan saat bot

dimulai. Proses ini dinamakan multiprocessing karena dijalankan secara simultan.

Multiprocessing akan memproses program secara satu waktu. Bahasa

pemrograman Python memungkinkan beberapa fungsi dapat dieksekusi tanpa

melihat urutan program.

Kode Program 4 Fungsi notifikasi

1. if __name__ == '__main__':

2. p1 = Process(target = main)

3. p1.start()

4. p2 = Process(target = alert)

5. p2.start()

1. def alert():

2. while True:

3. period = 0

4. userr = psutil.users()

5. userH = ""

6. userT = "tty1"

7. for user in userr:

8. userHL = user.host

9. userTm = user.terminal

10. if userHL != userH and userTm != userT:

11. period += 1

12. bot.sendMessage(chat_id, text=str(userr))

13. break

14. if period >= 1:

15. time.sleep(60)

16. time.sleep(30)

17. lt = 0

18. interval = 30

19. datenow = time.time()

20. cpu = psutil.cpu_percent()

21. mem = psutil.virtual_memory().percent

22. hdd = psutil.disk_usage('/').percent

23. if datenow - lt > interval:

24. send = False

25. send1 = False

26. send2 = False

27. if cpu > CPU_lim:

28. send = True

29. if mem > Mem_lim:

30. send1 = True

31. if hdd > Hdd_lim:

32. send2 = True

Page 18: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

11

Kode Program 4 merupakan fungsi notifikasi yang akan mengirimkan

informasi berupa status terakhir CPU, memory dan harddisk. Fungsi akan

melakukan pemeriksaan setiap 30 detik dan mengirimkan proses update menuju

admin. Pada proses update, bot akan menggunakan fungsi bot.sendMessage untuk

menyampaikan pesan notifikasi ketangan admin server. Notifikasi juga berfungsi

sebagai log untuk mengetahui siapa yang melakukan login ke server ditempat yang

berbeda.

Gambar 6 Proses notifikasi disaat smartphone standby

Gambar 6 menjelaskan tentang proses notifikasi dimana pada saat fungsi

berjalan dan menemukan masalah, maka bot akan mengirimkan informasi tersebut.

Notifikasi akan terus terjadi jika masalah masih dijumpai dikarenakan bot akan

melakukan pemeriksaan setiap 30 detik dan langsung mengirimkan laporan.

33. if send:

34. lt = datenow

35. bot.sendMessage(chat_id, text= "CPU usage :

{0}%".format(cpu))

36. if send1:

37. lt = datenow

38. bot.sendMessage(chat_id, text="Memory usage :

{0}%".format(mem))

39. if send2:

40. lt = datenow

41. bot.sendMessage(chat_id, text="Harddisk usage :

{0}%".format(hdd))

Page 19: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

12

Pengujian sistem dilakukan secara virtualisasi untuk melihat fungsi sudah

berjalan dengan baik atau tidak dimana koneksi jaringan server admin yang

digunakan berupa jaringan WLAN dan jaringan paket data sedangkan jaringan pada

server berupa LAN. Tabel pengujian dapat dilihat pada Tabel 1.

Tabel 1 Pengujian Delay Request Server Admin

No Point WLAN Paket Data Hasil Uji Status Uji

1. Request CPU 00:00:01.03 00:00:01.15

Menampilkan

status CPU saat di-

request

Valid

2. Request Memory 00:00:01.13 00:00:01.47

Menampilkan

penggunaan

memory

Valid

3. Request Service 00:00:01.22 00:00:1.92

Menampilkan

service utama

seperti Clamd,

Amavisd, Python,

httpd, mysqld,

named, fail2ban-

server

Valid

4. Request User 00:00:01.05 00:00:04.18

Menampilkan user

yang akses menuju

server

Valid

5. Request Hdd 00:00:01.16 00:00:01.77

Menampilkan

kapasitas hdd saat

di-request

Valid

6. Request Ping 00:00:01.11 00:00:02.45

Menampilkan bytes

sent-recv, packet

sent-recv, error in-

out, drop in-out

Valid

7. Command salah 00:00:01.04 00:00:01.49

Menampilkan

pemberitahuan

inputan salah

Valid

Dari hasil pengujian request server admin terhadap bot server di Tabel 1

terlihat beberapa perbedaan delay dalam jaringan yang tidak begitu jauh hasilnya.

Hal tersebut memberikan kesimpulan yaitu jaringan WLAN ataupun paket data

tidak berpengaruh besar dalam proses request-update untuk bot server. Selama

server admin masih terhubung dengan jaringan, maka server admin dapat

melakukan proses remote monitoring. Pada proses notifikasi, bot akan

menjalankan fungsi pemeriksaan secara berkala. Pengujian dapat dilihat pada Tabel

2.

Page 20: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

13

Tabel 2 Pengujian Notifikasi CPU, Memory, Hdd dan User

No Point Validasi Output Hasil Uji Status Uji

1. Notifikasi CPU CPU Usage

Menampilkan status CPU usage

terakhir

Valid

2. Notifikasi Memory Memory Usage

Menampilkan memory yang

terpakai

Valid

3. Notifikasi Hdd Hdd Usage

Menampilkan kapasitas Hdd yang

tersisa

Valid

4. Notifikasi User User login Menampilkan user login terakhir

dari tempat lain Valid

Pada Tabel 2 terlihat bahwa bot mengirimkan notifikasi sesuai fungsi yang

telah dibuat. Fungsi tersebut melakukan pemeriksaan secara berkala dan

mengirimkan pesan notifikasi sesuai point yang ada sehingga server admin dapat

melihat log dan melakukan tindakan yang perlu terhadap server.

5. Simpulan

Berdasarkan penelitian yang telah dilakukan, dapat disimpulkan bahwa

dengan memanfaatkan Telegram bot membantu pekerjaan server administrator

dalam memantau server serta melakukan pemeriksaan masalah utama yang kerap

terjadi pada server sehingga admin yang tidak berada ditempat dapat mengetahui

keadaan server yang diawasi tanpa perlu membuka PC atau laptop. Perbedaan

waktu yang ditampilkan pada Tabel 1 berpengaruh terhadap kecepatan respon dari

bot server yang diawasi saat admin hendak melakukan pemeriksaan. Jaringan

WLAN dan paket data mempengaruhi cepat lambatnya proses pemeriksaan

terhadap server. Dengan adanya notifikasi, server admin dapat mengetahui kondisi server yang diawasi secara realtime. Jumlah notifikasi yang disampaikan oleh bot

server menandakan bahwa server mengalami masalah yang berkelanjutan atau

tetap.

6. Daftar Pustaka

[1] ManageEngine., 2010. Top 5 Server Performance Problems and How to

Resolve Them Using OpManager. Diambil dari

http://www.slideshare.net/manageengine/top-5-server-performance-

problems-and-how-to-resolve-them-using-opmanager.

(Diakses pada 20 juni 2016)

[2] Prayoga, Taufan D., 2011. Sistem Monitoring Jaringan pada Server Linux

dengan Menggunakan SMS Gateway, Jurnal Masyarakat Informatika. 2(3);

2086-4930. http://ejournal.undip.ac.id/index.php/jmasif/article/view/2648.

(diakses pada tanggal 16 Juli 2016)

[3] Nanang, Herlino., 2008. Pengembangan Aplikasi Remote Spesifikasi

Desktop Berbasis Client Server, Jurnal inforSAINS. 2(3); 1412-9116.

Page 21: Perancangan Bot untuk Remote Monitoring pada Server ...repository.uksw.edu/bitstream/123456789/11449/2/T1_672012109_Full... · yang digunakan untuk penelitian kerja sistem adalah

14

http://www.journal.uinjkt.ac.id/ti/article/download/2004/1559.

(diakses pada tanggal 16 Juli 2016)

[4] Maddox, Sarah., 2014. Application Programming Interfaces (APIs). STC

SUMMIT 2014.

http://summit.stc.org/responsive/summit2014.htm#!Documents/applicatio

nprogramminginterfacesapis.htm. (Diakses pada 16 Juni 2016)

[5] Anonym., 2013. Telegram Bot API. Diambil dari

https://core.Telegram .org/bots/api. (Diakses pada 16 Juni 2016)

[6] Chun, Wesley J., 2006. Core Python Programming, Second Edition.

Prentice Hall.

[7] Waldbusser, S., 2003. Introduction to the Remote Monitoring (RMON)

Family of MIB Modules. Diambil dari https://tools.ietf.org/html/rfc3577.

(Diakses pada 16 Juni 2016)

[8] Cisco., 2010. Creating Business Value and Operational Excellence with The

Cisco Systems Lifecycle Services Approach.

https://www.cisco.com/c/dam/global/es_mx/assets/serviciospartners/other

_files/pdf/lifecycle_services_white_paper.pdf. (Diakses pada 22 Juni 2016)