ログのクエリと表示

ログコレクタがさまざまなプロジェクト コンポーネントからデータを取得すると、オブザーバビリティ プラットフォームはすべてのログソースからログを集計し、インデックスを追加して、データ オブザーバビリティの構成に従ってログをラベルに関連付けます。その後、システム モニタリング インスタンスのログパネルでログをクエリして表示できます。

ログパネルでログをクエリして表示する

ログは、プロジェクトのシステム モニタリング インスタンス。 システム モニタリング インスタンスには、CPU 使用率、ストレージ使用量、ネットワーク モニタリング、サーバー モニタリング、ログ、アラート、GDC コンポーネントの指標など、インフラストラクチャ コンポーネントをモニタリングするためのプロジェクト レベルの指標が含まれています。

ログは、プロジェクトのシステム モニタリング インスタンスのログパネルで確認できます。次に、クエリを作成して、ユースケースのデータ オブザーバビリティに必要な特定のログを表示できます。

始める前に

ログパネルでログをクエリして表示する前に、システム モニタリング インスタンスへのアクセス権を取得する必要があります。詳細については、ダッシュボードへのアクセス権を取得するをご覧ください。

Grafana にログインしてログを表示するには、プロジェクト IAM 管理者にプロジェクト Grafana 閲覧者(project-grafana-viewer)ロールの付与を依頼してください。このロールベースのアクセス制御プロセスにより、データ可視化に安全にアクセスできます。

ログのクエリを作成する

システム モニタリング インスタンスの UI からログをクエリすると、プロジェクトから運用ログを取得するデータソースを選択し、クエリの統合ビューを取得できます。結果をフィルタリングするには、クエリ言語式を使用してラベルでログを検索します。たとえば、クエリで cluster ラベルと namespace ラベルを、それぞれクラスタとプロジェクトの Namespace を識別する値に設定できます。

システム モニタリング インスタンス エンドポイント

アプリケーション オペレーター(AO)向け

次の URL は、プロジェクトのモニタリング インスタンスのエンドポイントです。

https://GDC_URL/PROJECT_NAMESPACE/grafana

次のように置き換えます。

  • GDC_URL: GDC 内の組織の URL。
  • PROJECT_NAMESPACE: プロジェクトの Namespace。

プラットフォーム管理者(PA)向け

次の URL は、プロジェクトのモニタリング インスタンスのエンドポイントです。

https://GDC_URL/platform-obs/grafana

GDC_URL は、GDC の組織の URL に置き換えます。

運用ログをクエリする

  1. GDC コンソールで、プロジェクトを選択します。
  2. ナビゲーション メニューで、[オペレーション] > [ロギング] をクリックします。
  3. [Grafana Loki で全て表示] をクリックします。

    新しいページが開き、プロジェクトのモニタリング インスタンスの URL が表示されます。

  4. モニタリング インスタンスの UI で、ナビゲーション メニューから [探索] 探索をクリックして、[探索] ページを開きます。

  5. [探索] バーのプルダウン メニューから、データソースとして [運用ログ] を選択して、運用ログを取得します。

  6. LogQL(ログクエリ言語)式を使用して、ラベルでログを検索するクエリを入力します。この手順は、次のいずれかの方法で行います。

    • インタラクティブなクエリビルダー UI を使用します。[クエリを実行] をクリックします。
    • テキスト フィールドに LogQL 式を使用してクエリを直接入力し、Shift+Enter を押してクエリを実行します。

    クエリに一致するログがページに表示されます。

ログをクエリした後、ログをエクスポートできます。[エクスポート] をクリックして、ログをプレーン テキストまたは CSV 形式でダウンロードします。

運用ログを取得するには、UI の [探索] ページで [運用ログ] オプションを選択します。

図 1: システム モニタリング インスタンスの UI からログをクエリするメニュー オプション。

図 1 の [運用ログ] オプションには、UI からログクエリを作成して運用ログを取得できるインターフェースが表示されます。

運用ログではなく監査ログをクエリするには、前の手順の [探索] バーのプルダウン メニューからデータソースとして [監査ログ] を選択します。

監査ログを取得するために、UI の [探索] ページで [監査ログ] オプションが選択されています。

図 2. モニタリング インスタンスの UI から監査ログをクエリするメニュー オプション。

図 2 の [監査ログ] オプションには、UI からクエリを作成して監査ログを取得できるインターフェースが表示されます。

ログをクエリした後、ログをエクスポートできます。[エクスポート] ボタンをクリックして、ログをプレーン テキストまたは CSV 形式でダウンロードします。

