All Products
Search
Document Center

Simple Log Service:Integrasikan dengan Grafana

Last Updated:Jun 22, 2026

Gunakan Grafana untuk memvisualisasikan dan menganalisis log Nginx yang dikumpulkan oleh Simple Log Service (SLS).

Penting
  • Untuk mencoba fitur ini secara cepat, Anda dapat menggunakan tautan akses tanpa login: Demo - Grafana.

  • Anda dapat mengekspor dasbor dari Simple Log Service (SLS) dan mengimpornya ke Grafana. Untuk informasi selengkapnya, lihat Ekspor dasbor dan impor ke Grafana.

Prasyarat

  • Kumpulkan log Nginx. Untuk informasi selengkapnya, lihat Gunakan mode konfigurasi Nginx untuk mengumpulkan log teks.

  • Aktifkan dan konfigurasikan indeks. Untuk informasi selengkapnya, lihat Analisis log akses Nginx.

  • Unduh paket proyek plugin sumber data.

    Jalankan perintah berikut untuk mengunduh paket tersebut: wget https://github.com/aliyun/aliyun-log-grafana-datasource-plugin/archive/refs/heads/master.zip.

    Catatan

    Topik ini menggunakan plugin SLS versi 2.36 sebagai contoh.

  • Instal Grafana. Untuk informasi selengkapnya, lihat dokumentasi resmi Grafana.

    Catatan
    • Topik ini menggunakan Grafana 11.4.0 sebagai contoh.

    • Jika Anda menginstal Grafana di mesin lokal, pastikan port 3000 dapat diakses dari browser Anda.

    • Untuk menggunakan grafik pie, jalankan perintah berikut untuk menginstal plugin Pie Chart.

      grafana-cli plugins install grafana-piechart-panel

Kompatibilitas plugin

Tabel berikut menjelaskan kompatibilitas antara Grafana dan plugin SLS.

Versi Grafana

Versi plugin SLS

≥8.0.0

2.x

<8.0.0

1.0

Catatan penggunaan

Jika Anda mengonfigurasi pengalihan berbasis STS, kondisi keamanan berikut harus dipenuhi:

  • Pengguna yang terkait dengan kunci akses sumber data harus memiliki kebijakan akses AliyunRAMReadOnlyAccess dan AliyunSTSAssumeRoleAccess, izin untuk memanggil API CreateTicket, serta izin yang diperlukan untuk SLS.

  • Peran RAM yang ditentukan dalam bidang RoleArn sumber data hanya boleh memiliki kebijakan akses AliyunLogReadOnlyAccess.

  • Untuk informasi selengkapnya tentang cara kerja ini, lihat Sematkan dan bagikan halaman konsol.

Jika Anda mengonfigurasi akses tanpa login, pastikan sumber data tidak digunakan dalam dasbor Grafana yang dibagikan secara publik. Akses publik dapat meningkatkan biaya traffic dan membocorkan konten log.

Catatan

Untuk informasi selengkapnya tentang kebijakan akses sistem, lihat Kebijakan akses sistem untuk Simple Log Service.

Langkah 1: Instal plugin SLS

  1. Jalankan perintah berikut untuk mengekstrak paket plugin ke direktori plugin Grafana.

    • Untuk Grafana yang diinstal dari repositori YUM atau paket RPM:

      unzip aliyun-log-grafana-datasource-plugin-master.zip -d /var/lib/grafana/plugins
    • Untuk Grafana yang diinstal dari file .tar.gz:

      Dalam perintah ini, {PATH_TO} adalah path instalasi Grafana.

      unzip aliyun-log-grafana-datasource-plugin-master.zip -d {PATH_TO}/grafana-11.4.0/data/plugins
  2. Ubah file konfigurasi Grafana.

    1. Buka file konfigurasi.

      • Untuk Grafana yang diinstal dari repositori YUM atau paket RPM: /etc/grafana/grafana.ini

      • Untuk Grafana yang diinstal dari file .tar.gz: {PATH_TO}/grafana-11.4.0/conf/defaults.ini

    2. Pada bagian [plugins] file konfigurasi, atur parameter allow_loading_unsigned_plugins.

      allow_loading_unsigned_plugins = aliyun-log-service-datasource
  3. Restart Grafana.

    1. Gunakan perintah kill untuk menghentikan proses Grafana.

    2. Jalankan salah satu perintah berikut untuk memulai Grafana.

      • Untuk Grafana yang diinstal dari repositori YUM atau paket RPM:

        systemctl restart grafana-server
      • Untuk Grafana yang diinstal dari file .tar.gz:

        ./bin/grafana-server web

