All Products
Search
Document Center

Managed Service for Grafana:Bagikan Dasbor Grafana dengan Kunci API

Last Updated:May 16, 2026

Hasilkan tautan dasbor yang dapat dibagikan dan diakses tanpa login, diautentikasi oleh Kunci API.

Informasi latar belakang

  • Untuk mengakses langsung sebuah dasbor di Grafana asli, Anda harus menggunakan fitur Snapshot atau mengaktifkan mode anonim. Fitur pertama membuat salinan statis dari data yang tidak dapat diperbarui seiring waktu, sedangkan yang kedua tidak aman kecuali digunakan bersama fitur daftar putih IP. Managed Service for Grafana mendukung pembuatan tautan dasbor yang dapat dibagikan dan diakses tanpa login dengan menggunakan autentikasi Kunci API.

    • Anda dapat membagikan tautan ini kepada pengguna lain.

    • Pengguna yang memiliki tautan tersebut dapat mengakses dasbor yang ditentukan tanpa perlu login, karena Kunci API menangani proses autentikasi.

  • Pada Grafana 10.0.x dan versi selanjutnya, fitur Kunci API digantikan oleh token akun layanan. Untuk informasi lebih lanjut, lihat Service accounts.

Langkah 1: Konfigurasikan parameter Grafana

  1. Login ke Managed Service for Grafana console. Di panel navigasi sebelah kiri, klik Workspace Management.

  2. Pada halaman Workspace Management, klik ID ruang kerja yang ingin Anda kelola.

  3. Di panel navigasi sebelah kiri, klik Parameter Settings.

  4. Di daftar parameter sebelah kiri, pilih aliyun, lalu klik Modify Parameters.

  5. Atur parameter runtime untuk api_key_share menjadi true, lalu klik Save and Apply.

    image

  6. Opsional: Jika Anda ingin menggunakan tautan tersebut untuk penyematan iframe, sesuaikan parameter berikut.

    • Cross-domain

      Domain harus menggunakan HTTPS. Ubah ketiga parameter security berikut.

      allow_embedding=true
      cookie_samesite=none
      cookie_secure=true

      跨域情况参数修改

    • Same-domain

      Pada bagian security, atur parameter allow_embedding menjadi true untuk mengaktifkan penyematan iframe.

    • Jika iframe disematkan ke instans Grafana lain, sesuaikan parameter panels pada instans Grafana tersebut.

      enable_alpha = true
      disable_sanitize_html = true

Langkah 2: Buat Kunci API

Langkah-langkah untuk membuat Kunci API bervariasi tergantung versi Grafana. Ikuti prosedur sesuai versi Anda.

Jika Anda melakukan upgrade dari 9.0.x ke 10.0.x, Anda masih dapat melihat Kunci API yang dibuat di Grafana 9.0.x pada halaman Administration > api keys. Anda dapat mengklik migrate to service account untuk memigrasikannya ke akun layanan. Setelah migrasi, halaman api keys akan disembunyikan. Kunci API yang sudah ada tetap berfungsi.

Grafana 9.0.x

  1. Login ke Managed Service for Grafana console. Di panel navigasi sebelah kiri, klik Workspace Management.

  2. Pada halaman Workspace Management, temukan ruang kerja yang ingin Anda kelola dan klik URL pada kolom URL untuk membuka Grafana.

    Catatan

    Anda dapat login ke Grafana dengan akun administrator Grafana dan password yang dikonfigurasi saat membuat ruang kerja. Anda juga dapat mengklik Sign in with Alibaba Cloud untuk login ke Grafana menggunakan Akun Alibaba Cloud saat ini.

  3. Di pojok kiri atas halaman utama Grafana, klik ikon image.

  4. Di panel navigasi sebelah kiri Grafana, pilih Configuration > API keys.

    Catatan

    Anda harus memiliki peran Admin untuk mengakses menu ini.

  5. Klik New API key atau Add API key, lalu konfigurasikan parameter berikut.

    Parameter

    Deskripsi

    Key name

    Nama unik untuk Kunci API.

    Role

    Atur role menjadi Viewer.

    Time to live

    Tentukan periode validitas, misalnya 60s (60 detik), 10m (10 menit), atau 1d (1 hari).

  6. Klik Add. Pada kotak dialog yang muncul, simpan Kunci API tersebut.

    Penting

    Kunci API hanya ditampilkan sekali. Pastikan Anda menyimpannya sebelum menutup kotak dialog.

    API Key值