運用ログを取得する手順は次のとおりです。

  1. GDC コンソールで、プロジェクトを選択します。
  2. ナビゲーション メニューで、[オペレーション] > [ロギング] をクリックします。
  3. [Grafana Loki で全て表示] をクリックします。

    新しいページが開き、プロジェクトのモニタリング インスタンスの URL が表示されます。

  4. モニタリング インスタンスの UI で、ナビゲーション メニューから [探索] 探索をクリックして、[探索] ページを開きます。

  5. [探索] バーのプルダウン メニューから、データソースとして [運用ログ] を選択して、運用ログを取得します。

  6. LogQL(ログクエリ言語)式を使用して、ラベルでログを検索するクエリを入力します。この手順は、次のいずれかの方法で行います。

    • インタラクティブなクエリビルダー UI を使用します。[クエリを実行] をクリックします。
    • テキスト フィールドに LogQL 式を使用してクエリを直接入力し、Shift+Enter を押してクエリを実行します。

    クエリに一致するログがページに表示されます。

ログをクエリした後、ログをエクスポートできます。[エクスポート] をクリックして、ログをプレーン テキストまたは CSV 形式でダウンロードします。

監査ログのクエリ

監査ログを取得する手順は次のとおりです。

  1. GDC コンソールで、プロジェクトを選択します。
  2. ナビゲーション メニューで、[オペレーション] > [監査ロギング] をクリックします。
  3. [Grafana Loki で全て表示] をクリックします。

    新しいページが開き、プロジェクトのモニタリング インスタンスの URL が表示されます。

  4. モニタリング インスタンスの UI で、ナビゲーション メニューから [探索] 探索をクリックして、[探索] ページを開きます。

  5. [探索] バーのプルダウン メニューから、監査ログを取得するデータソースとして [監査ログ] を選択します。

  6. LogQL(ログクエリ言語)式を使用して、ラベルでログを検索するクエリを入力します。この手順は、次のいずれかの方法で行います。

    • インタラクティブなクエリビルダー UI を使用します。[クエリを実行] をクリックします。
    • テキスト フィールドに LogQL 式を使用してクエリを直接入力し、Shift+Enter を押してクエリを実行します。

    クエリに一致するログがページに表示されます。

ログをクエリした後、ログをエクスポートできます。[エクスポート] をクリックして、ログをプレーン テキストまたは CSV 形式でダウンロードします。

ログの期間を選択する

モニタリング インスタンスの UI で特定の期間のログをクエリする手順は次のとおりです。

  1. [Time Picker] プルダウン メニューをクリックします。

  2. メニューから、次のいずれかの操作を行います。

    • 相対的な時間範囲オプション(過去 30 分など)を選択します。
    • カレンダーから特定の日時を選択し、[期間を適用] をクリックして、カスタムの絶対期間を設定します。
  3. 必要に応じて、[時間設定を変更] をクリックして、期間コントロールからタイムゾーン会計年度の設定を変更します。

期間設定はダッシュボードごとに保存されます。一定期間のクエリの詳細については、https://grafana.com/docs/loki/latest/reference/api/#query-loki-over-a-range-of-time をご覧ください。

サンプルクエリとラベル

ログのクエリに使用できるデフォルトのラベルを次に示します。

  • cluster: クラスタの名前
  • resources: リソースのリスト
  • namespace: プロジェクトの Namespace
  • node: ノード名の接頭辞
  • pod: Pod 名の接頭辞
  • container: コンテナ名の接頭辞

次の表に、Observability プラットフォームからログをクエリするために使用できるデフォルトのラベルを示します。

ログラベル
ログタイプ ラベル
Kubernetes コンテナのログ cluster CLUSTER_NAME
resources k8s_container または k8s_audit
namespace NAMESPACE_NAME
node NODE_NAME
pod POD_NAME
container CONTAINER_NAME
その他の Kubernetes ラベル
ノードの journald ログ cluster CLUSTER_NAME
resources k8s_node
node NODE_NAME
identifier SYSLOG_IDENTIFIER
machine MACHINE_ID

クエリでは LogQL クエリ言語 https://grafana.com/docs/loki/latest/logql/ が使用されます。次のコードサンプルは、ラベルと値を使用してさまざまなログをクエリする方法を示しています。

  • プロジェクトのすべてのログを選択します。

    {cluster="user-vm-1-cluster", namespace="PROJECT_NAMESPACE"}
    

    PROJECT_NAMESPACE は、プロジェクトの Namespace に置き換えます。

  • サービスからプロジェクト ログを選択します。

    {cluster="user-vm-1-cluster", namespace="PROJECT_NAMESPACE", container="my-service"}
    

    PROJECT_NAMESPACE は、プロジェクトの Namespace に置き換えます。

  • Kubernetes API サーバーログを選択します。

    {cluster="admin", namespace="kube-system", resources="k8s_container", container="kube-apiserver"}
    
  • クラスタのブートストラップ ログを選択します。

    {cluster="admin", namespace="PROJECT_NAMESPACE"}
    

    PROJECT_NAMESPACE は、プロジェクトの Namespace の名前に置き換えます。例: cluster-user-test

  • ノードの journald ログを選択します。

    {cluster="admin", resources="k8s_node"}
    
  • クラスタ監査ログを選択します。

    {cluster="admin", resources="k8s_audit"}