All Products
Search
Document Center

Simple Log Service:Hubungkan Simple Log Service ke Grafana

Last Updated:Dec 17, 2025

Topik ini menjelaskan cara menggunakan Grafana untuk menampilkan dan menganalisis log NGINX yang dikumpulkan oleh Simple Log Service (SLS).

Penting

SLS mendukung ekspor dasbor dan impor ke Grafana. Untuk informasi selengkapnya, lihat Ekspor dasbor Grafana dan impor dasbor tersebut ke SLS.

Prasyarat

  • Log NGINX telah dikumpulkan. Untuk informasi selengkapnya, lihat Kumpulkan log teks dalam mode konfigurasi NGINX.

  • Fitur pengindeksan diaktifkan dan indeks telah dibuat. Untuk informasi selengkapnya, lihat Kumpulkan dan analisis log akses NGINX.

  • Paket perangkat lunak aliyun-log-grafana-datasource-plugin telah diunduh. Untuk memudahkan pemahaman, plugin ini juga disebut sebagai plugin SLS dalam topik ini.

    Perintah unduh adalah wget https://github.com/aliyun/aliyun-log-grafana-datasource-plugin/archive/refs/heads/master.zip.

    Catatan

    Dalam topik ini, digunakan aliyun-log-grafana-datasource-plugin V2.36.

  • Grafana telah diinstal. Untuk informasi selengkapnya, lihat dokumentasi Grafana.

    Catatan
    • Dalam topik ini, digunakan Grafana 11.4.0.

    • Jika Anda menginstal Grafana di komputer Anda, Anda harus mengaktifkan port 3000 di pengaturan browser Anda.

    • Jika Anda ingin menggunakan grafik pie, Anda harus menjalankan perintah berikut untuk menginstal plugin Pie Chart:

      grafana-cli plugins install grafana-piechart-panel

Kompatibilitas versi antara Grafana dan aliyun-log-grafana-datasource-plugin

Tabel berikut menjelaskan kompatibilitas versi antara Grafana dan aliyun-log-grafana-datasource-plugin.

Grafana

aliyun-log-grafana-datasource-plugin

8.0.0 dan yang lebih baru

V2.x

Lebih lama dari 8.0.0

V1.0

Catatan penggunaan

Jika Anda mengonfigurasi pengalihan menggunakan Security Token Service (STS), dua kondisi berikut harus dipenuhi demi alasan keamanan:

  • Pengguna yang terkait dengan AccessKey dari sumber data harus memiliki kebijakan akses AliyunRAMReadOnlyAccess dan AliyunSTSAssumeRoleAccess. Pengguna ini juga harus memiliki izin untuk memanggil API CreateTicket serta izin terkait untuk SLS.

  • Peran yang ditentukan dalam roleArn sumber data hanya boleh memiliki kebijakan akses AliyunLogReadOnlyAccess yang dilampirkan.

  • Untuk informasi selengkapnya tentang prinsip-prinsip tersebut, lihat Sematkan halaman konsol dan bagikan data log.

Jika Anda mengonfigurasi akses tanpa login, pastikan apakah sumber data digunakan untuk dasbor Grafana yang dibagikan secara publik. Akses publik ke dasbor tersebut dapat meningkatkan biaya trafik dan mengekspos konten log.

Catatan

Untuk informasi selengkapnya tentang kebijakan sistem, lihat Kebijakan sistem untuk SLS.

Langkah 1: Instal plugin SLS

  1. Jalankan salah satu perintah berikut untuk mengekstrak paket perangkat lunak aliyun-log-grafana-datasource-plugin ke direktori plugin Grafana.

    • Jika Grafana diinstal menggunakan repositori Yellowdog Updater, Modified (YUM) atau paket RedHat Package Manager (RPM), jalankan perintah berikut:

      unzip aliyun-log-grafana-datasource-plugin-master.zip -d /var/lib/grafana/plugins
    • Jika Grafana diinstal menggunakan file .tar.gz, jalankan perintah berikut:

      {PATH_TO} menentukan path instalasi ke file konfigurasi 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.

      • Jika Grafana diinstal menggunakan repositori YUM atau paket RPM, buka file /etc/grafana/grafana.ini.

      • Jika Grafana diinstal menggunakan file .tar.gz, buka file {PATH_TO}/grafana-11.4.0/conf/defaults.ini.

    2. Temukan [plugins] dalam file konfigurasi dan konfigurasikan parameter allow_loading_unsigned_plugins.

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

    1. Jalankan perintah kill untuk menghentikan proses Grafana.

    2. Jalankan salah satu perintah berikut untuk memulai Grafana.

      • Jika Grafana diinstal menggunakan repositori YUM atau paket RPM, jalankan perintah berikut:

        systemctl restart grafana-server
      • Jika Grafana diinstal menggunakan file .tar.gz, jalankan perintah berikut:

        ./bin/grafana-server web