Grafana 10.0.x

  1. Login ke Managed Service for Grafana console. Di panel navigasi sebelah kiri, klik Workspace Management.

  2. Pada halaman Workspace Management, temukan ruang kerja yang ingin Anda kelola dan klik URL pada kolom URL untuk membuka Grafana.

    Catatan

    Anda dapat login ke Grafana dengan akun administrator Grafana dan password yang dikonfigurasi saat membuat ruang kerja. Anda juga dapat mengklik Sign in with Alibaba Cloud untuk login ke Grafana menggunakan Akun Alibaba Cloud saat ini.

  3. Di pojok kiri atas halaman utama Grafana, klik ikon image.

  4. Di panel navigasi sebelah kiri Grafana, pilih Manage > Service Accounts.

    Penting
    • Anda harus memiliki peran Admin untuk mengakses menu ini.

    • Setiap akun layanan mengonsumsi satu slot pengguna.

  5. Klik Add service account, konfigurasikan parameter berikut, lalu klik Create.

    Parameter

    Deskripsi

    Display name

    Nama unik untuk akun layanan.

    Role

    Atur role menjadi Viewer.

  6. Di sisi kanan halaman, klik Add service account token dan konfigurasikan parameter berikut.

    Parameter

    Deskripsi

    Display name

    Nama unik untuk token akun layanan.

    Expiration

    Tentukan periode validitas.

    • No Expiration: Token tidak kedaluwarsa.

    • Set Expiration date: Token berlaku hingga tanggal tertentu.

    Expiration date

    Bidang ini wajib diisi jika Anda memilih Set Expiration date.

  1. Klik Generate token, lalu klik Copy to clipboard and close pada kotak dialog yang muncul.

Penting

Setelah menutup kotak dialog, Anda tidak dapat melihat token tersebut lagi.

Langkah 3: Hasilkan tautan yang dapat dibagikan

Grafana 9.0.x

  1. Di Grafana, buka dasbor yang ingin Anda bagikan.

  2. Klik ikon 分享图标 dan dapatkan tautan berbagi dasbor dari tab Link.

    Grafana大盘分享链接

  3. Tambahkan &aliyun_api_key=<API key value> di akhir tautan. Nilai Kunci API adalah Kunci API yang Anda peroleh di Langkah 2.

    https://grafana-example.grafana.aliyuncs.com/d/TZWea****/test?orgId=1&from=167081684****&to=167083844****&aliyun_api_key=eyJr****WkIwNnN2c0RTSD******
  4. Gunakan tautan yang dapat dibagikan beserta Kunci API untuk mengakses Dasbor Grafana tanpa login.

Grafana 10.0.x

  1. Di Grafana, buka dasbor yang ingin Anda bagikan.

  2. Klik ikon 分享图标 dan dapatkan tautan berbagi dasbor dari tab Link.

  3. Tambahkan &aliyun_api_key=<API key value> di akhir tautan. Nilai Kunci API adalah token akun layanan yang Anda peroleh di Langkah 2.

    https://grafana-example.grafana.aliyuncs.com/d/TZWea****/test?orgId=1&from=167081684****&to=167083844****&aliyun_api_key=eyJrIjoiWkIwNnN2c0RTSD******
  4. Gunakan tautan yang dapat dibagikan beserta token akun layanan untuk mengakses Dasbor Grafana tanpa login.

Langkah 4: Hasilkan tautan berkeamanan tinggi (Opsional)

Anda harus secara berkala mengganti Kunci API pada tautan berbagi yang dihasilkan di Langkah 3: Hasilkan tautan berbagi untuk menghindari risiko keamanan akibat kebocoran Kunci API. Langkah ini menjelaskan cara menghasilkan tautan berbagi berkeamanan tinggi untuk versi 9.0.x dengan Kunci API dan untuk versi 10.0.x dengan token akun layanan.