Langkah 2: Tambahkan sumber data

  1. Login ke Grafana.

  2. Di panel navigasi sebelah kiri, pilih Connections > Data Sources.

  3. Pada tab Data Sources, klik Add data source.

  4. Pada halaman Add data source, cari dan klik log-service-datasource.

  5. Pada halaman aliyun-log-service-datasource, konfigurasikan pengaturan berikut.

    • Tabel berikut menjelaskan parameter yang diperlukan.

      Parameter

      Deskripsi

      Endpoint

      Titik akhir untuk Project, misalnya http://cn-qingdao.log.aliyuncs.com. Gunakan titik akhir aktual Anda. Untuk informasi selengkapnya, lihat Endpoints.

      Project

      Nama Project SLS.

      AccessKeyID

      ID AccessKey digunakan untuk mengidentifikasi pengguna. Untuk informasi selengkapnya, lihat Pasangan kunci akses.

      Kami menyarankan agar Anda hanya memberikan izin yang diperlukan kepada pengguna RAM berdasarkan prinsip hak istimewa minimal. Untuk informasi selengkapnya tentang cara memberikan izin kepada pengguna RAM, lihat Buat pengguna RAM dan berikan izin dan Contoh kebijakan kustom RAM.

      AccessKeySecret

      Rahasia AccessKey digunakan untuk mengenkripsi dan memverifikasi string signature. Rahasia AccessKey harus dirahasiakan.

    • Tabel berikut menjelaskan parameter opsional.

      Parameter

      Deskripsi

      Name

      Nama sumber data. Nilai default-nya adalah aliyun-log-service-datasource.

      Default

      Sakelar ini diaktifkan secara default.

      Default LogStore

      Jika Anda mengabaikan Logstore, pastikan kunci akses Anda memiliki izin ListProject untuk Project saat ini.

      RoleArn

      Diperlukan untuk pengalihan berbasis STS. Tentukan ARN dari peran RAM.

      HTTP headers

      Header kustom didukung dan hanya berlaku ketika jenis sumber data adalah MetricStore(PromQL). Untuk detail konfigurasi, lihat pengaturan FormValue di Percepat kueri. Daftar berikut menjelaskan bidang Headers:

      • x-sls-parallel-enable: Menentukan apakah akan mengaktifkan komputasi konkuren. Secara default dinonaktifkan.

      • x-sls-parallel-time-piece-interval: Unit waktu untuk sharding berdasarkan rentang waktu, dalam detik. Rentang yang didukung adalah [3600, 86400*30]. Nilai default-nya adalah 21600 (6 jam).

      • x-sls-parallel-time-piece-count: Jumlah shard saat melakukan sharding berdasarkan rentang waktu. Rentang yang didukung adalah 1 hingga 16. Nilai default-nya adalah 8.

      • x-sls-parallel-count: Konkurensi global. Rentang yang didukung adalah 2 hingga 64. Nilai default-nya adalah 8.

      • x-sls-parallel-count-per-host: Konkurensi per host. Rentang yang didukung adalah 1 hingga 8. Nilai default-nya adalah 2.

      • x-sls-global-cache-enable: Menentukan apakah akan mengaktifkan cache global. Secara default dinonaktifkan.

      Region

      Mendukung signature v4 untuk keamanan yang lebih baik.

  6. Setelah menyelesaikan konfigurasi, klik Save & test.

Langkah 3: Tambahkan dasbor

