イベント設定では、生ログに対するインタラクティブなドリルダウンアクションを作成できます。この機能は、詳細なログ情報の取得に役立ちます。デフォルトおよび高度なイベント設定の両方を使用できます。このトピックでは、Simple Log Service (SLS) コンソールで生ログのイベント設定を行う方法について説明します。
前提条件
-
インデックスが有効化され、設定されている必要があります。詳細については、「インデックスを作成する」をご参照ください。
背景情報
ドリリングは、データ分析における重要な機能です。ディメンションと粒度を変更することで、さまざまな詳細レベルでデータを探索できます。ドリリングには、ロールアップとドリルダウンという 2 つの主要なアクションがあります。ドリルダウンを使用すると、データをさらに深く掘り下げ、より詳細なインサイトを得ることができます。これにより、より迅速かつ的確な意思決定に役立ちます。Simple Log Service では、デフォルトおよび高度なイベント設定により、生ログのドリルダウンが可能です。
デフォルトのイベント設定
前提条件
この機能は、Logtail を使用して収集したデータでのみ使用できます。API または SDK を使用して収集したデータには適用されません。
手順
デフォルトのイベント設定を使用すると、and および not 演算子を使用してクエリ文に条件をすばやく追加したり、新しいクエリ文を作成したりできます。
テーブル または Raw Data タブで、いずれかのログフィールドの値をクリックすると、デフォルト ウィンドウが開きます。 利用可能なアクションは次の表で説明します。 たとえば、検索ボックスのクエリ文が * | SELECT status as dim, count(1) as c group by dim であるとします。 host ログフィールドの値 203.0.113.1 をクリックすると、選択したアクションに基づいてクエリ文が更新されます:
|
アクション |
説明 |
更新後のクエリ文 |
|
[クエリに追加] |
|
|
|
[クエリから除外] |
|
|
|
[新規検索] |
選択した値に基づいて、現在のクエリ文を新しいクエリ文に置き換え、新しいクエリを実行します。 |
|
イベントの詳細設定
ログフィールドにさまざまな種類のイベントを追加して、詳細な分析を行えます。利用可能なイベントアクションには、Logstore、クイック検索、ダッシュボード、またはカスタム HTTP リンクを開く操作があります。
「イベント詳細設定」ウィンドウを開くには、テーブル または Raw Data タブで、ログフィールドの横にある
アイコンをクリックし、イベントの設定 を選択します。
ログフィールドごとに最大 10 個の詳細イベントを設定できます。
Log Serviceコンソールにログインします。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
タブで、管理するログストアをクリックします。
-
Rawデータ タブで、テーブル または Raw Data サブタブに移動し、
アイコンをクリックして、イベントの設定 を選択します。 -
イベントの詳細設定 ダイアログボックスで、フィールド一覧で対象のフィールドを見つけ、イベントの追加 をクリックします。
-
イベントの設定 セクションで、高度なイベントを設定します。
イベントアクションには、Logstore、クイック検索、ダッシュボード、またはカスタム HTTP リンクを開く操作があります。各アクションの設定については、以下で説明します。
説明-
Logstore を開くイベントを設定するには、まず宛先の Logstore を作成する必要があります。詳細については、「Logstore の作成」をご参照ください。
-
クイック検索を開くイベントを設定するには、まず宛先のクイック検索を作成する必要があります。詳細については、「クイック検索」をご参照ください。
変数を設定するには、宛先のクイック検索のクエリ文でプレースホルダー変数を定義する必要があります。詳細については、「プレースホルダー変数の設定」をご参照ください。
-
ダッシュボードを開くイベントを設定するには、まず宛先のダッシュボードを作成する必要があります。詳細については、「ダッシュボードの作成」をご参照ください。
変数を設定するには、宛先のダッシュボードのチャートにプレースホルダー変数を定義する必要があります。詳細については、「プレースホルダー変数の設定」をご参照ください。
-
カスタム HTTP リンクを開くイベントを設定するには、宛先の URL を準備しておく必要があります。
-
[Logstore を開く]
次の表では、Logstore を開くイベントを設定するためのパラメーターを説明します。
パラメーター
説明
[設定名]
イベント設定の名前です。
[イベントアクション]
Logstore を開く を選択します。
[新規タブで開く]
このオプションを有効にすると、イベントがトリガーされたときに、宛先 Logstore のクエリページが新しいブラウザータブで開きます。
[時間範囲]
宛先 Logstore のクエリ時間範囲を指定します。次のいずれかの値に設定できます。
-
[デフォルト]:フィールド値をクリックして宛先 Logstore に移動すると、クエリは SLS のデフォルトの時間範囲である 15 分 (相対) を使用します。
-
[クエリ時間の使用]:フィールド値をクリックして宛先 Logstore に移動すると、クエリは生ログの元のクエリと同じ時間範囲を使用します。
-
[相対時間]:フィールド値をクリックして宛先 Logstore に移動すると、クエリは指定した相対時間範囲を使用します。
-
[タイムフレーム]:フィールド値をクリックして宛先 Logstore に移動すると、クエリは指定した特定の時間枠を使用します。
[Logstore を選択してください]
宛先の Logstore を選択します。イベントがトリガーされると、この Logstore のクエリページにリダイレクトされます。
[フィルタリング条件の継承]
フィルタリング条件の継承 スイッチをオンにすると、現在のクエリからターゲット Logstore のクエリページに既存のフィルター条件が同期され、
ANDを使用してクエリ・分析ステートメントの先頭に追加されます。[フィルタリング]
フィルタリング タブでフィルター文を入力すると、リダイレクト先の宛先 Logstore のクエリページにその文が同期され、
AND演算子を使用してクエリ・分析文の先頭に追加されます。フィルター ステートメントに オプションのパラメーターフィールド を挿入して、対応するフィールドの値をフィルター条件として使用できます。 たとえば、
${__topic__}を入力すると、宛先 Logstore のクエリ ステートメントにAND演算子が追加されます。[変数]
このイベントアクションでは、変数の設定はサポートされていません。
-
-
クイック検索を開く
クイック検索を開くイベントを設定します。次の表でパラメーターを説明します。
パラメーター
説明
[設定名]
イベント設定の名前です。
[イベントアクション]
保存した検索を開く を選択します。
[新規タブで開く]
このオプションを有効にすると、イベントがトリガーされたときに、クイック検索が新しいブラウザータブで開きます。
[時間範囲]
宛先のクイック検索のクエリ時間範囲を指定します。次のいずれかの値に設定できます。
-
[デフォルト]:フィールド値をクリックして宛先のクイック検索に移動すると、クエリは SLS のデフォルトの時間範囲である 15 分 (相対) を使用します。
-
[クエリ時間の使用]:フィールド値をクリックして宛先のクイック検索に移動すると、クエリは生ログの元のクエリと同じ時間範囲を使用します。
-
[相対時間]:フィールド値をクリックして宛先のクイック検索に移動すると、クエリは指定した相対時間範囲を使用します。
-
[タイムフレーム]:フィールド値をクリックして宛先のクイック検索に移動すると、クエリは指定した特定の時間枠を使用します。
[クイック検索の選択]
宛先のクイック検索を選択します。イベントがトリガーされると、このクイック検索にリダイレクトされます。
[フィルタリング条件の継承]
フィルタリング条件の継承 スイッチをオンにすると、現在のクエリの既存のフィルター条件が宛先の Quick Query ページに適用され、
ANDを使用してクエリおよび分析ステートメントの先頭に追加されます。[フィルタリング]
フィルタリング タブでフィルター文を入力すると、ステートメントは宛先の Quick Query のクエリページに同期され、
ANDを使用してクエリおよび分析ステートメントの先頭に追加されます。フィルター ステートメントに オプションのパラメーターフィールド を挿入して、対応するフィールドの値をフィルター条件として使用できます。たとえば、
${__topic__}をクリックすると、その条件はクイッククエリのクエリ ステートメントにAND演算子で追加されます。[変数]
変数を使用して、宛先の保存済み検索のクエリステートメントを動的に変更できます。ここで定義した変数が宛先の保存済み検索内のプレースホルダー変数と一致すると、イベントがトリガーされたときにプレースホルダーが値に置き換えられます。変数は、変数 タブで設定できます。
説明-
変数を設定するには、まず宛先のクイック検索のクエリ文でプレースホルダー変数を定義する必要があります。詳細については、「プレースホルダー変数の設定」をご参照ください。
-
最大 5 つの動的変数と 5 つの静的変数を追加できます。
-
動的変数:この変数の値は、イベントをトリガーしたログエントリ内の指定されたフィールドから動的に取得されます。
-
[Dynamic Variable Name]:例:
dynamic_ipなど、クイック検索で定義したプレースホルダー変数の名前。 -
[Column for Dynamic Variable Value]:選択した列の値は、宛先のクイック検索のクエリと分析文の変数を動的に置き換えるために使用されます。たとえば、
__source__を選択します。クイック検索で定義されたプレースホルダー変数を
__source__の値で置き換え、クエリを実行します。
-
-
静的変数:この変数の値は、固定の事前定義された値です。
-
[Static Variable Name]:クイック検索で定義したプレースホルダー変数の名前。例:
static_ip。 -
[Static Value]:宛先のクイック検索のクエリと分析文の変数を固定値で置き換えます。たとえば、
203.0.113.1です。これは、
static_ipの値である203.0.113.1が、クイック検索で定義されたプレースホルダー変数を置き換え、クエリが実行されることを示します。プレースホルダー変数の値が203.0.113.1であるすべてのログが取得されます。
-
-
-
ダッシュボードを開く
ダッシュボードを開くイベントを設定します。次の表でパラメーターを説明します。
パラメーター
説明
[設定名]
イベント設定の名前です。
[イベントアクション]
ダッシュボードを開く を選択します。
[新規タブで開く]
このオプションを有効にすると、イベントがトリガーされたときに、ダッシュボードが新しいブラウザータブで開きます。
[時間範囲]
宛先ダッシュボードのクエリ時間範囲を指定します。次のいずれかの値に設定できます。
-
[デフォルト]:フィールド値をクリックして宛先ダッシュボードに移動すると、クエリは SLS のデフォルトの時間範囲である 15 分 (相対) を使用します。
-
[テーブルの時間の継承]:フィールド値をクリックして宛先ダッシュボードに移動すると、クエリはドリルダウンイベントをトリガーしたチャートの時間範囲を使用します。
-
[相対時間]:フィールド値をクリックして宛先ダッシュボードに移動すると、クエリは指定した相対時間範囲を使用します。
-
[タイムフレーム]:フィールド値をクリックして宛先ダッシュボードに移動すると、クエリは指定した特定の時間枠を使用します。
[ダッシュボードの選択]
宛先のダッシュボードを選択します。イベントがトリガーされると、このダッシュボードにリダイレクトされます。
[フィルタリング条件の継承]
フィルタリング条件の継承 スイッチをオンにすると、現在のダッシュボードの既存のフィルター条件が宛先ダッシュボードに引き継がれます。
[フィルタリング]
フィルタリング タブで、フィルター文を入力します。この文は宛先ダッシュボードに渡されます。
オプションのパラメーターフィールド をフィルターステートメントに挿入して、対応するフィールドの値をフィルター条件として使用できます。 たとえば、クリックして
${__source__}を挿入すると、移動先のダッシュボードには${__source__}と一致する値を持つログのみが表示されます。[変数]
宛先ダッシュボードに変数を渡すことができます。変数 タブで変数を設定できます。
説明-
変数を設定するには、まず宛先のダッシュボードのチャートにプレースホルダー変数を定義する必要があります。詳細については、「プレースホルダー変数の設定」をご参照ください。
-
最大 5 つの動的変数と 5 つの静的変数を追加できます。
-
動的変数:この変数の値は、イベントがトリガーされたログエントリ内の指定されたフィールドから動的に取得されます。
-
[Dynamic Variable Name]:例:
dynamic_ipなど、クイック検索で定義したプレースホルダー変数を指定します。 -
[Column for Dynamic Variable Value]:指定した列の値は、宛先のダッシュボードに動的に同期されます。たとえば、
__source__を選択します。ダッシュボードクエリで定義されたプレースホルダー変数を
__source__の値で置き換え、クエリを実行します。
-
-
静的変数:この変数の値は、固定の事前定義された値です。
-
[Static Variable Name]:静的変数の名前。たとえば、ダッシュボードデータソースで定義したプレースホルダー変数
static_ipを入力します。 -
[Static Value]:固定値が宛先のダッシュボードに同期されます。たとえば、
203.0.113.1です。これは、ダッシュボードで定義された事前定義のプレースホルダー変数が
static_ipの値 (203.0.113.1) に置き換えられ、クエリが実行されることを示します。プレースホルダー変数が203.0.113.1に設定されているすべてのログが取得されます。
-
-
-
カスタム HTTP リンク
カスタム HTTP リンクを開くイベントを設定します。
-
HTTP リンクのパスは、宛先ファイルの場所を指定します。
-
URL パスにオプションのパラメーターフィールド (変数) を追加できます。生ログからイベントをトリガーすると、対応するフィールド値がパラメーターを置き換え、新しい URL にリダイレクトされます。
パラメーター
説明
[設定名]
イベント設定の名前です。
[イベントアクション]
カスタム HTTP URL の作成を選択します。
[プロトコル]
カスタムリンクのプロトコルを指定します。サポートされているタイプは HTTP とカスタムです。
[リンクの入力]
宛先のURLです。
たとえば、
www.example.com/s?wd=${sls_project}が宛先 URL です。イベントがトリガーされると、${sls_project} はプロジェクトの名前に置き換えられます。[システム変数の使用]
システム変数の使用 スイッチをオンにすると、Simple Log Service のシステム変数を URL に挿入できます。サポートされている変数には ${sls_project}、${sls_dashboard_title}、${sls_chart_name}、${sls_chart_title}、${sls_region}、${sls_start_time}、${sls_end_time}、${sls_realUid}、および ${sls_aliUid} が含まれます。
[トランスコード]
トランスコード スイッチをオンにすると、URL コンテンツがエンコードされます。
[オプションのパラメーターフィールド]
URL の一部を、イベントをトリガーするログのフィールドの値に置き換えることができます。この置換は、イベントがトリガーされると自動的に行われます。
-
-
例
この例では、クイック検索を使用してドリルダウン分析を実行する方法を示します。このシナリオでは、accesslog という名前の Logstore にアクセスログを収集します。「IP アドレスとメソッドの PV 分布」という名前のクイック検索を作成します。次に、生ログの remote_addr フィールドに、このクイック検索を開くための高度なイベントを設定します。設定後、remote_addr フィールドの値をクリックすると、クイック検索に移動して対応する PV トレンドを表示できます。
以下は生ログのサンプルです:
__source__:127.0.0.1
__tag__:__receive_time__:1613759995
__topic__:nginx_access_log
body_bytes_sent:5077
host:www.example.com
http_referer:www.example.com
http_user_agent:Mozilla/5.0 (X11; CrOS i686 12.0.742.91) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/192.0.2.2 Safari/534.30
http_x_forwarded_for:192.0.2.1
remote_addr:192.0.2.0
remote_user:gp_02
request_length:3932
request_method:POST
request_time:35
request_uri:/request/path-2/file-4
status:200
time_local:19/Feb/2021:18:39:50
upstream_response_time:0.09
手順:
-
リクエストメソッドが
POSTで、ステータスコードが200のリクエストの PV 分布を照会するために、[IP アドレスとメソッドの PV 分布] という名前のクイック検索を作成します。クエリ文と結果は以下のとおりです:* and request_method: POST and status: 200 | select count(*) as pv, remote_addr as ip,request_method as method group by ip,method order by ip desc -
クイック検索で変数
methodとstatus2を設定します。変数を設定すると、クエリ文は次のように変更されます:* and request_method: ${method} and status: ${status2} | select count(*) as pv, remote_addr as ip,request_method as method group by ip,method order by ip desc -
[生ログ] タブで、remote_addr フィールドに高度なイベントを設定します。 [イベントアクション] を 保存した検索を開く に設定し、次の主要なパラメーターを設定します:
-
クイック検索の選択: IP アドレスとメソッドの PV 分布
-
フィルター: 空のままにします。
-
変数: 静的変数 status2 の値は 400、動的変数 method の値は request_method です。
-
-
[生ログ] タブで、
remote_addr列の値をクリックします。表示されるメニューで、作成したイベントをクリックします: 。このログでは、request_method は POST で、status は 200 です。
-
新しいウィンドウが開きます。検索ボックスのクエリ文は次のようになります:
* and request_method: POST and status: 400 | select count(*) as pv, remote_addr as ip,request_method as method group by ip,method order by ip desc -
クイック検索の結果を表示します。
この例では、status フィールドに対応する静的変数 status2 は 400 に設定されています。イベントをトリガーしたログの request_method は POST であるため、動的変数 method は POST に設定されます。クイック検索の結果は、ステータスが 400 の POST リクエストのIPアドレス別PV分布です。
同様に、request_method が PUT であるログエントリをクリックすると、クイック検索にはステータスが 400 の PUT リクエストのIPアドレス別PV分布が表示されます。