LoginSignup
1
0

はじめに

ES|QLというクエリー言語が新たにElastic v8.11でテクニカルプレビューとして登場しました。フリー版から使えます!
Discoverからログなどの検索をする時に、もはや必須のツールとなると思うので、ぜひみなさんも試してください。
この記事では今の所わかっているTipsをまとめました。(まだGAではないので、多少仕様が変わる可能性はなきにしろあらずです)

基本的な構文や関数に関してこちらのマニュアルを参照ください。
https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-language.html

Tips集

日本時刻(JST)でのWhere検索

以下のように行う。(@timestampは内部的にはUTCで保持しているため、こうやらないとUTCベースで検索されてしまう)

where @timestamp >= date_parse("yyyy-MM-dd'T'HH:mm:sszzzz", "2023-11-29T13:00:00+09:00") 
and @timestamp <= date_parse("yyyy-MM-dd'T'HH:mm:sszzzz", "2023-11-29T14:00:00+09:00")

フィールドの名前に対してエスケープが必要な場合

例えばスラッシュが含まれるカラムは、バックティックで囲む。

where `kubernetes.labels.app_kubernetes_io/instance` == "abc" 

日本時刻(JST)ベースで、例えば朝の6時〜10時のデータを検索したい。

以下の例ではdropoff_datetimeにタイムスタンプデータが入っている前提です。

from nyc_taxis 
| limit 10 
| EVAL dt_long = to_long(dropoff_datetime)
| EVAL TIMEZONE_DIFF = 9
| EVAL dt_timezone_long = to_long(dt_long + TIMEZONE_DIFF * 60 * 60 * 1000)
| EVAL timezone_date = to_datetime(dt_timezone_long)
| EVAL hour = DATE_EXTRACT(timezone_date, "HOUR_OF_DAY")
| EVAL minute = DATE_EXTRACT(timezone_date, "MINUTE_OF_HOUR")
| WHERE hour >= 6 AND hour <=10
| KEEP dropoff_datetime, timezone_date, hour, minute

Elastic ES|QLでアクセスログの怪しい403の高度なアラート検知をしてみる

別記事: Elastic ES|QLでアクセスログの怪しい403の高度なアラート検知をしてみる

おわり

この記事は、随時何かあれば追加していきたいと思います!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0