すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:Simple Log Service と Grafana の接続

最終更新日:Dec 17, 2025

このトピックでは、Grafana を使用して Simple Log Service (SLS) によって収集された NGINX ログを表示および分析する方法について説明します。

重要

SLS は、ダッシュボードのエクスポートと Grafana へのインポートをサポートしています。詳細については、「Grafana ダッシュボードのエクスポートと SLS へのインポート」をご参照ください。

前提条件

  • NGINX ログが収集されていること。詳細については、「NGINX 設定モードでのテキストログの収集」をご参照ください。

  • インデックス機能が有効になっており、インデックスが作成されていること。詳細については、「NGINX アクセスログの収集と分析」をご参照ください。

  • aliyun-log-grafana-datasource-plugin ソフトウェアパッケージがダウンロードされていること。わかりやすくするために、このトピックではこのプラグインを SLS プラグインとも呼びます。

    ダウンロードコマンドは wget https://github.com/aliyun/aliyun-log-grafana-datasource-plugin/archive/refs/heads/master.zip です。

    説明

    このトピックでは、aliyun-log-grafana-datasource-plugin V2.36 を使用します。

  • Grafana がインストールされていること。詳細については、Grafana ドキュメントをご参照ください。

    説明
    • このトピックでは、Grafana 11.4.0 を使用します。

    • お使いのコンピューターに Grafana をインストールする場合は、ブラウザの設定でポート 3000 を有効にする必要があります。

    • 円グラフを使用する場合は、次のコマンドを実行して Pie Chart プラグインをインストールする必要があります。

      grafana-cli plugins install grafana-piechart-panel

Grafana と aliyun-log-grafana-datasource-plugin のバージョンの互換性

次の表に、Grafana と aliyun-log-grafana-datasource-plugin のバージョンの互換性を示します。

Grafana

aliyun-log-grafana-datasource-plugin

8.0.0 以降

V2.x

8.0.0 より前

V1.0

注意事項

セキュリティ上の理由から、セキュリティトークンサービス (STS) を使用してリダイレクトを設定する場合、次の 2 つの条件を満たす必要があります。

  • データソースの AccessKey に関連付けられているユーザーには、AliyunRAMReadOnlyAccess および AliyunSTSAssumeRoleAccess アクセスポリシーが必要です。このユーザーには、CreateTicket API を呼び出す権限と、SLS に関連する権限も必要です。

  • データソースの roleArn で指定されたロールには、AliyunLogReadOnlyAccess アクセスポリシーのみがアタッチされている必要があります。

  • 原則の詳細については、「コンソールページの埋め込みとログデータの共有」をご参照ください。

ログイン不要のアクセスを設定する場合は、データソースが一般に共有されている Grafana ダッシュボードに使用されているかどうかを確認してください。これらのダッシュボードへのパブリックアクセスは、トラフィックコストを増加させ、ログコンテンツを公開する可能性があります。

説明

システムポリシーの詳細については、「SLS のシステムポリシー」をご参照ください。

ステップ 1:SLS プラグインのインストール

  1. 次のいずれかのコマンドを実行して、aliyun-log-grafana-datasource-plugin ソフトウェアパッケージを Grafana のプラグインディレクトリに解凍します。

    • Grafana が Yellowdog Updater Modified (YUM) リポジトリまたは RedHat Package Manager (RPM) パッケージを使用してインストールされている場合は、次のコマンドを実行します。

      unzip aliyun-log-grafana-datasource-plugin-master.zip -d /var/lib/grafana/plugins
    • Grafana が .tar.gz ファイルを使用してインストールされている場合は、次のコマンドを実行します。

      {PATH_TO} は、Grafana の設定ファイルのインストールパスを指定します。

      unzip aliyun-log-grafana-datasource-plugin-master.zip -d {PATH_TO}/grafana-11.4.0/data/plugins
  2. Grafana の設定ファイルを変更します。

    1. 設定ファイルを開きます。

      • Grafana が YUM リポジトリまたは RPM パッケージを使用してインストールされている場合は、/etc/grafana/grafana.ini ファイルを開きます。

      • Grafana が .tar.gz ファイルを使用してインストールされている場合は、{PATH_TO}/grafana-11.4.0/conf/defaults.ini ファイルを開きます。

    2. 設定ファイルで [plugins] を見つけ、allow_loading_unsigned_plugins パラメーターを設定します。

      allow_loading_unsigned_plugins = aliyun-log-service-datasource
  3. Grafana を再起動します。

    1. kill コマンドを実行して Grafana プロセスを終了させます。

    2. 次のいずれかのコマンドを実行して Grafana を起動します。

      • Grafana が YUM リポジトリまたは RPM パッケージを使用してインストールされている場合は、次のコマンドを実行します。

        systemctl restart grafana-server
      • Grafana が .tar.gz ファイルを使用してインストールされている場合は、次のコマンドを実行します。

        ./bin/grafana-server web