Sebelum memulai, Anda harus mengatur nilai runtime parameter api_key_share_version menjadi v2.

  1. Login ke Managed Service for Grafana console. Di panel navigasi sebelah kiri, klik Workspace Management.

  2. Pada halaman Workspace Management, klik ID ruang kerja target, lalu di panel navigasi sebelah kiri, klik Parameter Settings.

  3. Atur parameter runtime api_key_share_version menjadi v2, lalu klik Save and Apply.14.jpg

Kunci API (Grafana 9.0.x)

  1. Decode Base64 Kunci API yang Anda peroleh di Langkah 2.

    Base64 adalah metode encoding umum yang digunakan di internet untuk mentransmisikan byte 8-bit. Metode ini merepresentasikan data biner dengan menggunakan 64 karakter yang dapat dicetak.

    • Anda dapat menggunakan tool online seperti base64 untuk mendekode Kunci API.

    • Decode dalam Java.

      package main
      
      import java.util.Base64;
      
      public class Base64Example{
          public static void main(String[] args) {
              String apiKey = "eyJr****REpzZGYzd2JIa0N3ekgyWjlWWmhrSTM5bWdGT2hGSmwiLCJuIjoidGVzdDEiLCJpZCI6MX0=";
              String decodeKey = new String(Base64.getDecoder().decode(apiKey));
              System.out.println(decodeKey);
          }
      }

      Output:

      {"k":"DJsd****HkCwzH2Z9VZhkI39mgFOhFJl","n":"test1","id":1}
    • Decode dalam Go.

      package main
      
      import "fmt"
      import "encoding/base64"
      
      func main() {
      	apiKey := "eyJr****REpzZGYzd2JIa0N3ekgyWjlWWmhrSTM5bWdGT2hGSmwiLCJuIjoidGVzdDEiLCJpZCI6MX0="
      	decodeKey, err := base64.StdEncoding.DecodeString(apiKey)
      	if err != nil {
      		fmt.Println(err.Error())
      		return
      	}
      	fmt.Println(string(decodeKey))
      }

      Output:

      {"k":"DJsd****HkCwzH2Z9VZhkI39mgFOhFJl","n":"test1","id":1}
  2. Enkripsi nilai k dari Kunci API yang telah didekode menggunakan PBKDF2.

    PBKDF2 (Password-Based Key Derivation Function 2) adalah fungsi derivasi kunci berbasis password. Fungsi ini menurunkan kunci enkripsi dari password dan parameter seperti salt serta jumlah iterasi. PBKDF2 umum digunakan untuk penyimpanan password guna mempersulit cracking offline jika database dikompromikan.

    Tabel berikut menjelaskan parameter enkripsi.

    Parameter

    Deskripsi

    salt

    Atur ke nama Kunci API, yaitu nilai n yang telah didekode. Dalam contoh ini, nilainya adalah test1.

    iterations

    Atur ke 10000.

    output len

    Atur ke 50.

    key size

    Atur ke 256.

    Output type

    Atur ke Hex.

    • Anda dapat menggunakan tool online seperti df2 untuk mengenkripsi kunci.

    • Enkripsi dalam Java.

      package main
      
      import javax.crypto.SecretKeyFactory;
      import java.security.GeneralSecurityException;
      import javax.crypto.spec.PBEKeySpec;
      import java.security.spec.KeySpec;
      
      public class PBKDFExapmle {
          public static void main(String[] args) {
              String password = "DJsd****HkCwzH2Z9VZhkI39mgFOhFJl";
              String salt = "test1";
              int iterationCount = 10000;
              int outputLength = 50 * 8;
      
              try {
                  KeySpec spec = new PBEKeySpec(password.toCharArray(), salt.getBytes(), iterationCount, outputLength);
                  SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
                  byte[] keyBytes = skf.generateSecret(spec).getEncoded();
                  System.out.println(bytesToHex(keyBytes));
              } catch (GeneralSecurityException e) {
                  e.printStackTrace();
              }
          }
      
          private static String bytesToHex(byte[] bytes) {
              StringBuilder hexString = new StringBuilder();
              for (byte b : bytes) {
                  String hex = Integer.toHexString(0xff & b);
                  if (hex.length() == 1) {
                      hexString.append('0');
                  }
                  hexString.append(hex);
              }
              return hexString.toString();
          }
      }
      

      Output: PBKDF2 Password

      1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****
    • Enkripsi dalam Go.

      package main
      
      import "fmt"
      import "encoding/hex"
      import "crypto/sha256"
      import "golang.org/x/crypto/pbkdf2"
      
      func main() {
          password:="DJsd****HkCwzH2Z9VZhkI39mgFOhFJl"
          salt="test1"
          newPasswd := pbkdf2.Key([]byte(password), []byte(salt), 10000, 50, sha256.New)
      	encodePassword:= hex.EncodeToString(newPasswd)
      	fmt.Println(encodePassword)
      }

      Output: PBKDF2 Password

      1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****
  3. Buat parameter signature digest MD5 dari informasi yang telah dienkripsi dengan PBKDF2.

    Algoritma digest MD5 (MD5 Message-Digest Algorithm) adalah fungsi hash kriptografi yang banyak digunakan dan menghasilkan nilai hash sepanjang 128-bit (16-byte) untuk memastikan integritas data selama transmisi.

    Konten yang akan dienkripsi: <PBKDF2 Password>+"_"+<Waktu sistem saat ini dalam detik sebagai integer>

    Contoh:

    PBKDF2 Password: 1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****

    Waktu sistem saat ini: 2024-09-20 17:12:13, yaitu 1726823533 dalam detik.

    Informasi lengkap yang akan ditandatangani dengan MD5: 1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****_1726823533

    Anda dapat membuat signature MD5 dengan beberapa cara:

    • Gunakan tool online seperti MD5 untuk melakukan enkripsi.

    • Lakukan penandatanganan MD5 menggunakan kode Java.

      package main;
      
      import java.security.MessageDigest;
      
      
      public class MD5 {
      
          public static void main(String[] args) {
              String pbkdfPassword = "1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****";
              long timeSeconds=System.currentTimeMillis()/1000;
              String key=pbkdfPassword+"_"+timeSeconds;
              System.out.println(MD5.getMD5String(key,"UTF-8"));
          }
      
          
          public static String getMD5String(String str, String charset) {
              try {
                  MessageDigest messageDigest = MessageDigest.getInstance("MD5");
                  messageDigest.reset();
                  messageDigest.update(str.getBytes(charset));
                  byte[] byteArray = messageDigest.digest();
      
                  StringBuffer md5StrBuff = new StringBuffer();
      
                  for (int i = 0; i < byteArray.length; i++) {
                      if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) {
                          md5StrBuff.append("0").append(
                              Integer.toHexString(0xFF & byteArray[i]));
                      } else {
                          md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
                      }
                  }
                  return md5StrBuff.toString().toLowerCase();
              } catch (Exception e) {
                  e.printStackTrace();
                  throw new RuntimeException("MD5 error:"+e.getMessage());
              }
          }
      }
      
    • Lakukan penandatanganan MD5 menggunakan kode Go.

      package main
       
      import (
          "crypto/md5"
          "encoding/hex"
          "fmt"
          "io"
          "time"
          "strconv"
      )
       
      func main() {
          // String to calculate MD5 for
          pbkdfPassword := "1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****"
          timeSeconds:= time.Now().Unix()
          key:=pbkdfPassword+"_"+strconv.FormatInt(timeSeconds, 10)
       
          // Calculate the MD5 of the string
          hash := md5.New()
          io.WriteString(hash, key)
          md5Str := hash.Sum(nil)
       
          // Convert the binary MD5 value to a hexadecimal string
          md5StrHex := hex.EncodeToString(md5Str)
       
          fmt.Println("MD5 of", key, "is", md5StrHex)
      }
  4. Tambahkan parameter ke tautan berdasarkan signature MD5 yang dihasilkan.

    Deskripsi parameter:

    Parameter

    Deskripsi

    Contoh

    aliyun_api_key_sign

    Signature MD5, yang berubah seiring waktu.

    c3bf89b867cc88df72d507edc4d1****

    aliyun_api_key_timestamp

    Timestamp signature. Signature kedaluwarsa jika selisih antara waktu signature dan waktu server melebihi satu menit.

    1726823533

    aliyun_api_key_name

    Nama Kunci API.

    test1

    aliyun_api_key_org_id

    ID organisasi Kunci API.

    1

    aliyun_api_key_expire_seconds

    Durasi dalam detik sesi tetap valid setelah login.

    Bawaan: 3600

    Contoh:

    https://grafana-example.grafana.aliyuncs.com/d/TZWea****/test?orgId=1&from=167081684****&to=167083844****&aliyun_api_key_sign=c3bf89b867cc88df72d507edc4d1****&aliyun_api_key_timestamp=1726823533&aliyun_api_key_name=test1&aliyun_api_key_org_id=1

    Sekarang Anda dapat menghasilkan tautan ke Grafana yang aman dan bebas login secara terprogram tanpa mengekspos Kunci API jangka panjang.

