メインコンテンツへ移動

ログ検索

Loki を使用してログを検索します。左側の「ログ管理」には、ログの取得元に応じた 2 つのパネルがあります。

パネル取得元用途
コンテナーコンソールDocker コンテナーの stdout/stderr(Alloy で収集)MySQL、Redis、Kafka など、ミドルウェアや基盤コンテナーのログ調査
サービスログHAP/HDP マイクロサービスの構造化 JSON ログ(serilog から直接送信)業務処理の呼び出しや例外スタックの調査、電話番号/ユーザー ID/traceID などによる検索

どちらのパネルにも、上部にキーワード検索(全文検索、大文字と小文字を区別しない)と複数選択の絞り込みリストがあります。表示期間はデフォルトで過去 1 日間です。右上で変更できます。

コンテナーコンソール​

「コンテナー」リストでコンテナー名(script-app-1、milvus-etcd など)を選択すると、そのコンテナーの最近の stdout を表示できます。キーワード検索と組み合わせて目的のログを探してください。

コンテナーコンソール

サービスログ​

「サービスログ」では、HAP/HDP の各マイクロサービスが serilog から Loki に直接送信した構造化ログを検索します。

まだ連携していない場合​

「サービスログ」を表示するには、HAP/HDP サービス側でログの書き込みを明示的に有効にする必要があります。有効にしていない場合、このパネルにはログが表示されません。 手順は サービスログの連携 を参照してください。

高度な検索:LogQL​

集計、統計、正規表現などを使う複雑な検索では、Grafana Explore(左下の Grafana アイコン → Explore)を開き、LogQL を直接記述します。

{service_name="smssenderservice", detected_level="error"} # SMS サービスのすべての error ログ
{hostname=~".+"} |~ "(?i)13800138000" # 全マイクロサービスで電話番号を検索
sum(rate({hostname=~".+"}[5m])) by (service_name) # サービスごとの直近 5 分間のログレート

構文は LogQL 公式ドキュメントを参照してください。

補足

ログの保持期間はデフォルトで 30 日間(ENV_LOKI_RETENTION=720h)です。ops.yaml または ConfigMap で変更できます。ディスク容量に制約がある場合は、S3/MinIO バックエンドの利用を推奨します。