Skip to main content

Notifikasi Grafana ke Discord

1. Persiapan Webhook Discord

  • Webhook adalah cara untuk mengirim pesan otomatis dari Grafana ke channel Discord.
  • Discord akan menerima notifikasi ketika ada alert dari Grafana.

Untuk membuat Webhook di Discord, ikuti langkah berikut:

Buka Discord dan ikuti langkah ini:
1. Klik kanan pada channel yang dituju
2. Pilih "Edit Channel"
3. Pilih "Integrations"
4. Klik "Create Webhook"
5. Beri nama webhook (contoh: "Grafana Alerts")
6. Salin URL webhook yang diberikan

2. Konfigurasi Contact Point di Grafana

  • Buka menu Alerting di sidebar Grafana
  • Pilih Contact points
  • Klik Add contact point dan isi:
    Name: Discord Alerts
    Integration: Discord
    Webhook URL: [URL webhook Discord yang sudah disalin]
    Message: {{ .CommonAnnotations.description }}
  • Klik Test untuk memastikan notifikasi berfungsi
  • Save contact point untuk menyimpan konfigurasi

3. Membuat Alert Rule

Alert Rule menentukan kapan notifikasi akan dikirim ke Discord.

# Contoh Alert Rule untuk CPU Usage
- alert: High CPU Usage
expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
description: "CPU usage is {{ $value }}% on {{ $labels.instance }}"

4. Konfigurasi Notification Policy

  • Di menu Alerting, pilih Notification policies
  • Buat atau edit policy yang ada:
    # Contoh konfigurasi policy
    - name: Default policy
    contact_point: Discord Alerts
    group_by: ['alertname']
    group_wait: 30s
    group_interval: 5m
    repeat_interval: 4h

5. Pengujian Sistem Notifikasi

  • Bisa membuat load tinggi di server:

    # Generate load CPU tinggi untuk testing
    stress-ng --cpu 8 --timeout 60s
  • Atau bisa membuat load tinggi di server menggunakan K6S

6. Kustomisasi Pesan Discord

Anda bisa mengkustomisasi format pesan yang dikirim ke Discord:

Message: |
**Alert:** {{ .CommonLabels.alertname }}
**Severity:** {{ .CommonLabels.severity }}
**Details:** {{ .CommonAnnotations.description }}
**Grafana:** [View in Grafana]({{ .ExternalURL }})

Dengan konfigurasi ini, tim Anda akan menerima notifikasi di Discord setiap kali ada kejadian penting di server yang terdeteksi oleh Grafana.