Untuk menambahkan dasbor ke Grafana:

  1. Di panel navigasi sebelah kiri, klik Dashboards.

  2. Pada panel Dashboards, klik + Created dashboard. Lalu, klik + Add visualization.

  3. Pada halaman Select data source, pilih aliyun-log-service-datasource sebagai sumber data.

  4. Tambahkan panel visualisasi.

    Daftar berikut menjelaskan pengaturannya:

    • Data Source Type: Tersedia empat jenis, berdasarkan sintaks (SQL dan PromQL) dan jenis penyimpanan: ALL(SQL), Logstore(SQL), MetricStore(SQL), dan MetricStore(PromQL).

      • Logstore mendukung SQL untuk kueri dan analisis.

      • Metricstore mendukung SQL dan PromQL untuk kueri dan analisis.

      • MetricStore(PromQL) mendukung penambahan header kustom pada halaman konfigurasi sumber data.

    • Logstore list: Pilih nama Logstore yang akan dikueri.

    • Query: Masukkan pernyataan kueri, contohnya:

      * | select count(*) as c, __time__-__time__%60 as t group by t
    • ycol: null

    • xcol: Pilih TimeSeries / Custom dan masukkan t.

    • goto SLS: Pengalihan satu klik ke konsol SLS.

      Pada halaman Explore dan dasbor, Anda dapat mengklik goto SLS untuk langsung menuju konsol SLS guna perbandingan. Anda juga dapat menggunakan fitur yang lebih kuat dan kemampuan pencarian log yang fleksibel dari konsol SLS. Saat dialihkan, informasi kueri dan waktu ikut dibawa, sehingga tidak perlu dimasukkan manual.

      Metode pengalihan ini membawa Anda langsung ke konsol SLS dan tidak memerlukan konfigurasi tambahan. Namun, Anda harus sudah login ke konsol SLS di browser Anda; jika tidak, Anda akan dialihkan ke halaman login.

      Catatan

      Fitur ini tersedia di SLS Grafana Plugin versi 2.30 dan yang lebih baru.

  5. Pada Panel options di sebelah kanan, masukkan Judul, lalu klik Save dashboard di pojok kanan atas. Pada kotak dialog yang muncul, klik Save.

Konfigurasikan variabel templat

Variabel templat di Grafana memungkinkan Anda mengubah data yang ditampilkan dalam grafik secara dinamis.

Konfigurasikan variabel interval waktu

  1. Di pojok kanan atas halaman New dashboard, klik Edit > Settings.

  2. Klik Variables.

  3. Klik New variable.

  4. Konfigurasikan variabel templat dengan parameter berikut, lalu klik Add.

    Tabel berikut menjelaskan parameter utama.

    Parameter

    Deskripsi

    Name

    Nama variabel, misalnya myinterval. Variabel ini digunakan dalam konfigurasi Anda dan harus dimasukkan sebagai $$myinterval dalam kondisi kueri.

    Type

    Pilih Interval.

    Label

    Atur ke time interval.

    Values

    Atur ke 1m,10m,30m,1h,6h,12h,1d,7d,14d,30d.

    Auto Option

    Aktifkan sakelar Auto Option dan biarkan parameter lain tetap pada pengaturan default-nya.

  5. Hasil. Setelah dikonfigurasi, daftar drop-down time interval muncul di bagian atas dasbor, memungkinkan Anda memilih interval seperti Auto, 1m, 10m, 30m, 1h, 6h, 12h, atau 1d.

Konfigurasikan variabel nama domain

  1. Pada halaman Variables, klik New.

  2. Konfigurasikan variabel templat dengan parameter berikut, lalu klik Add.

    Parameter

    Deskripsi

    Name

    Nama variabel, misalnya hostname. Ini adalah variabel yang Anda gunakan dalam konfigurasi, dan jika nama variabelnya adalah hostname, Anda harus menentukan $hostname dalam kondisi kueri.

    Type

    Pilih Custom.

    Label

    Masukkan nama domain.

    Custom Options

    Jika Anda mengatur parameter menjadi *,example.com,example.org,example.net, Anda dapat melihat status akses semua nama domain. Anda juga dapat melihat status akses example.com, example.org, atau example.net secara terpisah.

    Selection Options

    Biarkan pengaturan default.

  3. Hasil. Setelah dikonfigurasi, daftar drop-down nama domain muncul di bagian atas dasbor, memungkinkan Anda memilih * (semua domain), example.com, example.org, atau example.net.

Konfigurasikan variabel daftar Logstore

  1. Pada halaman pengaturan Variables, pilih tipe Custom. Bidang name berfungsi sebagai pengenal unik dan harus mengandung string 'logstore', tidak peka huruf besar/kecil. Di Custom Options, masukkan nilai variabel, dipisahkan dengan koma.

    image.webp

  2. Di editor panel, ubah opsi Logstore list menjadi variabel kustom Anda, pilih nilai, dan refresh dasbor untuk melihat hasilnya.image.webp

Konfigurasi grafik

Panel Stat dan Gauge

Format xcol: stat.

Format ycol: <numeric_column>, <numeric_column>.

Penting

