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

Simple Log Service:シンプルなLog ServiceをGrafanaに接続する

最終更新日:Oct 21, 2024

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

前提条件

  • NGINXログが収集されます。 詳細については、「サーバーからのテキストログの収集」をご参照ください。

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

  • aliyun-log-grafana-datasource-pluginソフトウェアパッケージがダウンロードされます。 理解を容易にするために、プラグインはこのトピックではSimple Log Serviceプラグインとも呼ばれます。

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

    説明

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

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

    説明
    • このトピックでは、Grafana 8.0.6が使用されます。

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

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

      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

使用上の注意

Security Token Service (STS) ベースのリダイレクトを設定してセキュリティを確保する場合は、次の点に注意してください。

● Grafanaでデータソースを追加するときにAccessKeyペアが使用されるResource Access Management (RAM) ユーザーの場合、AliyunRAMReadOnlyAccessポリシーをRAMユーザーにアタッチする必要があります。

● データソースにAlibaba Cloud Resource Name (ARN) が指定されているRAMロールの場合、AliyunLogReadOnlyAccessポリシーのみをRAMロールにアタッチする必要があります。 詳細については、「コンソールページの埋め込みとログデータの共有」をご参照ください。

パスワードフリーモードでSTSベースのリダイレクトを設定した後、データソースに基づいて生成されたGrafanaダッシュボードに対してパブリックアクセスと共有が許可されているかどうかを確認します。 パブリックアクセスは、トラフィックコストの増加とログコンテンツの公開につながる可能性があります。

説明

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

手順1: Simple Log Serviceプラグインのインストール

次の手順では、Grafana用のSimple Log Serviceプラグインをインストールする方法について説明します。

  1. 次のコマンドを実行して、プロジェクトパッケージをGrafanaのプラグインディレクトリに解凍します。

    • GrafanaがYUMリポジトリまたは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-8.0.6/data/plugins
  2. Grafanaの設定ファイルを変更します。

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

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

      • を使用してGrafanaがインストールされている場合. tar.gzファイルを開き、{PATH_TO}/grafana-8.0.6/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のデータソースを追加する

次の手順では、GrafanaのデータソースとしてSimple Log Serviceプラグインを追加する方法について説明します。

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

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

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

  4. [データソースの追加] ページで、LogServiceカードの [選択] をクリックします。

  5. データソースを設定します。

    下表に、各パラメーターを説明します。

    パラメーター

    説明

    名前

    データソースの名前。

    デフォルト

    デフォルトスイッチ。 この例では、スイッチをオンにします。

    Endpoint

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

    プロジェクト

    プロジェクトの名前。

    ログストア

    ログストアの名前

    AccessKeyId

    Alibaba Cloudが提供するAccessKey ID。 AccessKey IDは、ユーザーを識別するために使用されます。 アカウントのセキュリティを確保するために、RAMユーザーのAccessKeyペアを使用することを推奨します。 AccessKeyペアを取得する方法の詳細については、「AccessKeyペア」をご参照ください。

    AccessKeySecret

    Alibaba Cloudが提供するAccessKeyシークレット。 AccessKeyシークレットは、ユーザーのキーを認証するために使用されます。 アカウントのセキュリティを確保するために、RAMユーザーのAccessKeyペアを使用することを推奨します。 AccessKeyペアを取得する方法の詳細については、「AccessKeyペア」をご参照ください。

  6. [保存とテスト] をクリックします。

ステップ3: ダッシュボードを追加する