ステップ 2:Grafana のデータソースの追加

  1. Grafana にログインします。

  2. 左側のナビゲーションウィンドウで、[接続] > [データソース] を選択します。

  3. [データソース] タブで、[データソースの追加] をクリックします。

  4. [データソースの追加] ページで、log-service-datasource を検索します。データソースの追加ページに log-service-datasource が表示されたら、[log-service-datasource] をクリックします。image

  5. [aliyun-log-service-datasource] ページで、パラメーターを設定します。image

    • 次の表に、必須パラメーターを示します。

      パラメーター

      説明

      エンドポイント

      SLS プロジェクトのエンドポイント。例:http://cn-qingdao.log.aliyuncs.com。ビジネス要件に基づいてエンドポイントを入力します。詳細については、「エンドポイント」をご参照ください。

      プロジェクト

      SLS プロジェクトの名前。

      AccessKeyID

      AccessKey ID はユーザーを識別するために使用されます。詳細については、「AccessKey ペア」をご参照ください。

      最小権限の原則に基づき、RAM ユーザーには必要な権限のみを付与することを推奨します。RAM ユーザーに権限を付与する方法の詳細については、「RAM ユーザーの作成と Simple Log Service へのアクセスの承認」および「カスタムポリシーを使用して RAM ユーザーに権限を付与する例」をご参照ください。

      AccessKeySecret

      AccessKey Secret は、署名文字列を暗号化および検証するために使用されます。AccessKey Secret は機密情報として扱ってください。

    • 次の表に、オプションのパラメーターを示します。

      パラメーター

      説明

      名前

      データソースの名前。デフォルト値:aliyun-log-service-datasource。

      デフォルト

      デフォルトでは、このスイッチはオンになっています。

      デフォルト Logstore

      Logstore を指定しない場合は、指定した AccessKey ペアに、指定したプロジェクトに対する ListProject 権限があることを確認してください。

      RoleArn

      STS ベースのリダイレクトに指定された RAM ロールの ARN。

      HTTP ヘッダー

      カスタムヘッダーを指定できます。このパラメーターは、データソースのタイプが MetricStore (PromQL) の場合にのみ有効です。詳細については、「クエリの高速化」トピックの FormValue パラメーターのフィールドをご参照ください。Headers パラメーターのフィールドは次のとおりです。

      • x-sls-parallel-enable:同時コンピューティングを有効にするかどうかを指定します。デフォルトでは、同時コンピューティングは無効になっています。

      • x-sls-parallel-time-piece-interval:クエリを分割する時間間隔。単位:秒。有効値:[3600, 86400 × 30]。デフォルト値:21600 (6 時間に相当)。

      • x-sls-parallel-time-piece-count:指定した時間間隔で分割した後に取得できるサブクエリの数。有効値:1~16。デフォルト値:8。

      • x-sls-parallel-count:グローバルな同時タスクの数。有効値:2~64。デフォルト値:8。

      • x-sls-parallel-count-per-host:サーバー上の同時タスクの数。有効値:1~8。デフォルト値:2。

      • x-sls-global-cache-enable:グローバルキャッシュを有効にするかどうかを指定します。デフォルトでは、グローバルキャッシュは無効になっています。

      リージョン

      署名バージョン 4 (V4) がサポートされており、より高いセキュリティを提供します。

  6. 設定が完了したら、[保存 & テスト] をクリックします。

ステップ 3:ダッシュボードの追加