Langkah 2: Tambahkan sumber data untuk Grafana

  1. Login ke Grafana.

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

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

  4. Di halaman Add data source, cari log-service-datasource. Setelah log-service-datasource muncul di halaman Add data source, klik log-service-datasource.image

  5. Di halaman aliyun-log-service-datasource, konfigurasikan parameter.image

    • Tabel berikut menjelaskan parameter yang diperlukan.

      Parameter

      Deskripsi

      Endpoint

      Titik akhir proyek SLS. Contoh: http://cn-qingdao.log.aliyuncs.com. Masukkan titik akhir sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Endpoints.

      Project

      Nama proyek 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 otorisasi pengguna RAM untuk mengakses Simple Log Service dan Contoh penggunaan kebijakan kustom untuk memberikan izin kepada pengguna 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: aliyun-log-service-datasource.

      Default

      Secara default, sakelar diaktifkan.

      Default Logstore

      Jika Anda tidak menentukan penyimpanan log, pastikan pasangan AccessKey yang ditentukan memiliki izin ListProject pada proyek yang ditentukan.

      RoleArn

      ARN peran RAM yang ditentukan untuk pengalihan berbasis STS.

      HTTP headers

      Anda dapat menentukan header kustom. Parameter ini hanya berlaku ketika jenis sumber data adalah MetricStore (PromQL). Untuk informasi selengkapnya, lihat bidang dalam parameter FormValue di topik Query acceleration. Daftar berikut menjelaskan bidang dalam parameter Headers:

      • x-sls-parallel-enable: menentukan apakah komputasi konkuren diaktifkan. Secara default, komputasi konkuren dinonaktifkan.

      • x-sls-parallel-time-piece-interval: interval waktu berdasarkan pembagian kueri. Satuan: detik. Nilai valid: [3600, 86400 × 30]. Nilai default: 21600, setara dengan 6 jam.

      • x-sls-parallel-time-piece-count: jumlah subkueri yang diperoleh setelah pembagian berdasarkan interval waktu yang ditentukan. Nilai valid: 1 hingga 16. Nilai default: 8.

      • x-sls-parallel-count: jumlah tugas konkuren global. Nilai valid: 2 hingga 64. Nilai default: 8.

      • x-sls-parallel-count-per-host: jumlah tugas konkuren pada server. Nilai valid: 1 hingga 8. Nilai default: 2.

      • x-sls-global-cache-enable: menentukan apakah cache global diaktifkan. Secara default, cache global dinonaktifkan.

      Region

      V4 untuk penandatanganan didukung guna memberikan keamanan yang lebih tinggi.

  6. Setelah pengaturan dikonfigurasi, klik Save & test.

Langkah 3: Tambahkan dasbor

