Datadog Log Management Fundamentals 無料問題 4 / 10 ・ 分野2: Log Collection
Shift JIS で書かれたログファイルを収集するため、収集設定に encoding: sjis と書いた。この値は Agent が対応している値の表記と違う。公式の説明どおりの結果はどれか。
- このファイルの収集が止まり、status に誤りが出る
- 一覧に無い値は無視され、UTF-8 として読まれる
- 似た表記として解釈され、Shift JIS として読まれる
- 文字コードを中身から推定し、合う方式で読まれる
正解と解説を見る
正解: B
正解の理由
デフォルトでは、Agent はログが UTF-8 で書かれていると想定する。違う文字コードなら encoding を指定し、utf-16-le、utf-16-be、shift-jis の値が使える。サポートされていない値を指定した場合、Agent はその値を無視し、ファイルを UTF-8 として読み取る。sjis は一覧の表記と違うので無視され、Shift JIS の文字は化けて届く。正しくは shift-jis と書く。
違う選択肢
「似た表記として解釈され、Shift JIS として読まれる」… 表記の揺れを吸収する仕組みは書かれていない。対応していない値は無視される
「このファイルの収集が止まり、status に誤りが出る」… 値が無視されるだけで、このファイルの収集は止まらない。UTF-8 として読み続ける
「文字コードを中身から推定し、合う方式で読まれる」… 中身から推定する機能は書かれていない。Agent はログが UTF-8 だと想定して読む
つまずき方
encoding は type が file のときだけ効く。すでにテールしているファイルの encoding を変えると、前のバイトオフセットから再開するため文字化けが起きることがあり、ローテーションや先頭からのテールで直す。