Hasil dan Pembahasan Simpulan

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.orgbotTOKENgetUpdates?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.basicConfigformat=asctimes - levelnames - messages, level=logging.INFO 11. logger = logging.getLogger__name__ 12. token = 239279412:AAEv3gega9Tb9HxvgrwXTH_tuiCVemRGN3c 13. bot = telegram.Bottoken = token 14. chat_id = 140454144 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 = Updatertoken 3. dp = updater.dispatcher 4. dp.add_handlerCommandHandlerstart, start 5. dp.add_handlerCommandHandlerhello, hello 6. dp.add_handlerCommandHandleruser, user 7. dp.add_handlerCommandHandlercpu, CPU 8. dp.add_handlerCommandHandlerservice, servrun 9. dp.add_handlerCommandHandlermemory, memory 10. dp.add_handlerCommandHandlerhdd, hdd 11. dp.add_handlerCommandHandlerping, ping 12. dp.add_handlerCommandHandlerhelp, help 13. unknown_handler1 = MessageHandler[Filters.command], unknown 14. unknown_handler2 = MessageHandler[Filters.text], unknown 15. dp.add_handlerunknown_handler1 16. dp.add_handlerunknown_handler2 17. updater.start_polling 18. updater.idle 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 = Processtarget = main 3. p1.start 4. p2 = Processtarget = 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.sendMessagechat_id, text=struserr 13. break 14. if period = 1: 15. time.sleep60 16. time.sleep30 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 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.sendMessagechat_id, text= CPU usage : {0}.formatcpu 36. if send1: 37. lt = datenow 38. bot.sendMessagechat_id, text=Memory usage : {0}.formatmem 39. if send2: 40. lt = datenow 41. bot.sendMessagechat_id, text=Harddisk usage : {0}.formathdd 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. 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