Grafanaのダッシュボードを追加するには、次の手順を実行します。

  1. 左側のナビゲーションウィンドウで、图标1 > ダッシュボード.

  2. 新しいパネルパネル、クリック視覚化の選択.

  3. テンプレート変数を設定します。

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

    1. 時間間隔のテンプレート変数を設定します。

      1. [新しいダッシュボード] ページの右上隅で、時間間隔を選択してアイコンをクリックし图标2ます。

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

      3. [変数の追加] をクリックします。

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

        下表に、各パラメーターを説明します。

        パラメーター

        説明

        名前

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

        タイプ

        [間隔] を選択します。

        ラベル

        [時間間隔] を入力します。

        1m、10m、30m、1h、6h、12h、1d、7d、14d、30dを入力します。

        自動オプション

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

    2. ドメインのテンプレート変数を設定します。

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

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

        パラメーター

        説明

        名前

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

        タイプ

        [カスタマイズ] を選択します。

        ラベル

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

        Custom Options

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

        選択オプション

        パラメーターのデフォルト値を保持します。

    3. 左側のナビゲーションウィンドウで、保存.

  4. ビジネス要件に基づいてパネルを追加します。

    • グラフパネルを追加して、ページビュー (PV) とユニークビジター (UV) を表示します。

      1. ページの右上隅にある图标3 アイコンをクリックします。

      2. [新しいパネル] パネルで、[クエリの追加] をクリックします。

      3. G小图标4アイコンをクリックし、[可視化] ドロップダウンリストから [グラフ] を選択します。

      4. G小图标5アイコンをクリックします。 次に、タイトルフィールドにUV&PVと入力します。

      5. G小图标6アイコンをクリックし、クエリドロップダウンリストからLogserviceを選択し、パラメーターを設定します。 下表に、各パラメーターを説明します。grafana-pv&uv01

        パラメーター

        説明

        クエリ

        実行するクエリ文を入力します。 例:

        $hostname| select approx_distinct(remote_addr) as uv ,count(1) as pv , __time__ - __time__ % $$myinterval as time group by time order by time limit 1000

        クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられ、$$myintervalは指定した時間間隔に置き換えられます。

        重要

        myintervalの前に2つのドル記号 ($$) が必要であり、ホスト名の前に1つのドル記号 ($) が必要です。

        X-Column

        timeを入力します。 この値は、秒単位の正確なUNIXタイムスタンプです。

        Y-Column

        uv、pvを入力します。

      6. UVの値とPVの値の差が大きい場合は、2つのY軸パネルを使用してUVとPVの統計を表示します。grafana-pv&uv02

      7. 保存按钮アイコンをクリックして設定を保存します。

    • インバウンドトラフィックとアウトバウンドトラフィックを表示するグラフパネルを追加します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname | select sum(body_byte_sent) as net_out, sum(request_length) as net_in,__time__ - __time__ % $$myinterval as time group by __time__ - __time__ % $$myinterval limit 10000

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられ、$$myintervalは指定した時間間隔に置き換えられます。

      重要

      myintervalの前に2つのドル記号 ($$) が必要であり、ホスト名の前に1つのドル記号 ($) が必要です。

      X-Column

      timeを入力します。 この値は、秒単位の正確なUNIXタイムスタンプです。

      Y-Column

      net_in,net_outと入力します。

    • 円グラフパネルを追加して、HTTPリクエストメソッドによるリクエストの分布を表示します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname | select count(1) as pv ,method group by method

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられます。

      X-Column

      pieを入力します。

      Y-Column

      method,pvを入力します。

    • HTTPステータスコードによるリクエストの分布を表示する円グラフパネルを追加します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname | select count(1) as pv ,status group by status

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられます。

      X-Column

      pieを入力します。

      Y-Column

      status,pvを入力します。

    • 頻繁にアクセスされるページのリクエストソースを表示する円グラフパネルを追加します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname | select count(1) as pv , referer group by referer order by pv desc

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられます。

      X-Column

      pieを入力します。

      Y-Column

      referer、pvを入力します。

    • テーブルパネルを追加して、最も高いレイテンシーでロードされたページを表示します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname | select URL as top_latency_URL ,request_time order by request_time desc limit 10

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられます。

      X-Column

      このパラメーターを設定する必要はありません。

      Y-Column

      top_latency_url,request_timeを入力します。

    • 頻繁にアクセスされるページを表示するテーブルパネルを追加します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname | select count(1) as pv, split_part(URL,'?',1) as path group by split_part(URL,'?',1) order by pv desc limit 20

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられます。

      X-Column

      このパラメーターを設定する必要はありません。

      Y-Column

      path,pvを入力します。

    • テーブルパネルを追加して、HTTPステータスコード200が返されないアクセス要求が最も多いページを表示します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname not status:200| select count(1) as pv , url group by url order by pv desc

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられます。

      X-Column

      このパラメーターを設定する必要はありません。

      Y-Column

      url、pvを入力します。

    • singlestatパネルを追加して、平均レイテンシを表示します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname | select avg(request_time) as response_time, avg(upstream_response_time) as upstream_response_time ,__time__ - __time__ % $$myinterval as time group by __time__ -  __time__ % $$myinterval limit 10000

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられ、$$myintervalは指定した時間間隔に置き換えられます。

      重要

      myintervalの前に2つのドル記号 ($$) が必要であり、ホスト名の前に1つのドル記号 ($) が必要です。

      X-Column

      timeを入力します。

      Y-Column

      upstream_response_time,response_timeと入力します。

    • ログに関する詳細を表示するログパネルを追加します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      説明

      各ページには最大100個のログを表示できます。 したがって、[ページごとのログ] パラメーターの最大値は100です。

    • クライアント統計を表示する円グラフパネルを追加します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname  | select count(1) as pv, case when  regexp_like(http_user_agent , 'okhttp') then 'okhttp' when  regexp_like(http_user_agent ,  'iPhone') then 'iPhone' when regexp_like(http_user_agent ,  'Android')  then 'Android' else 'unKnown' end as http_user_agent group by  http_user_agent order by pv desc limit 10

      'end as _httpuser_agent

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられます。

      X-Column

      pieを入力します。

      Y-Column

      http_user_agent,pvと入力します。

    • グラフパネルを追加して、1分の時間範囲で各HTTPステータスコードが返されるリクエストの数を表示します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname  | select to_unixtime(time) as time,status,count from (select time_series(__time__, '1m', '%Y-%m-%d %H:%i', '0')  as time,status,count(*) as count from log group by status,time order by time limit 10000)

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられます。

      X-Column

      時間を入力します。

      Y-Column

      col1 #:# col2と入力します。 col1は集約列で、col2は他の列の1つです。

    • worldmapパネルを追加して、送信元IPアドレスの分布を表示します。

      パネルの追加方法の詳細については、このトピックの「グラフパネルを追加してページビュー (PV) とユニークビジター (UV) を表示する」を参照してください。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      クエリ

      実行するクエリ文を入力します。 例:

      $hostname  | 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

      クエリと分析の結果では、$hostnameは指定したドメインの名前に置き換えられます。

      X-Column

      mapを入力します。

      Y-Column

      country、geo、pvを入力します。

      パラメーター

      説明

      位置データ

      geohashを選択します。

      [場所名] フィールド

      countryを入力します。

      geo_point/geohashフィールド

      geoを入力します。

      Metricフィールド

      pvを入力します。

  5. 結果を表示します。

    ダッシュボードページの上部セクションで、時間間隔を選択できます。 [時間間隔] および [ホスト名] クエリ条件を使用して、結果をフィルタリングすることもできます。

よくある質問

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

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

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

    • Linux: /var/log/grafana

  • aliyun-log-plugin_linux_amd64: 権限拒否がログに表示された場合はどうすればよいですか?

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