以下の手順に従って、Grafana のダッシュボードを追加します。

  1. 左側のナビゲーションウィンドウで、[ダッシュボード] をクリックします。

  2. [ダッシュボード] ページで、[+ ダッシュボードの作成] をクリックし、次に [+ 可視化の追加] をクリックします。image

  3. [データソースの選択] ページで、[データソース] ドロップダウンリストから [aliyun-log-service-datasource] を選択します。

  4. ビジネス要件に基づいてチャートを追加します。image

    チャートを追加する際に設定する必要があるパラメーターは次のとおりです。

    • [データソースタイプ]:データソースのタイプは、構文とストアタイプによって異なります。構文には SQL と PromQL が含まれます。サポートされているデータソースタイプには、[ALL(SQL)][Logstore(SQL)][MetricStore(SQL)]、および [MetricStore(PromQL)] があります。

      • SQL 構文を使用して、Logstore 内のデータをクエリおよび分析できます。詳細については、「ログのクエリと分析の概要」をご参照ください。

      • SQL 構文と PromQL 構文を使用して、MetricStore 内のデータをクエリおよび分析できます。詳細については、「ログのクエリと分析の概要」をご参照ください。

      • [MetricStore(PromQL)] タイプのデータソースのカスタムヘッダーを、データソースの設定ページで追加できます。

    • [Logstore]:クエリ対象の Logstore の名前。

    • [クエリ]:クエリ文。例:

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

    • [xcol]:ドロップダウンリストから [TimeSeries / Custom] を選択し、t と入力します。

    • [goto SLS]:SLS コンソールに移動するためのリンク。

      [goto SLS] を [Explore] および [Dashboards] ページでクリックすると、ビジネス要件に基づいてコンソール間でデータを比較するために SLS コンソールに移動できます。SLS コンソールでは、より強力な機能とより柔軟なログ検索を使用できます。SLS コンソールに移動すると、Grafana で指定したクエリと時間の情報が SLS コンソールに表示されます。SLS コンソールで情報を指定する必要はありません。

      このリダイレクトには追加の設定は必要ありません。ブラウザで SLS コンソールにログインしていることを確認してください。そうでない場合は、SLS コンソールのログインページに移動します。

      説明

      この機能は、SLS プラグイン V2.30 以降を使用している場合に利用できます。

  5. [パネルオプション] セクションで、[タイトル] パラメーターを設定します。次に、ページの右上隅にある [ダッシュボードの保存] をクリックします。表示されるダイアログボックスで、[保存] をクリックします。image

テンプレート変数の設定

Grafana でテンプレート変数を設定すると、同じチャートで異なる変数値を選択して、異なる結果を表示できます。

時間間隔のテンプレート変数の設定

  1. [新しいダッシュボード] ページの右上隅で、[編集] > [設定] を選択します。

  2. [変数]をクリックします。

  3. [新しい変数] をクリックします。

  4. テンプレート変数のパラメーターを設定し、[追加] をクリックします。

    次の表にパラメーターを示します。

    パラメーター

    説明

    名前

    テンプレート変数の名前。例:myinterval。クエリ条件でテンプレート変数を使用する場合は、テンプレート変数の名前の前にドル記号 ($$) を 2 つ追加する必要があります。例:$$myinterval

    タイプ

    [間隔] を選択します。

    ラベル

    [時間間隔] を入力してください。

    [1m,10m,30m,1h,6h,12h,1d,7d,14d,30d] と入力します。

    自動オプション

    [自動オプション] をオンにします。他のパラメーターはデフォルト値のままにします。

  5. 設定効果を表示します。image

ドメインのテンプレート変数の設定

  1. [変数] ページで、[新規] をクリックします。

  2. テンプレート変数のパラメーターを設定し、[追加] をクリックします。次の表にパラメーターを示します。

    パラメーター

    説明

    名前

    テンプレート変数の名前。例:hostname。クエリ条件でテンプレート変数を使用する場合は、テンプレート変数の名前の前にドル記号 ($) を追加する必要があります。例:$hostname

    タイプ

    [カスタム] を選択します。

    ラベル

    ドメインの名前を入力します。

    カスタムオプション

    *,example.com,example.org,example.net と入力します。すべてのドメインへのアクセスに関する情報を表示できます。また、example.comexample.org、または example.net ドメインへのアクセスに関する情報も表示できます。

    選択オプション

    このパラメーターはデフォルト値のままにします。

  3. 設定効果を表示します。image

Logstore リストのテンプレート変数の設定

  1. [変数] ページで、[変数タイプの選択] パラメーターを [カスタム] に設定します。テンプレート変数の名前は一意の識別子です。[名前] パラメーターには logstore を含む値を指定する必要があります。文字列 logstore は大文字と小文字を区別しません。[カスタムオプション] パラメーターにはオプションの変数を指定し、変数をコンマ (,) で区切る必要があります。

    image.webp

  2. [Logstore リスト] のドロップダウンリストから指定したテンプレート変数のカスタム名を選択し、ダッシュボードをリフレッシュして最新の結果を取得します。image.webp