Jika Anda memberikan kolom non-numerik di tempat yang memerlukan kolom numerik, nilainya diatur menjadi 0.

  • Contoh 1

    Jenis panel: Stat

    xcol: stat

    ycol: PV, deltaPercent

    query:

    * | select diff[1] as "PV", round((diff[1] - diff[2])/diff[2] * 100, 2) as deltaPercent from (select compare("PV", 86400) as diff from (select count(*) as "PV" from log))

    Hasil kueri ditampilkan dalam panel Stat, menunjukkan dua metrik numerik: PV dan deltaPercent. Nilai positif ditampilkan dalam warna hijau dan nilai negatif dalam warna merah, dengan grafik garis tren mini di bawah setiap metrik.

  • Contoh 2

    Jenis panel: Gauge

    xcol: stat

    ycol: c

    query:

    * | select count(distinct labels['hostname']) as c from (select promql_query('${metricName}{cluster =~ "${cluster}"}') from metrics ) limit 100000

    Hasil kueri ditampilkan dalam panel Gauge. Nilainya ditunjukkan sebagai indikator busur pada gauge, dengan busur berubah dari hijau ke merah untuk merepresentasikan rentang nilai.

Grafik pie

Format xcol: pie.

Format ycol: <grouping_column>, <numeric_column>.

  • Contoh 1

    Jenis panel: Pie Chart

    xcol: pie

    ycol: request_method, c

    query:

    request_method: "$method" | select count(*) as c, request_method group by request_method

    Hasil kueri ditampilkan sebagai grafik pie yang menunjukkan distribusi berbagai metode permintaan HTTP, seperti GET, POST, PUT, dan DELETE.

  • Contoh 2

    Jenis panel: Pie Chart

    xcol: pie

    ycol: http_user_agent, pv

    query:

    * | select count(1) as pv, case when http_user_agent like '%Chrome%' then 'Chrome' when http_user_agent like '%Firefox%' then 'Firefox' when http_user_agent like '%Safari%' then 'Safari' else 'unKnown' end as http_user_agent group by case when http_user_agent like '%Chrome%' then 'Chrome' when http_user_agent like '%Firefox%' then 'Firefox' when http_user_agent like '%Safari%' then 'Safari' else 'unKnown' end order by pv desc limit 10

    Hasil kueri ditampilkan sebagai grafik pie yang menunjukkan persentase traffic dari browser berbeda: Chrome, Firefox, Safari, dan unKnown.

  • Kasus penggunaan lain

    Format untuk panel Stat juga dapat diterapkan pada grafik pie untuk menghasilkan visualisasi yang valid.

    Jenis panel: Pie Chart

    xcol: stat

    ycol: hostNameNum, ipNum

    query:

    * | select count(distinct labels['hostname']) as hostNameNum, count(distinct labels['ip']) + 20 as ipNum from (select promql_query('${metricName}{cluster =~ ".*"}') from metrics ) limit 100000

    Hasil kueri ditampilkan sebagai grafik pie yang menunjukkan proporsi metrik hostNameNum dan ipNum.

Deret waktu

Format xcol: <time_column>.

Format ycol: <numeric_column> [, <numeric_column>, ...] (sintaks Logstore) atau <labels / grouping_column>#:#<numeric_column> (sintaks Metricstore atau sintaks agregasi log).

  • Contoh 1

    Jenis panel: Time series

    xcol: time

    ycol: pv, uv

    query:

    * | select __time__ - __time__ % $${myinterval} as time, COUNT(*)/ 100 as pv, approx_distinct(remote_addr)/ 60 as uv GROUP BY time order by time limit 2000

    Hasil kueri ditampilkan sebagai grafik garis deret waktu yang menunjukkan tren dua seri, pv dan uv, seiring waktu.

  • Contoh 2

    Jenis panel: Time series

    xcol: time

    ycol: labels#:#value

    query:

    * | select time, * from (select promql_query_range('${metricName}') from metrics) limit 1000

    Hasil kueri ditampilkan sebagai grafik garis deret waktu, di mana setiap seri secara otomatis diberi nama dan dikelompokkan berdasarkan label-nya.

  • Contoh 3

    Anda juga dapat menggunakan SQL untuk menyesuaikan tampilan label deret waktu.

    Jenis panel: Time series

    xcol: time

    ycol: customLabelsExtract#:#value

    query:

    * | select concat(labels['ip'], ' -> ', labels['cluster']) as customLabelsExtract, value from (select promql_query_range('${metricName}') from metrics) limit 1000

    Hasil kueri ditampilkan sebagai grafik garis deret waktu, dengan nama seri ditentukan oleh bidang SQL kustom customLabelsExtract (format: IP -> cluster).