Token akun layanan (Grafana 10.0.x)

  1. Pisahkan token akun layanan dari Langkah 2, lalu enkripsi bagian secret-nya menggunakan PBKDF2.

    PBKDF2 (Password-Based Key Derivation Function 2) adalah fungsi derivasi kunci berbasis password. Fungsi ini menurunkan kunci enkripsi dari password dan parameter seperti salt serta jumlah iterasi. PBKDF2 umum digunakan untuk penyimpanan password guna mempersulit cracking offline jika database dikompromikan.

    Pisahkan token akun layanan berdasarkan karakter underscore (_).

    # Contoh token akun layanan:
    Token:glsa_yV9HAOVCjNKkvKoLMiypOc5T0Oov****_4f5ff3ce
    # Setelah dipisah:
    Prefix:glsa
    Secret:yV9HAOVCjNKkvKoLMiypOc5T0Oov****
    Salt:4f5ff3ce

    Tabel berikut menjelaskan parameter enkripsi.

    Parameter

    Deskripsi

    salt

    Atur ke sufiks token. Dalam contoh ini, nilainya adalah 4f5ff3ce.

    iterations

    Atur ke 10000.

    output len

    Atur ke 50.

    key size

    Atur ke 256.

    Output type

    Atur ke Hex.

    • Anda dapat menggunakan tool online seperti charsetpbkdf2 untuk mengenkripsi kunci.

    • Enkripsi dalam Java.

      package main
      
      import javax.crypto.SecretKeyFactory;
      import java.security.GeneralSecurityException;
      import javax.crypto.spec.PBEKeySpec;
      import java.security.spec.KeySpec;
      
      public class PBKDFExapmle {
          public static void main(String[] args) {
              String password = "yV9H****jNKkvKoLMiypOc5T0OovHXPV";
              String salt = "4f5ff3ce";
              int iterationCount = 10000;
              int outputLength = 50 * 8;
      
              try {
                  KeySpec spec = new PBEKeySpec(password.toCharArray(), salt.getBytes(), iterationCount, outputLength);
                  SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
                  byte[] keyBytes = skf.generateSecret(spec).getEncoded();
                  System.out.println(bytesToHex(keyBytes));
              } catch (GeneralSecurityException e) {
                  e.printStackTrace();
              }
          }
      
          private static String bytesToHex(byte[] bytes) {
              StringBuilder hexString = new StringBuilder();
              for (byte b : bytes) {
                  String hex = Integer.toHexString(0xff & b);
                  if (hex.length() == 1) {
                      hexString.append('0');
                  }
                  hexString.append(hex);
              }
              return hexString.toString();
          }
      }
      

      Output: PBKDF2 Password

      c3cd****971bab928e4ecd6e7a00c74657696ea07d38c43f3bb5dc3190f2285cb80695cf7bf2f25c9b1f34fe1e0f9549****
    • Enkripsi dalam Go.

      package main
      
      import "fmt"
      import "encoding/hex"
      import "crypto/sha256"
      import "golang.org/x/crypto/pbkdf2"
      
      func main() {
          password:="yV9H****jNKkvKoLMiypOc5T0OovHXPV"
          salt:="4f5ff3ce"
          newPasswd := pbkdf2.Key([]byte(password), []byte(salt), 10000, 50, sha256.New)
      	encodePassword:= hex.EncodeToString(newPasswd)
      	fmt.Println(encodePassword)
      }

      Output: PBKDF2 Password

      c3cd****971bab928e4ecd6e7a00c74657696ea07d38c43f3bb5dc3190f2285cb80695cf7bf2f25c9b1f34fe1e0f9549****
  2. Buat parameter signature digest MD5 dari informasi yang telah dienkripsi dengan PBKDF2.

    Algoritma digest MD5 (MD5 Message-Digest Algorithm) adalah fungsi hash kriptografi yang banyak digunakan dan menghasilkan nilai hash sepanjang 128-bit (16-byte) untuk memastikan integritas data selama transmisi.

    Konten yang akan dienkripsi: <PBKDF2 Password>+"_"+<Waktu sistem saat ini dalam detik sebagai integer>

    Contoh:

    PBKDF2 Password: c3cd****971bab928e4ecd6e7a00c74657696ea07d38c43f3bb5dc3190f2285cb80695cf7bf2f25c9b1f34fe1e0f9549****

    Waktu sistem saat ini: 2024-09-20 17:12:13, yaitu 1726823533 dalam detik.

    Informasi lengkap yang akan ditandatangani dengan MD5: c3cd****971bab928e4ecd6e7a00c74657696ea07d38c43f3bb5dc3190f2285cb80695cf7bf2f25c9b1f34fe1e0f9549****_1726823533

    Anda dapat membuat signature MD5 dengan beberapa cara:

    • Gunakan tool online seperti MD5 untuk melakukan enkripsi.

    • Lakukan penandatanganan MD5 menggunakan kode Java.

      package main;
      
      import java.security.MessageDigest;
      
      
      public class MD5 {
      
          public static void main(String[] args) {
              String pbkdfPassword = "c3cd****971bab928e4ecd6e7a00c74657696ea07d38c43f3bb5dc3190f2285cb80695cf7bf2f25c9b1f34fe1e0f9549****";
              long timeSeconds=System.currentTimeMillis()/1000;
              String key=pbkdfPassword+"_"+timeSeconds;
              System.out.println(MD5.getMD5String(key,"UTF-8"));
          }
      
          
          public static String getMD5String(String str, String charset) {
              try {
                  MessageDigest messageDigest = MessageDigest.getInstance("MD5");
                  messageDigest.reset();
                  messageDigest.update(str.getBytes(charset));
                  byte[] byteArray = messageDigest.digest();
      
                  StringBuffer md5StrBuff = new StringBuffer();
      
                  for (int i = 0; i < byteArray.length; i++) {
                      if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) {
                          md5StrBuff.append("0").append(
                              Integer.toHexString(0xFF & byteArray[i]));
                      } else {
                          md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
                      }
                  }
                  return md5StrBuff.toString().toLowerCase();
              } catch (Exception e) {
                  e.printStackTrace();
                  throw new RuntimeException("MD5 error:"+e.getMessage());
              }
          }
      }
      
    • Lakukan penandatanganan MD5 menggunakan kode Go.

      package main
       
      import (
          "crypto/md5"
          "encoding/hex"
          "fmt"
          "io"
          "time"
          "strconv"
      )
       
      func main() {
          // String to calculate MD5 for
          pbkdfPassword := "c3cd****971bab928e4ecd6e7a00c74657696ea07d38c43f3bb5dc3190f2285cb80695cf7bf2f25c9b1f34fe1e0f9549****"
          timeSeconds:= time.Now().Unix()
          key:=pbkdfPassword+"_"+strconv.FormatInt(timeSeconds, 10)
       
          // Calculate the MD5 of the string
          hash := md5.New()
          io.WriteString(hash, key)
          md5Str := hash.Sum(nil)
       
          // Convert the binary MD5 value to a hexadecimal string
          md5StrHex := hex.EncodeToString(md5Str)
       
          fmt.Println("MD5 of", key, "is", md5StrHex)
      }
  3. Tambahkan parameter ke tautan berdasarkan signature MD5 yang dihasilkan.

    Deskripsi parameter:

    Parameter

    Deskripsi

    Contoh

    aliyun_api_key_sign

    Signature MD5, yang berubah seiring waktu.

    c3bf89b867cc88df72d507edc4d1****

    aliyun_api_key_timestamp

    Timestamp signature. Signature kedaluwarsa jika selisih antara waktu signature dan waktu server melebihi satu menit.

    1726823533

    aliyun_api_key_name

    Nama token akun layanan.

    sa-1-******-*******-75c7-41ae-94da-*********

    aliyun_api_key_org_id

    ID organisasi token akun layanan.

    1

    aliyun_api_key_expire_seconds

    Durasi dalam detik sesi tetap valid setelah login.

    Bawaan: 3600

    Contoh:

    https://grafana-example.grafana.aliyuncs.com/d/TZWea****/test?orgId=1&from=167081684****&to=167083844****&aliyun_api_key_sign=c3bf89b867cc88df72d507edc4d1****&aliyun_api_key_timestamp=1726823533&aliyun_api_key_name=sa-1-******-*******-75c7-41ae-94da-*********&aliyun_api_key_org_id=1

    Sekarang Anda dapat menghasilkan tautan ke Grafana yang lebih aman dan bebas password secara terprogram, sehingga membantu mencegah ekspos token akun layanan jangka panjang.

