
Logstash 構成のパス フィールドから部分文字列を抽出しようとしています。
「パス」フィールドは次のようになります。
/storage/logs/deployment/servers/hostname.example.com/server.log
フィルター セクション内には次の内容があります。
ruby {
code => "event.set('log_filename',
event.get('path').split('/').last)"
}
これはうまくいきます。「log_filename」という新しいフィールドが表示されます。
しかし、サーバー名(hostname.example.com)にも興味があります。
そこで私はこれを試しました:
ruby {
code => "event.set('log_filename', event.get('path').split('/').[-1]) event.set('server_name', event.get('path').split('/').[-2])"
}
これはまったく機能しません。logstash ログにエラーは表示されませんが、logstash データは表示されません。
ファイル名と、その前のフィールド(ファイルの送信元のホストを表す)の後に続きます。
構文に何か問題がありますか?