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