Simple Log Service (SLS) でのログクエリに関するよくある質問とその回答です。ソースマシンの特定、IP アドレスの検索、複数条件でのクエリ、フィールド値の切り捨てへの対処などを扱います。
ログのソースマシンの特定
-
Logtail の設定はマシングループに適用されます。マシングループが IP アドレスベースのマシングループの場合は、内部 IP アドレスを使用してマシンを区別します。
-
インデックスを作成すると、SLS はデフォルトで
__tag__:__hostname__をインデックス化します。__tag__:__hostname__:XXXを入力してクエリを実行します。__tag__フィールドは 予約フィールド です。例:各ホスト名の出現回数をカウントします。* | select '__tag__:__hostname__' , count(1) as count group by '__tag__:__hostname__'
ログでの IP アドレスの検索
-
特定の IP アドレスをクエリする場合:
__tag__:__client_ip__:192.0.2.1 -
192.0.2 で始まる IP アドレスのログをクエリする場合:
__source__:192.0.2.* -
192.168.XX.XXに一致する IP アドレスを含むログをクエリする場合:SQL のLIKE演算子とワイルドカード文字 (%) を使用して あいまいクエリ を実行することもできます。* | select * from log where key like '192.168.%.%'
複数条件でのクエリ
クエリ文を組み合わせて、複数の条件でフィルタリングします。
たとえば、ステータスが OK または Unknown のログを除外するには、not OK not Unknown を検索します。
ログのクエリ方法
SLS は、次の 3 つのログクエリ方法をサポートしています:
-
コンソールでログのクエリと分析を行います。クエリと分析のクイックスタート
-
SDK を使用してログをクエリします。SDK リファレンスの概要
-
RESTful API を使用してログをクエリします。Logstore 内のログのクエリ
SQL 分析のタイムアウトまたは失敗のトラブルシューティング
クライアント側のネットワークファイアウォールが、SQL 分析のキーワードを含むリクエストをブロックしている可能性があります。
サービスエンドポイントを HTTPS に切り替えてみてください。
フィールド値の切り捨て
SLS は、フィールド値の長さを以下のように制限します:
-
クエリの場合、フィールド値の最大長は 512 KB (524,288 bytes) です。この上限を超えるコンテンツはクエリ結果から除外されます。
-
分析の場合、フィールド値のデフォルトの最大長は 2 KB (2,048 bytes) で、最大 16 KB (16,384 bytes) まで設定できます。
フィールドの最大長の設定
この変更は新しいログデータにのみ適用されます。既存のデータには影響しません。
Log Serviceコンソールにログインします。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
タブで、管理するログストアをクリックします。
-
をクリックします。
-
[クエリ & 分析] ページの下部で、[統計フィールドの最大長 (テキスト)] を 64 から 16,384 バイトの間の値に設定します。
インデックス化されていないフィールドの分析
インデックス化されていないフィールドを分析するには、次のいずれかの方法を使用します:
-
データのインデックス作成または再インデックス
-
スキャンモードの有効化
インデックスを作成できない場合は、スキャンベースの分析を使用して、インデックスなしでログをクエリします。ログのスキャン
返される行数の変更
SLS はデフォルトで limit 100 を追加します。LIMIT 句 を使用して、返される行数を変更します。
SLS インデックスとデータベースインデックスの違いとユーザー情報の自動識別
SLS インデックスとデータベースインデックスの違い
SLS インデックスとデータベースインデックス (MySQL や PostgreSQL など) は、目的は似ていますが、実装とユースケースが異なります:
-
SLS インデックス:ログのクエリと分析を高速化するために使用します。SLS は、全コンテンツに対してトークン化された検索を行う全文インデックスと、構造化フィールドを取得するためのキー/値インデックスを提供し、キーワード検索と SQL 分析をサポートします。
-
データベースインデックス:通常は B ツリー データ構造に基づき、データベーステーブル内の特定レコードの検索を高速化するために設計されています。全文検索や、大規模なログデータのリアルタイム分析には適していません。
SLS によるログ内のユーザー情報の自動識別と関連付け
SLS は、ログ内のユーザー情報を自動的に識別または関連付けしません。SLS がそのフィールドでクエリ、分析、またはダウンロードを行うには、ユーザー情報がログフィールドとして存在している必要があります。ユーザー情報を含むフィールドがログに存在しない場合、SLS はログがどのユーザーに属するかを判断できません。
ユーザーに基づいてログをクエリする必要がある場合は、ログ収集時にユーザー情報をログフィールドとして含めてください。その後、そのフィールドのインデックスを作成し、インデックス設定で分析を有効にします。