GraylogでJSON形式のログを取り扱う

会社でログ管理にGraylogを使っているのだが、一部に存在しているJSON形式のログを取り込めないか調べたところGraylogにはその機能が標準で組み込まれていることを知った。
例えば、Collector Sidecarでファイルを指定してログ回収した結果、以下のようなログが来ていたとする。

これを、jsonの項目名ごとに分割してやるには、まず対象のログのMessageID(上の画像だと「22ddcf00-8b5d-11e6-b270-623530633165」となっているログのID)とIndex番号(上の画像では「graylog_0」)を控えておき、[System] > [Input]に移動する。

移動後、対象のログが利用しているInputの[Manage extractors]をクリックする。

[Add extractor]からMessage IDとIndex番号を使って、先ほどのJSON形式のログを検索、messageの右側のカラムから「JSON」を選択する。

JSON形式の読み込みの仕方について設定する画面に遷移する。
基本的にはデフォルトのまま進めても問題ない箇所なので、そのまま[Extractor title]だけ入れて[Create extractor]で作成するとよいだろう。設定した結果は[try]ボタンを押下することで見れる。

設定後は、以下のようにログ受信後はJSONを分解して項目ごとに値を取り出せるようになる。

アプリケーションによってはJSON形式でログを出すこともあるので、これは結構便利かも。