FAQ

  • Mengapa saya melihat error saat mengakses dasbor menggunakan tautan yang dibagikan?访问大盘报错1

    Penyebab kemungkinan: Parameter allow_embedding belum diatur untuk dasbor yang disematkan. Untuk mengonfigurasi parameter allow_embedding, lihat Langkah 1.

  • Mengapa data dasbor gagal ditampilkan?无法显示大盘内容

    Saat Anda menyematkan dasbor, cookie mungkin gagal ditulis karena alasan berikut:

    • Akses cross-domain: Jika domain root berbeda, cookie tidak dapat ditulis dengan konfigurasi bawaan.

    • Parameter cookie_samesite diatur ke none, tetapi parameter cookie_secure diatur ke false.

    • Domain menggunakan HTTP. Parameter cookie_secure tidak berlaku pada HTTP.

    Solusi: Konfigurasi ulang parameter Grafana seperti yang dijelaskan di Langkah 1.

  • Mengapa saya melihat error saat mengakses dasbor menggunakan tautan yang dibagikan?页面报错2

    Penyebab kemungkinan:

    • Versi browser Anda sudah usang.

    • Pengaturan browser menyebabkan masalah pada dasbor yang disematkan.

      Solusi:

      1. Periksa pengaturan cookie Anda dan pastikan cookie diizinkan.

      2. Jika Anda menggunakan Google Chrome, Anda harus mengizinkan semua cookie dalam mode Incognito.

  • Untuk dasbor yang disematkan, apakah saya harus mengatur periode validitas pendek untuk Kunci API dan merotasinya setelah setiap penggunaan, atau membuat kunci bebas login jangka panjang?

    Anda dapat mengonfigurasi periode validitas berdasarkan kebutuhan keamanan Anda. Kami menyarankan agar Anda merotasi kunci setiap tiga bulan. Jika kunci bocor, Anda dapat menghapusnya untuk mencabut aksesnya.

  • Apakah ada batasan jumlah Kunci API?

    Meskipun Grafana tidak membatasi jumlah Kunci API yang dapat Anda buat, UI hanya menampilkan maksimal 100 kunci sekaligus.

  • Apakah Kunci API dihapus secara otomatis setelah kedaluwarsa?

    Tidak. Kunci yang kedaluwarsa tidak dihapus secara otomatis; kunci tersebut tetap ada di sistem tetapi menjadi tidak valid. Untuk melihat dan menghapusnya, klik Include expired keys.显示失效key