Pengetahuan

Notifikasi Monitoring Alibaba Cloud dengan Slack

Monitoring merupakan hal yang paling penting agar hidup seorang pekerja IT khususnya bagian operasional bisa tenang. Monitoring tidak hanya berarti memantau bagan-bagan statistik dari dasbor saja. Membuat notifikasi ketika tidak sesuai agar mendapatkan perhatian ekstra juga bagian dari monitoring. Standarnya notifikasi untuk monitoring adalah via surel atau sms, namun untuk artikel kali ini saya akan menggunakan aplikasi perpesanan slack dan terintegrasi dengan Monitoring dari Alibaba Cloud.

Slack merupakan aplikasi perpesanan layaknya Telegram dan Whatsapp. Namun ada sedikit pembeda antara slack dengan aplikasi perpesanan lainnya yaitu slack bisa dintegrasikan dengan pipeline untuk proses CI/CD. Saat ini tampanya slack menjadi aplikasi perpesanan paling favorit karena fiturnya lebih melimpah karena ketika aplikasi ini dibuat memang ditujukan untuk tim yang berkolaborasi. Saya sendiri saat ini menggunakan slack pada keseharian rutinitas sebagai pekerja IT.

Membuat Slack App

Langkah pertama adalah kita membuat Slack App, yaitu semacam aplikasi mini pada layanan slack yang nantinya aplikasi inilah yang menghubungkan slack dengan Alibaba Cloud melalui API. Kalau teman-teman sudah pengalaman dengan app facebook atau twitter maka harusnya tahu cara kerja dari aplikasi ini.

1. Silahkan mengakses halaman https://api.slack.com/slack-apps lalu klik Create a Slack App.

Membuat Slack App
Membuat Slack App

2. Berikan nama pada aplikasi ini, fungsinya agar tidak bingung jika nantinya akan membuat banyak aplikasi untuk keperluan lain. Untuk dropbox Development Slack Workspace adalah lokasi aplikasi ini akan bekerja.

Memberikan Nama dan Lokasi Aplikasi
Memberikan Nama dan Lokasi Aplikasi

3. Karena slack akan berkolaborasi dengan layanan luar maka kita harus menambahkan fungsi tambahan. Caranya pilih Incoming Webhooks pada Add features and functionally.

4. Aktifkan Incoming Webhooks dengan menggeser tombol toogle.

Mengaktifkan Incoming Webhooks
Mengaktifkan Incoming Webhooks

5. Masih pada halaman yang sama kita akan memasukkan webhook ke workspace dengan klik tombol Add New Webhook to WorkspaceLalu pilihlah ke mana aplikasi yang kita buat akan mengirimkan pesan, pilihannya adalah kanal biasa, langsung ke pengguna lain, atau kanal pribadi. Jika sudah klik tombol Install.

Memilih tujuan pesan aplikasi Slack
Memilih tujuan pesan aplikasi Slack

6. Terakhir pastikan kita telah memilih URL dari webhook yang baru saja dipasang. Jika sudah ada berarti untuk tahap pembuatan aplikasi Slack kita telah selesai.

Alamat URL Webhook yang telah terpasang
Alamat URL Webhook yang telah terpasang

Membuat Instances Function Compute

Selanjutnya kita akan membuat sebuah instances Alibaba Cloud yang berfungsi sebagai pengirim pesan ke Slack. Tipe instances yang dibuat adalah Function Compute adalah fitur serverless dari Alibaba Cloud di mana kita hanya perlu memasukkan skrip kode dari aplikasi yang kita buat. Jika ingin tahu lebih lanjut tentang Function Compute dan Serverless silahkan cari sendiri saja yaa 😅.

1. Masuk ke konsol Alibaba Cloud dan pilih produk Function Compute, lalu tambahkan layanan dengan klik tombol + di sidebar sebelah kiri.

Menambahkan services pada function compute
Menambahkan services pada function compute

2. Masukkan detil dari service yang akan kita buat.

Memasukkan detil dari services yang dibuat pada Function Compute
Memasukkan detil dari services yang dibuat pada Function Compute

3. Klik tombol + pada sidebar kiri untuk membuat Function lalu pilih Empty Function.

Menambahkan Function
Menambahkan Function

4.Karena aplikasi ini bergerak sendiri maka pada konfigurasi Triggers tipe yang digunakan adalah No Trigger.

Konfigurasi Trigger
Konfigurasi Trigger

5. Masukkan informasi detil dari Function yang sedang kita buat. Teman-teman bisa melihat gambar di bawah ini. Sedikit catatan pada kolom Runtime kita memilih python3 karena aplikasi yang kita jalankan berbasis bahasa pemrograman python.

Memasukkan informasi detil dari function yang dibuat
Memasukkan informasi detil dari function yang dibuat

6. Pada bagian Code Configuration masukkan kode di bawah ini dengan catatan pada parameter end_url dimasukkan dengan url dari Webhook Slack yang sebelumnya telah didapatkan.

# -*- coding: utf-8 -*-
import logging
import requests
import json

def handler(event, context):
logger = logging.getLogger()
#logger.info('hello world')
evt = json.loads(event)
level = evt.get("level")
name = evt.get("name")
end_url = 'https://hooks.slack.com/services/PASTIKAN/URL_WEBHOOK_BENAR'
headers = {'Content-type': 'application/json'}
msg = "event: {} [{}]".format(name,level)
payload = {'text': msg}
logger.info("level : "+level+"\nname : "+name)
r = requests.post(end_url,headers=headers, data=json.dumps(payload))

return 'ok'

7. Pada bagian Runtime Environment silahkan untuk mengubah ukuran Memory menjadi 128MB, karena menurut referensi saya 128MB sudah cukup untuk aplikasi yang dibuat saat ini.

Mengubah ukuran memori
Mengubah ukuran memori

8. Pada bagian selanjutnya skip saja dan terakhir klik tombol Create untuk membuat function.

Menghubungkan CloudMonitor dengan Function Compute

Pada dasarnya Alibaba Cloud telah memiliki produk monitoring yang bernama Cloud Monitor. Sekarang tugas terakhir kita adalah menghubungkan antara produk CloudMonitor dengan Function Compute. Secara ringkas jadinya ketika ada parameter tertentu di CloudMonitor maka Function Compute yang telah kita buat akan dieksekusi.

1. Pada konsol pergilah ke CloudMonitor dan di sidebar kiri pilih Event Monitoring > Alarm Rules > Custom Event.

Membuat alert
Membuat alert

2. Pada pembuatan Event Alert ini dibagi ke beberapa bagian. Pada bagian event alert untuk menentukan parameter apa yang akan dijadikan acuan sebagai alert. Sebagai contoh saya membuat jika ada instances ECS yang melakukan reboot maka akan ada pemberitahuan.

Pengaturan event alert
Pengaturan event alert

3. Di bagian Alarm Type yang merupakan tindak lanjut dari parameter sebelumnya, pilih Function Service dan masukkan function yang tadi telah kita buat.

4. Sekarang kita bisa menguji dengan memilih test lalu pilih Event Name yang akan diuji.

Menguji dengan melakukan sandbox
Menguji dengan melakukan sandbox

5. Periksa pada aplikasi Slack baik melalui desktop ataupun aplikasi telepon selular, seharusnya pada kanal #General ada pesan yang dikirimkan oleh aplikasi yang kita buat dari tadi.

Notifikasi pada aplikasi Slack
Notifikasi pada aplikasi Slack
Sumber
Sending Cloud Monitor Events to Slack through Function Compute
Topik

Related Articles

Close