📗

📘 Kibanaでよく使うログのクエリ集(Dev Tools編)

に公開

Elasticsearch のデータを Kibana の Dev Tools(Console)で直接確認・調査するための、よく使うクエリをまとめました。トラブル調査やデータ確認に役立ちます。

🔍 1. 直近5分間の ERROR ログを確認する

POST logs-*/_search
{
  "size": 100,
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "level": "ERROR"
          }
        },
        {
          "range": {
            "@timestamp": {
              "gte": "now-5m",
              "lt": "now"
            }
          }
        }
      ]
    }
  }
}
  • logs-*: 対象インデックス。例:tomcat-*app-log-* に変更可能。
  • @timestamp: ログのタイムスタンプフィールド。

📅 2. 特定期間(例:2024年5月1日〜5月10日)のログを検索

POST app-log*/_search
{
  "query": {
    "range": {
      "@timestamp": {
        "gte": "2024-05-01T00:00:00",
        "lt": "2024-05-11T00:00:00"
      }
    }
  }
}

🔡 3. メッセージにキーワードを含むログを検索

POST logs-*/_search
{
  "query": {
    "match": {
      "message": "database error"
    }
  }
}

message フィールドに "database error" を含むログを検索。

🧠 4. 複数条件でAND検索(例:level=ERRORかつservice=auth)

POST logs-*/_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "level": "ERROR" } },
        { "match": { "service": "auth" } }
      ]
    }
  }
}

📌 5. 特定のフィールドだけ表示する(_source指定)

POST logs-*/_search
{
  "_source": ["@timestamp", "level", "message"],
  "query": {
    "match_all": {}
  },
  "size": 10
}

🔃 6. 最新のログを時刻順で取得

POST logs-*/_search
{
  "size": 10,
  "sort": [
    { "@timestamp": { "order": "desc" } }
  ]
}

⚠️ 7. levelがERRORまたはFATALのログを取得

POST logs-*/_search
{
  "query": {
    "bool": {
      "should": [
        { "match": { "level": "ERROR" } },
        { "match": { "level": "FATAL" } }
      ]
    }
  }
}

🧪 8. 特定のフィールドが存在するログを検索

POST logs-*/_search
{
  "query": {
    "exists": {
      "field": "stacktrace"
    }
  }
}

🧼 9. ログの削除(注意:管理者専用)

POST logs-*/_delete_by_query
{
  "query": {
    "match": {
      "level": "DEBUG"
    }
  }
}

⚠️ 誤って大量に削除しないように、事前に検索で確認しましょう。

###🧮 10. ログ件数だけ取得したいとき(count API)

GET logs-*/_count
{
  "query": {
    "match": {
      "level": "ERROR"
    }
  }
}

📝 補足

  • 日付のフォーマット:yyyy-MM-dd'T'HH:mm:ss(ISO 8601)
  • Dev Tools は Kibana 左メニューの「Dev Tools」→「Console」から利用可能。

📂 インデックス名の例

インデックス名 内容
tomcat-2024.06.01 Tomcat ログ(日次)
batch-2024.06.01 バッチログ(日次)
app-log-* アプリケーション汎用ログ

Discussion