Sunday, September 18, 2016

Integrasi Monit dan Slack

Setelah saya berhasil memantau aplikasi Java menggunakan Monit, saya ingin mencoba mengintegrasikan alert dari monit dengan Slack. Apa itu Slack ?

Slack

Menurut saya Slack merupakan wadah chatting yang kekinian, sedang digandrungi di kalangan IT, karena memiliki fitur integrasi dengan banyak platform. Salah satu contohnya yang ada di blog kali ini. :)

Integrasi Monit dan Slack

Sekilas tentang Monit dan yang sudah saya terapkan bisa dibaca disini.
Langsung saja, berikut langkah-langkah untuk mengintegrasikan Monit dengan Slack :
  1. Pastikan sudah memiliki akun di slack.com, bila belum ada buat terlebih dahulu.
  2. Login ke xxx.slack.com, xxx -> nama tim anda
  3. Buka menu Apps & Integrations
  4. Cari Incoming Webhooks, dan tekan Add Configuration
  5. Pilih atau buat tujuan channel yang akan menerima pemberitahuan dari Monit, dan tekan Save Settings
  6. Kemudian, buat file slack_notifications.sh yang isinya :
  7. #!/bin/sh
    /usr/bin/curl \
        -X POST \
        -s \
        --data-urlencode "payload={ \
            \"channel\": \"#channel\", \
            \"username\": \"nama user\", \
            \"pretext\": \"nama app | $MONIT_DATE\", \
            \"color\": \"danger\", \
            \"icon_emoji\": \":ghost:\", \
            \"text\": \"$MONIT_SERVICE - $MONIT_DESCRIPTION\" \
        }" \
        https://hooks.slack.com/services/XXXYYYZZZ/AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHII
    isi https://hooks.slack.com/services/XXXYYYZZZ/AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHII dengan isian dari Webhook URL.
  8. Kemudian ganti event alert dari blog ini dengan exec "/etc/monit/slack_notifications.sh", jangan lupa men-set executable untuk script tersebut.
  9. if cpu > 50% for 5 cycles then exec "/etc/monit/slack_notifications.sh"
    if totalmem > 256 MB for 5 cycles then exec "/etc/monit/slack_notifications.sh"
    if children > 2 then exec "/etc/monit/slack_notifications.sh"
  10. Restart Monit untuk mengaktifkan konfigurasi tersebut

Berikut contoh notifikasi yang diterima pada Slack channel :

Kesimpulan

Dengan adanya integrasi ini, kami bisa lebih cepat mendapatkan informasi keadaan terkini dari server dan dapat segera mengambil tindakan yang diperlukan. Terima kasih dan Semoga bermanfaat! :)

No comments:

Post a Comment