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データは表示されません。
ファイル名とその前のフィールドに従います。これはそのファイルが出たホストを表します。
私の文法に問題があるのでしょうか?