標準的なチャートの作成方法の概要

単一値チャート (Stat および Gauge チャート)

xcol:stat

ycol:<数値列>, <数値列>

重要

ycol に数値以外の列を指定した場合、その列には 0 が表示されます。

  • 例 1

    チャートタイプ:[Stat]

    [xcol]stat

    [ycol]PV, deltaPercent

    [クエリ]* | 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

  • 例 2

    チャートタイプ:Gauge

    [xcol]stat

    [ycol]c

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

    image

円グラフ (Pie)

xcol:pie

ycol:<集約列>, <集約列>

  • 例 1

    チャートタイプ:Pie

    [xcol]pie

    [ycol]request_method, c

    [クエリ]request_method: "$method" | select count(*) as c, request_method group by request_methodimage

  • 例 2

    チャートタイプ:Pie

    [xcol]pie

    [ycol]http_user_agent, pv

    [クエリ]* | 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

  • その他のシナリオ

    Stat チャートの作成ルールは円グラフにも適用でき、データも期待どおりに表示されます。

    チャートタイプ:Pie

    xcol: stat

    [ycol]hostNameNum, ipNum

    [クエリ]* | 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

時系列グラフ (Time series)

xcol:<時間列>

ycol:ログ作成の場合は <数値列> [, <数値列>, ...]、Metricstore またはログ集約作成の場合は <ラベル / 集約列>#:#<数値列>

  • 例 1

    チャートタイプ:時系列

    xcoltime

    [ycol]pv, uv

    [クエリ]* | 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

  • 例 2

    チャートタイプ:時系列

    [xcol]time

    Y列: labels#:#value

    [クエリ]* | select time, * from (select promql_query_range('${metricName}') from metrics) limit 1000

    image

  • 例 3

    SQL 文を使用して、ビジネス要件に基づいて時系列データのラベルを表示できます。

    チャートタイプ:時系列

    [xcol]time

    [ycol]customLabelsExtract#:#value

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

    image

棒グラフ (Bar)

xcol:bar

ycol:<集約列>, <数値列> [, <数値列>, ...]

  • 例 1

    チャートタイプ:棒

    [xcol]bar

    [ycol]host, pv, pv2, uv

    [クエリ]* | 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

テーブル (Table)

フィールド値がナノ秒単位で正確な場合、時間フィールドの値をナノ秒単位でソートできます。

totalLogs パラメーターを変更できます。totalLogs パラメーターは、クエリするログの総数を指定します。デフォルト値:100。最小値:1。最大値:5000。このパラメーターは、検索文でのみ有効です。

xcol:<None>

ycol:<None> または <表示列> [, <表示列>, ...]

  • 例 1

    チャートタイプ:テーブル

    xcol:Table/Log

    ycol:<None>

    クエリ:* | 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

ログ (Logs)

xcol:<None>

ycol:<None>

チャートタイプ:ログ

xcol:<None>

ycol:<None>

クエリ:host: www.vt.mock.com

image

トレース (Traces)

チャートタイプ:トレース

xcol: trace

ycol:なし

クエリ: traceID: "f88271003ab7d29ffee1eb8b68c58237"

image

説明

この例では、Logstore を使用してトレースデータを収集します。Logstore を使用してトレースデータを収集する前に、SLS の Trace アプリケーションを有効にする必要があります。OpenTelemetry を使用して、ネイティブモードでトレースデータを SLS に収集できます。また、他のトレースシステムを使用してトレースデータを SLS に収集することもできます。詳細については、「概要」をご参照ください。

バージョン 10.0 より後の Grafana は、トレースデータ内のスパンをフィルタリングする機能をサポートしています。Grafana 10.0 以前を使用している場合は、クエリ文でカスタムスパンフィルタリングを設定できます。例:

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

マップ (Map)

xcol:map

ycol:<国列>, <地理的位置列>, <数値列>

チャートタイプ:GeoMap

[xcol]map

[ycol]country, geo, pv

[クエリ]* | 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

よくある質問

  • Grafana のログはどこに保存されますか?

    Grafana のログは次のディレクトリに保存されます。

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

    • Linux:/var/log/grafana

  • ログに [aliyun-log-plugin_linux_amd64: permission denied] と表示された場合の対処方法

    プラグインディレクトリの dist/aliyun-log-plugin_linux_amd64 ディレクトリに実行 (EXECUTE) 権限を付与します。