翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Loki データソースに接続する
Loki データソースは、Grafana のログ集約システムである Loki へのアクセスを提供します。
データソースの追加
-
Grafana ワークスペースを開き、ログインしていることを確認します。
-
設定リンクのサイドメニューに、データソースリンクがあります。
-
上部にあるデータソースの追加ボタンを選択します。
-
データソースのリストから Loki を選択します。
注記
サイドメニューにデータソースリンクが表示されない場合は、現在のユーザーに Admin
ロールがないことを意味します。
名前 | 説明 |
---|---|
Name
|
データソース名。これは、パネル、クエリ、および探索でデータソースを表示する方法です。 |
Default
|
デフォルトのデータソースは、新しいパネルに対して事前に選択されることを意味します。 |
URL
|
Loki インスタンスの URL。例: http://localhost:3100 。これは、Amazon EC2 ホストの URL、Amazon EKS クラスターの前の Application Load Balancer、または Loki インスタンスのその他の URL です。 |
Maximum lines
|
Loki によって返されるログ行数の上限 (デフォルトは 1000)。Explore でログを表示するときにブラウザが遅い場合は減らします。 |
派生フィールド
派生フィールド設定を使用して、以下を実行できます。
-
ログメッセージから解析されたフィールドを追加します。
-
フィールドの値を使用するリンクを追加します。
この機能を使用して、ログからトレースバックエンドに直接リンクしたり、ログ行に userId がある場合はユーザープロファイルページにリンクしたりできます。これらのリンクはログの詳細に表示されます。詳細については、「ラベルと検出されたフィールド」を参照してください。
派生した各フィールドは、以下で構成されます。
-
名前 — ログの詳細にラベルとして表示されます。
-
正規表現 – ログメッセージで実行され、その一部を新しいフィールドの値としてキャプチャする正規表現パターン。1 つのキャプチャグループのみを含めることができます。
-
URL/クエリ – リンクが外部の場合は、リンク URL 全体を入力します。リンクが内部リンクの場合、この入力はターゲットデータソースのクエリとして機能します。いずれの場合も、
${__value.raw }
マクロを使用して フィールドから値を補間できます。 -
内部リンク — リンクが内部リンクか外部リンクかを選択します。内部リンクの場合、データソースセレクタを使用すると、ターゲットデータソースを選択できます。トレースデータソースのみがサポートされています。
デバッグセクションを使用して、フィールドが抽出する内容と URL の補間方法を確認できます。ログメッセージ例を表示を選択して、ログメッセージを入力できるテキスト領域を表示します。
ログの詳細に表示されるリンクを含む新しいフィールド。
ログのクエリ
Loki からのログデータのクエリと表示は、Explore および視覚化のログパネルから利用できます。Loki データソースを選択し、LogQL クエリを入力してログを表示します。LogQL の詳細については、「LogQL
ログクエリ
ログクエリは、ログストリームセレクタ と検索式 の 2 つの部分で構成されます。 パフォーマンス上の理由から、まずログストリームのログラベルを選択する必要があります。
クエリフィールドの横にある Logs Explorer (ログラベルボタン) には、使用可能なログストリームのラベルのリストが表示されます。クエリを記述する別の方法は、クエリフィールドの自動入力を使用することです。まず、左中括弧を入力する{
と、オートコンプリートメニューにラベルのリストが表示されます。Enter キーを押してクエリを実行します。
結果が返されると、ログパネルにはログ行のリストと棒グラフが表示されます。X 軸には時刻、Y 軸には頻度/カウントが表示されます。
ログストリームセレクタ
クエリ式のラベル部分については、中括弧で囲み{}
、キー値の構文を使用してラベルを選択します。複数のラベル式はカンマで区切られます。
{app="mysql",name="mysql-backup"}
現在、次のラベル一致演算子がサポートされています。
-
=
まったく同じです。 -
!=
等しくない。 -
=~
regex-match。 -
!~
regex-match は行いません。
例:
-
{name=~"mysql.+"}
-
{name!~"mysql.+"}
ラベルセレクタを追加するもう 1 つの方法は、テーブルセクションにあります。ラベルの横にあるフィルターを選択して、クエリ式にラベルを追加します。これは複数のクエリでも機能し、各クエリにラベルセレクタを追加します。
検索式
ログストリームセレクタを記述した後、検索式を記述することで結果をさらにフィルタリングできます。検索式は、テキスト式または正規表現式にすることができます。
クエリの例:
-
{job="mysql"} |= "error"
-
{name="kafka"} |~ "tsdb-ops.*io:2003"
-
{instance=~"kafka-[23]",name="kafka"} != "kafka.server:type=ReplicaManager"
フィルター演算子は連鎖でき、式を順番にフィルタリングダウンします。結果のログ行はすべてのフィルターを満たします。
例
{job="mysql"} |= "error" !=
"timeout"
現在、次のフィルタータイプがサポートされています。
-
|=
行には文字列が含まれます。 -
!=
行に文字列が含まれていません。 -
|~
行は正規表現と一致します。 -
!~
行が正規表現と一致しません。
注記
Loki のクエリ言語である LogQL の詳細については、「Loki LogQL
ログコンテキスト
上記で説明した検索式を使用する場合、フィルタリングされた結果を囲むコンテキストを取得できるようになりました。フィルタリングされた行のShow Context
リンクを選択すると、関心のあるログメッセージの前後に送信されたログメッセージを調査できます。
テンプレート
サーバー、アプリケーション、センサー名などのモノをメトリクスクエリでハードコーディングする代わりに、代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。
テンプレート変数とテンプレート変数の詳細については、「」を参照してくださいテンプレートと変数。
注釈
非メトリクス Loki クエリは、注釈のソースとして使用できます。ログコンテンツは注釈テキストとして使用され、ログストリームラベルはタグとして使用されるため、追加のマッピングは必要ありません。