絶対忘れるから備忘録。
正攻法なのかはわからない。
正しい方法を知ってる人はぜひ教えてほしいです…
事象
こんな感じにちゃんと入ってるけど日本語
みたいに検索しても出てこない。
原因
\uXXXX
で入ってるからダメっぽい。
rawで見るとこんな感じ。\uXXXX
の表記になってると普通に検索できない。
HECで送る場合は以下のようなリクエストになっている。
ここで議論されていることと同一。
curl https://[splunk]:8088/services/collector/event -H "Authorization: Splunk [token]" -d '{"event": {"japanese": "\u65e5\u672c\u8a9e"}}' -k
自分の場合はpythonで叩いていて、json.dumpsを使ってdata部分を作成しているとこうなった。
解決
\uXXXX
にエンコードせずにjsonに変換してやればいい。
具体的にはこの記事にあるようにjson.dumps時にensure_ascii=False
をつけてやる。
CLI的には素直に
curl https://[splunk]:8088/services/collector/event -H "Authorization: Splunk [token]" -d '{"event": {"japanese": "日本語"}}' -k
みたいな感じになるようにすればいい。比較してみると、以下のように見た目は一緒なんだけど、
rawテキスト表記にしてみると、
のように違ってくる。rawテキストで見たときに、\uXXXX
の表記ではなくそのままの文字になってなければ検索でもちゃんと引っかかってくる。