Lakukan langkah-langkah berikut untuk menambahkan dasbor untuk Grafana:

  1. Di panel navigasi sebelah kiri, klik Dashboards.

  2. Di halaman Dashboards, klik + Created dashboard. Lalu, klik + Add visualization.image

  3. Di halaman Select data source, pilih aliyun-log-service-datasource dari daftar drop-down Data source.

  4. Tambahkan grafik berdasarkan kebutuhan bisnis Anda.image

    Daftar berikut menjelaskan parameter yang harus dikonfigurasi saat menambahkan grafik:

    • Data source type: Jenis sumber data bervariasi berdasarkan sintaksis dan jenis penyimpanan. Sintaksis meliputi SQL dan PromQL. Jenis sumber data yang didukung meliputi ALL(SQL), Logstore(SQL), MetricStore(SQL), dan MetricStore(PromQL).

      • Anda dapat menggunakan sintaksis SQL untuk mengkueri dan menganalisis data dalam penyimpanan log. Untuk informasi selengkapnya, lihat Ikhtisar kueri dan analisis log.

      • Anda dapat menggunakan sintaksis SQL dan sintaksis PromQL untuk mengkueri dan menganalisis data dalam penyimpanan metrik. Untuk informasi selengkapnya, lihat Ikhtisar kueri dan analisis log.

      • Anda dapat menambahkan header kustom untuk sumber data bertipe MetricStore(PromQL) di halaman konfigurasi sumber data.

    • Logstores: nama penyimpanan log yang akan dikueri.

    • Query: pernyataan kueri. Contoh:

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

    • xcol: Pilih TimeSeries / Custom dari daftar drop-down dan masukkan t.

    • goto SLS: tautan yang mengarahkan Anda ke konsol SLS.

      Anda dapat mengklik goto SLS di halaman Explore dan Dashboards untuk diarahkan ke konsol SLS guna membandingkan data antar konsol sesuai kebutuhan bisnis Anda. Anda dapat menggunakan kemampuan yang lebih kuat dan pengambilan log yang lebih fleksibel di konsol SLS. Setelah diarahkan ke konsol SLS, informasi kueri dan waktu yang Anda tentukan di Grafana akan ditampilkan di konsol SLS. Anda tidak perlu menentukan informasi tersebut di konsol SLS.

      Tidak diperlukan konfigurasi tambahan untuk pengalihan ini. Pastikan Anda telah login ke konsol SLS di browser. Jika tidak, Anda akan diarahkan ke halaman login konsol SLS.

      Catatan

      Fitur ini tersedia saat menggunakan plugin SLS V2.30 atau yang lebih baru.

  5. Di bagian Panel options, konfigurasikan parameter Title. Lalu, di pojok kanan atas halaman, klik Save dashboard. Di kotak dialog yang muncul, klik Save.image

Konfigurasi variabel templat

Setelah Anda mengonfigurasi variabel templat di Grafana, Anda dapat memilih nilai variabel yang berbeda untuk melihat hasil yang berbeda dalam grafik yang sama.

Konfigurasi variabel templat untuk interval waktu

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

  2. Klik Variables.

  3. Klik New variable.

  4. Konfigurasikan parameter untuk variabel templat. Lalu, klik Add.

    Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Name

    Nama variabel templat. Contoh: myinterval. Jika Anda menggunakan variabel templat dalam kriteria kueri, Anda harus menambahkan dua tanda dolar ($$) di depan nama variabel templat. Contoh: $$myinterval.

    Type

    Pilih Interval.

    Label

    Masukkan time interval.

    Values

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

    Auto Option

    Aktifkan Auto Option. Pertahankan nilai default untuk parameter lainnya.

  5. Tampilkan efek konfigurasi.image

Konfigurasi variabel templat untuk domain

  1. Di halaman Variables, klik New.

  2. Konfigurasikan parameter untuk variabel templat. Lalu, klik Add. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Name

    Nama variabel templat. Contoh: hostname. Jika Anda menggunakan variabel templat dalam kriteria kueri, Anda harus menambahkan tanda dolar ($) di depan nama variabel templat. Contoh: $hostname.

    Type

    Pilih Custom.

    Label

    Masukkan nama domain.

    Custom Options

    Masukkan *,example.com,example.org,example.net. Anda dapat melihat informasi tentang akses ke semua domain. Anda juga dapat melihat informasi tentang akses ke domain example.com, example.org, atau example.net.

    Selection Options

    Pertahankan nilai default untuk parameter tersebut.

  3. Tampilkan efek konfigurasi.image

Konfigurasi variabel templat untuk daftar penyimpanan log

  1. Di halaman Variables, atur parameter Select variable type ke Custom. Nama variabel templat adalah pengenal unik. Anda harus menentukan nilai yang mencakup logstore untuk parameter Name. String logstore tidak peka huruf besar/kecil. Anda harus menentukan variabel opsional untuk parameter Custom options dan memisahkan variabel dengan koma (,).

    image.webp

  2. Pilih nama kustom tertentu dari variabel templat dari daftar drop-down untuk list of logstores dan refresh dasbor untuk mendapatkan hasil terbaru.image.webp

