Monitoring jaringan adalah suatu hal yang penting untuk dilakukan karena dengan
monitoring ini kita bisa melakukan pemantauan yang baik dan troubleshooting yang
lebih cepat. Untuk melakukan monitoring di perangkat Mikrotik tersedia beberapa
tool yang disediakan seperti Netwatch, IP Accounting, Traffic Flow, The Dude,
dll.
Monitoring perangkat jaringan seperti Router, Switch, Server tentunya sering
sekali kita temui. Namun apakah bisa kita melakukan pemantauan terhadap perangkat
UPS yang berfungsi untuk memberikan supply daya backup ketika listrik utama padam?
Jawabannya adalah "
BISA".
Pada artikel sebelumnya kami sudah membuat tutorial mengenai monitoring UPS APlus
menggunakan NUT pada orange Pi Zero. Jika teman-teman belum membaca artikelnya
maka teman-teman bisa membacanya terlebih dahulu karena, artikel tutorial kali
ini masih terdapat hubungannya dengan artikel sebelumnya. Artikel sebelumnya bisa
dikunjungi pada halaman berikut:
Penggunaan NUT pada Orange Pi Zero untuk Monitoring UPS APlus.
Jika pada artikel sebelumnya kita bisa melakukan monitoring UPS Aplus secara
CLI (terminal) dan juga GUI (Web Base), pada kesempatan kali ini kami akan memberikan
tutorial mengenai monitoring UPS Aplus menggunakan aplikasi Telegram.
Dalam memonitoring UPS Aplus menggunakan telegram terdapat beberapa service tambahan
seperti
Mosquito, Node-red, Bot Telegram (Token-ID dan Chat-ID).
Mosquitto
Eclipse Mosquitto merupakan service message broker yang mengimplementasikan MQTT
Protokol versi 5.0, 3.1.1 dan 3.1 yang bersifat open source. Mosquitto sangat
ringan dan cocok untuk di gunakan di semua device mulai dari perangkat single
board yang memiliki power rendah hingga perangkat komputer/server.
Protokol MQTT menyediakan metode pengirimkan pesan yang ringan dengan menggunakan
model publish/subscribe. Hal ini membuatnya cocok untuk IOT yang memiliki sensor
dengan kebutuhan power rendah atau perangkat seluler seperti ponsel, embedded
computers atau microcontroller.
Node-Red
Node-RED adalah aplikasi pemrograman yang digunakan untuk menggabungkan perangkat
keras, API, dan layanan online dengan cara yang baru dan menarik.
Node-RED menyediakan editor berbasis browser yang membuatnya mudah untuk menghubungkan
berbagai node berbeda yang dapat dideploy dalam satu kali klik.
Bot Telegram
Untuk mendapatkan informasi perubahan kondisi pada UPS, maka kita perlu menyiapkan
bot telegram yang nantinya akan digunakan untuk mengirimkan pesan notifikasi ke
dalam group telegram.
Langkah-langkah memonitoring UPS Aplus menggunakan Telegram bisa ikuti step by
step di bawah ini, dengan catatan
NUT sudah berhasil di install dan sudah bisa
dijalankan. Detail instalasi NUT bisa dilihat dengan klik
disini.
1. Edit file upsd.users dengan perintah nano /etc/nut/upsd.users. Kemudian tambahkan
konfigurasi berikut pada baris paling bawah :
[upsmon]
password = mypass
upsmon master
2. Install Mosquitto server dan Mosquitto client dengan perintah :
sudo apt-get install mosquitto mosquitto-client
3. Buat user dan password untuk mosquitto :
sudo mosquitto_passwd -c /etc/mosquitto/passwd <font color="#ff0000">admin </font>
Password: <font color="#ff0000">mypass </font>
4. restart mosquitto service dengan perintah :
systemctl restart mosquitto
mosquitto -d
5. Pada file /etc/nut/upsmon.conf tambahkan konfigurasi seperti berikut :
MONITOR aplus@localhost 1 upsmon mypass master
NOTIFYCMD /etc/nut/mqttnotify/nutnotify.sh
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG FSD SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC
6. Buat direktori mqttnotify dan tambahkan file nutnotify.sh dengan perintah
berikut :
mkdir /etc/nut/mqttnotify
Kemudian tambahkan file nutnotify.sh dengan perintah "nano /etc/nut/mqttnotify/nutnotify.sh" dan isikan dengan kode berikut :
#!/bin/bash
mosquitto_pub -h localhost -t "/power/$UPSNAME/notify/$NOTIFYTYPE" -m "$1" -u
<font color="#ff0000">admin</font> -P <font color="#ff0000">mypass </font>
7. ganti permission /etc/nut/mqttnotify/nutnotify.sh agar hanya dapat diakses
oleh user root dan user dengan group nut :
sudo chown root.nut /etc/nut/mqttnotify/nutnotify.sh
sudo chmod 750 /etc/nut/mqttnotify/nutnotify.sh
8. Kemudian install node-red sebagai berikut :
<style>
 @font-face{
font-family:"Times New Roman";
}
@font-face{
font-family:"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;#23435;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;#20307;";
}
@font-face{
font-family:"Calibri";
}
p.MsoNormal{
mso-style-name:Normal;
mso-style-parent:"";
margin-bottom:8,0000pt;
line-height:107%;
font-family:Calibri;
mso-bidi-font-family:'Times New Roman';
font-size:11,0000pt;
}
span.msoIns{
mso-style-type:export-only;
mso-style-name:"";
text-decoration:underline;
text-underline:single;
color:blue;
}
span.msoDel{
mso-style-type:export-only;
mso-style-name:"";
text-decoration:line-through;
color:red;
}
}
div.Section0{page:Section0;}</style>
<p class="MsoNormal" align="justify"><span style="font-family: Calibri;">bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)</span></p>
9. Jalankan node-red dengan perintah "node-red-start".
10. Cek systemctl status nodered, dan pastikan node-red sudah berjalan.
11. Akses Node-Red secara web base dengan mengetikkan alamat IP perangkat dan
port 1880 : http://192.168.76.196:1880/
12. Setelah berhasil mengakses Node-Red, maka langkah selanjutnya adalah menambahkan
node "node-red-contrib-telegrambot-home". Node Telegrambot ini yang nantinya digunakan
untuk mengirimkan notifikasi ke grup telegram dengan memanfaatkan "Token" dan
juga "Chat ID".
13. Tambahkan node mqtt in, kemudian pada parameter topic tambahkan rule berikut:
/power/+/notify/+. Kemudian tambahkan server baru dengan menekan tombol setting
seperti pada gambar dibawah ini.
Username dan password pada tab security merupakan user mosquitto broker yang
dibuat pada step nomer 3.
14. Buat Node Function, yang berfungsi untuk mendapatkan tipe dari topik pesan
yang akan dikirimkan dan membuat sebuah pesan baru yang berisi informasi nama
UPS dan event yang terjadi pada UPS tersebut.
var message = msg.payload;
var topicElements = msg.topic.split("/");
var ups = topicElements[2].toLowerCase();
var type = topicElements[4].toLowerCase();
msg.payload = {
message:message,
ups:ups,
type:type
}
return msg;
15. Untuk mengirimkan pesan, maka pertama-tama kita perlu untuk menyiapkan konten
dan mengganti payload dengan pesan yang dihasilkan yang akan dikirim, untuk script
nya kurang lebih seperti berikut:
var message = "UPS: " + msg.payload.ups + "n";
message += "State: " + msg.payload.type + "n";
message += "Message: " + msg.payload.message + "n";
msg.payload = message;
return msg;
16. Pada tahap ini, pastikan Anda sudah memiliki BOT Telegram (Token ID dan juga
Chat ID), untuk detail langkah membuat BOT Telegram dan mendapatkan Token ID dan
Chat ID maka bisa ikuti panduan pada artikel berikut:
Panduan artikel BOT Telegram.
17. Setelah membuat Telegram Bot dan juga node fungsi, maka langkah selanjutnya
adalah menambahkan node telegram yang sebelumnya sudah diinstall. Tambahkan node
"notify" yang berguna untuk mengirimkan informasi status dari UPS ke dalam telegram
group. Detail konfigurasi node "notify" bisa dilihat pada gambar di bawah ini:
Hasil
Maka hasil dari konfigurasi yang sudah dilakukan adalah sebagai gambar berikut:
Dengan begitu maka kita bisa memonitoring UPS dengan berbagai event (sesuai dengan
kondisi UPS) di aplikasi Telegram.
Note:
- Supaya notifikasi dapat berjalan, maka pastikan kabel USB yang digunakan adalah
"USB Communication Port" seperti pada gambar berikut:
- Agar service dapat langsung berjalan ketika server booting maka bisa menggunakan
perintah sebagai berikut:
1. sudo systemctl enable nodered.service
2. nano /etc/rc.local
3. tambahkan baris "mosquitto -d" diatas exit 0
Artikel ini dibuat pada 2 Desember 2020