Grafik batang

Format xcol: bar.

Format ycol: <grouping_column>, <numeric_column> [, <numeric_column>, ...].

  • Contoh 1

    Jenis panel: Bar chart

    xcol: bar

    ycol: host, pv, pv2, uv

    query:

    * | select host, COUNT(*)+10 as pv, COUNT(*)+20 as pv2, approx_distinct(remote_addr) as uv GROUP BY host ORDER BY uv desc LIMIT 5

    Hasil kueri ditampilkan sebagai grafik batang horizontal yang membandingkan metrik pv, pv2, dan uv untuk setiap host.

Tabel

Panel Tabel mendukung pengurutan berdasarkan waktu dengan presisi nanodetik jika ada bidang nanodetik.

Mendukung modifikasi jumlah totalLogs. Default-nya adalah 100, minimum 1, dan maksimum 5000. Ini hanya berlaku untuk pernyataan kueri, bukan pernyataan analisis.

Sintaks xcol: <empty>.

Format ycol: Biarkan bidang ini kosong atau tentukan <display_column> [, <display_column>, ...].

  • Contoh 1

    Jenis panel: Table

    xcol: Table/Log

    ycol: <empty>

    query:

    * | select __time__ - __time__ % 60 as time, COUNT(*)/ 100 as pv, approx_distinct(remote_addr)/ 60 as uv GROUP BY time order by time limit 2000

    Hasil kueri ditampilkan dalam tabel dengan kolom untuk time, pv, dan uv.

Log

Sintaks xcol: <empty>.

Sintaks ycol: <empty>.

Contoh

Jenis panel: Logs

xcol: <Empty>

ycol: <Empty>

query:

host: www.vt.mock.com

Hasil kueri ditampilkan dalam panel Logs yang menunjukkan entri log mentah, dengan setiap entri menampilkan pasangan kunci-nilai untuk bidang-bidangnya.

Jejak

Jenis panel: Traces

xcol: trace

ycol: <empty>

query:

traceID: "f88271003ab7d29ffee1eb8b68c58237"

Hasil kueri ditampilkan dalam panel Traces yang menunjukkan informasi jejak. Sisi kiri mencantumkan Service & Operation, dan sisi kanan menampilkan timeline diagram Gantt untuk setiap rentang, menggambarkan hierarki dan durasi jejak.

Catatan

Contoh ini menggunakan Logstore yang berisi data jejak. Anda harus mengaktifkan layanan Trace di SLS. SLS mendukung ingestion data jejak OpenTelemetry secara native dan juga mendukung ingestion data jejak dari sistem pelacakan lainnya. Untuk informasi selengkapnya, lihat Ikhtisar ingestion data jejak.

Di Grafana 10.0 dan yang lebih baru, pemfilteran span untuk data jejak didukung. Jika Anda menggunakan versi Grafana yang lebih lama, Anda juga dapat menentukan filter span kustom dalam kueri Anda. Contohnya:

traceID: "f88271003ab7d29ffee1eb8b68c58237" and resource.deployment.environment : "dev" and service : "web_request" and duration > 10

GeoMap

Format xcol: map.

Format ycol: <country_column>, <geolocation_column>, <numeric_column>.

Contoh

Jenis panel: GeoMap

xcol: map

ycol: country, geo, pv

query:

* | select count(1) as pv ,geohash(ip_to_geo(arbitrary(remote_addr))) as geo,ip_to_country(remote_addr) as country from log group by country having geo <>'' limit 1000

Hasil kueri ditampilkan pada GeoMap, menunjukkan distribusi traffic di berbagai wilayah pada peta dunia. Ukuran lingkaran menunjukkan volume traffic.

FAQ

  • Di mana log Grafana disimpan?

    Log Grafana disimpan di direktori berikut:

    • macOS: /usr/local/var/log/grafana

    • Linux: /var/log/grafana

  • Apa yang harus saya lakukan jika muncul pesan aliyun-log-plugin_linux_amd64: permission denied di log?

    Berikan izin eksekusi ke direktori dist/aliyun-log-plugin_linux_amd64 di direktori plugin.