Ikhtisar penulisan grafik standar

Grafik nilai tunggal (Stat dan Gauge)

xcol: stat

ycol: <Numeric column>, <Numeric column>

Penting

Jika Anda menentukan kolom non-numerik untuk ycol, nilai 0 akan ditampilkan untuk kolom tersebut.

  • Contoh 1

    Jenis grafik: 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))image

  • Contoh 2

    Jenis grafik: Gauge

    xcol: stat

    ycol: c

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

    image

Grafik pie (Pie)

xcol: pie

ycol: <Aggregate column>, <Aggregate column>

  • Contoh 1

    Jenis grafik: Pie

    xcol: pie

    ycol: request_method, c

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

  • Contoh 2

    Jenis grafik: Pie

    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 10image

  • Skenario lain

    Aturan penulisan grafik Stat juga berlaku untuk grafik Pie, dan data juga dapat ditampilkan seperti yang diharapkan.

    Jenis grafik: Pie

    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

    image

Grafik garis (Time series)

xcol: <Time column>

ycol: <Numeric column> [, <Numeric column>, ...] untuk penulisan log dan <labels / Aggregate column>#:#<Numeric column> untuk penulisan agregasi Metricstore atau log

  • Contoh 1

    Jenis grafik: 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

    image

  • Contoh 2

    Jenis grafik: Time series

    xcol: time

    ycol: labels#:#value

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

    image

  • Contoh 3

    Anda dapat menggunakan pernyataan SQL untuk menampilkan label data deret waktu sesuai kebutuhan bisnis Anda.

    Jenis grafik: 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

    image

Grafik kolom (Bar)

xcol: bar

ycol: <Aggregate column>, <Numeric column> [, <Numeric column>, ...]

  • Contoh 1

    Jenis grafik: Bar

    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

    image

Tabel (Table)

Jika nilai field akurat hingga nanodetik, nilai field waktu dapat diurutkan berdasarkan nanodetik.

Anda dapat mengubah parameter totalLogs. Parameter totalLogs menentukan jumlah total log yang akan dikueri. Nilai default: 100. Nilai minimum: 1. Nilai maksimum: 5000. Parameter ini hanya berlaku dalam pernyataan pencarian.

xcol: <None>

ycol: <None> atau <Display column> [, <Display column>, ...]

  • Contoh 1

    Jenis grafik: Table

    xcol: Table/Log

    ycol: <None>

    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

    image

Log (Logs)

xcol: <None>

ycol: <None>

Contoh

Jenis grafik: Logs

xcol: <None>

ycol: <None>

query: host: www.vt.mock.com

image

Jejak (Traces)

Jenis grafik: Traces

xcol: trace

ycol: None

query: traceID: "f88271003ab7d29ffee1eb8b68c58237"

image

Catatan

Dalam contoh ini, penyimpanan log digunakan untuk mengumpulkan data jejak. Sebelum Anda dapat menggunakan penyimpanan log untuk mengumpulkan data jejak, Anda harus mengaktifkan aplikasi Trace SLS. Anda dapat menggunakan OpenTelemetry untuk mengumpulkan data jejak ke SLS dalam mode native. Anda juga dapat menggunakan sistem jejak lain untuk mengumpulkan data jejak ke SLS. Untuk informasi selengkapnya, lihat Ikhtisar.

Grafana versi yang lebih baru dari 10.0 mendukung fitur untuk memfilter rentang dalam data jejak. Jika Anda menggunakan Grafana 10.0 atau yang lebih lama, Anda dapat mengonfigurasi filter rentang kustom dalam pernyataan kueri Anda. Contoh:

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

Peta (Map)

xcol: map

ycol: <Country column>, <Geographic location column>, <Numeric column>

Contoh

Jenis grafik: 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

image

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 EXECUTE pada direktori dist/aliyun-log-plugin_linux_amd64 di direktori plugin.